deliveryservices/{{ID}}/safe

PUT

Allows a user to edit metadata fields of a Delivery Service.

Auth. Required

Yes

Roles Required

None1

Permissions Required

DELIVERY-SERVICE-SAFE:UPDATE, DELIVERY-SERVICE:READ, TYPE:READ

Response Type

Array

Request Structure

Table 318 Request Path Parameters

Name

Description

ID

The integral, unique identifier of the Delivery Service being modified

displayName

A string that is the Display Name

infoUrl

An optional2 string containing the Info URL

longDesc

An optional2 string containing the Long Description of this Delivery Service

#759 Request Example
PUT /api/4.0/deliveryservices/1/safe HTTP/1.1
User-Agent: python-requests/2.22.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 132
Content-Type: application/json

{
    "displayName": "test",
    "infoUrl": "this is not even a real URL",
    "longDesc": "this is a description of the delivery service"
}

Response Structure

active

A boolean that defines Active.

anonymousBlockingEnabled

A boolean that defines Anonymous Blocking

ccrDnsTtl

The DNS TTL - named “ccrDnsTtl” for legacy reasons

cdnId

The integral, unique identifier of the CDN to which the Delivery Service belongs

cdnName

Name of the CDN to which the Delivery Service belongs

checkPath

A Check Path

consistentHashRegex

A Consistent Hashing Regular Expression

consistentHashQueryParams

An array of Consistent Hashing Query Parameters

deepCachingType

The Deep Caching setting for this Delivery Service

displayName

The Display Name

dnsBypassCname

A DNS Bypass CNAME

dnsBypassIp

A DNS Bypass IP

dnsBypassIp6

A DNS Bypass IPv6

dnsBypassTtl

The DNS Bypass TTL

dscp

A DSCP to be used within the Delivery Service

ecsEnabled

A boolean that defines the EDNS0 Client Subnet Enabled setting on this Delivery Service

edgeHeaderRewrite

A set of Edge Header Rewrite Rules

exampleURLs

An array of Example URLs

firstHeaderRewrite

A set of First Header Rewrite Rules

fqPacingRate

The Fair-Queuing Pacing Rate Bps

geoLimit

An integer that defines the Geo Limit

geoLimitCountries

An array of strings defining the Geo Limit Countries

geoLimitRedirectUrl

A Geo Limit Redirect URL

geoProvider

The Geolocation Provider

globalMaxMbps

The Global Max Mbps

globalMaxTps

The Global Max TPS

httpBypassFqdn

A HTTP Bypass FQDN

id

An integral, unique identifier for this Delivery Service

infoUrl

An Info URL

initialDispersion

The Initial Dispersion

innerHeaderRewrite

A set of Inner Header Rewrite Rules

ipv6RoutingEnabled

A boolean that defines the IPv6 Routing Enabled setting on this Delivery Service

lastHeaderRewrite

A set of Last Header Rewrite Rules

lastUpdated

The date and time at which this Delivery Service was last updated, in :rfc:3339 format

Changed in version 4.0: Prior to API version 4.0, this property used Traffic Ops’s Custom Date/Time Format.

logsEnabled

A boolean that defines the Logs Enabled setting on this Delivery Service

longDesc

The Long Description of this Delivery Service

matchList

The Delivery Service’s Match List

pattern

A regular expression - the use of this pattern is dependent on the type field (backslashes are escaped)

setNumber

An integer that provides explicit ordering of Match List items - this is used as a priority ranking by Traffic Router, and is not guaranteed to correspond to the ordering of items in the array.

type

The type of match performed using pattern.

maxDnsAnswers

The Max DNS Answers allowed for this Delivery Service

maxOriginConnections

The Max Origin Connections

midHeaderRewrite

A set of Mid Header Rewrite Rules

missLat

The Geo Miss Default Latitude used by this Delivery Service

missLong

The Geo Miss Default Longitude used by this Delivery Service

multiSiteOrigin

A boolean that defines the use of Use Multi-Site Origin Feature by this Delivery Service

orgServerFqdn

The Origin Server Base URL

originShield

A Origin Shield string

profileDescription

The Description of the Profile with which this Delivery Service is associated

profileId

The ID of the Profile with which this Delivery Service is associated

profileName

The Name of the Profile with which this Delivery Service is associated

protocol

An integral, unique identifier that corresponds to the Protocol used by this Delivery Service

qstringIgnore

An integral, unique identifier that corresponds to the Query String Handling setting on this Delivery Service

rangeRequestHandling

An integral, unique identifier that corresponds to the Range Request Handling setting on this Delivery Service

regexRemap

A Regex Remap Expression

regional

A boolean value defining the Regional setting on this Delivery Service

regionalGeoBlocking

A boolean defining the Regional Geoblocking setting on this Delivery Service

remapText

Raw Remap Text

signed

true if and only if signingAlgorithm is not null, false otherwise

signingAlgorithm

Either a Signing Algorithm or null to indicate URL/URI signing is not implemented on this Delivery Service

rangeSliceBlockSize

An integer that defines the byte block size for the ATS Slice Plugin. It can only and must be set if rangeRequestHandling is set to 3.

sslKeyVersion

This integer indicates the SSL Key Version

tenantId

The integral, unique identifier of the Tenant who owns this Delivery Service

tlsVersions

A list of explicitly supported TLS Versions

New in version 4.0.

topology

The unique name of the Topology that this Delivery Service is assigned to

trRequestHeaders

If defined, this defines the Traffic Router Log Request Headers used by Traffic Router for this Delivery Service

trResponseHeaders

If defined, this defines the Traffic Router Additional Response Headers used by Traffic Router for this Delivery Service

type

The Type of this Delivery Service

typeId

The integral, unique identifier of the Type of this Delivery Service

xmlId

This Delivery Service’s xml_id

#760 Response Example
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json
Permissions-Policy: interest-cohort=()
Set-Cookie: mojolicious=...; Path=/; Expires=Tue, 08 Jun 2021 00:53:26 GMT; Max-Age=3600; HttpOnly
Vary: Accept-Encoding
Whole-Content-Sha512: Ys/SfWWijsXCNXEqZ84oldfyXTgMe8UE/wWb53VU39OH7kWOXF1BH5Hg7Y40nCgXoWEqcaBq5+WCZg0bYuJdAA==
X-Server-Name: traffic_ops_golang/
Date: Mon, 07 Jun 2021 23:53:26 GMT
Content-Length: 903

{ "alerts": [{
    "text": "Delivery Service safe update successful.",
    "level": "success"
}],
"response": [{
    "active": true,
    "anonymousBlockingEnabled": false,
    "ccrDnsTtl": null,
    "cdnId": 2,
    "cdnName": "CDN-in-a-Box",
    "checkPath": null,
    "consistentHashQueryParams": [],
    "consistentHashRegex": null,
    "deepCachingType": "NEVER",
    "displayName": "test",
    "dnsBypassCname": null,
    "dnsBypassIp": null,
    "dnsBypassIp6": null,
    "dnsBypassTtl": null,
    "dscp": 0,
    "ecsEnabled": false,
    "edgeHeaderRewrite": null,
    "exampleURLs": [
        "http://video.demo2.mycdn.ciab.test",
        "https://video.demo2.mycdn.ciab.test"
    ],
    "firstHeaderRewrite": null,
    "fqPacingRate": null,
    "geoLimit": 0,
    "geoLimitCountries": null,
    "geoLimitRedirectURL": null,
    "geoProvider": 0,
    "globalMaxMbps": null,
    "globalMaxTps": null,
    "httpBypassFqdn": null,
    "id": 1,
    "infoUrl": "this is not even a real URL",
    "initialDispersion": 1,
    "innerHeaderRewrite": null,
    "ipv6RoutingEnabled": true,
    "lastHeaderRewrite": null,
    "lastUpdated": "2021-06-07T23:53:26.139899Z",
    "logsEnabled": true,
    "longDesc": "this is a description of the delivery service",
    "matchList": [
        {
            "type": "HOST_REGEXP",
            "setNumber": 0,
            "pattern": ".*\\.demo2\\..*"
        }
    ],
    "maxDnsAnswers": null,
    "maxOriginConnections": 0,
    "maxRequestHeaderBytes": 0,
    "midHeaderRewrite": null,
    "missLat": 42,
    "missLong": -88,
    "multiSiteOrigin": true,
    "originShield": null,
    "orgServerFqdn": "http://origin.infra.ciab.test",
    "profileDescription": null,
    "profileId": null,
    "profileName": null,
    "protocol": 2,
    "qstringIgnore": 0,
    "rangeRequestHandling": 0,
    "rangeSliceBlockSize": null,
    "regexRemap": null,
    "regional": false,
    "regionalGeoBlocking": false,
    "remapText": null,
    "routingName": "video",
    "serviceCategory": null,
    "signed": false,
    "signingAlgorithm": null,
    "sslKeyVersion": null,
    "tenant": "root",
    "tenantId": 1,
    "tlsVersions": null,
    "topology": "demo1-top",
    "trResponseHeaders": null,
    "trRequestHeaders": null,
    "type": "DNS",
    "typeId": 5,
    "xmlId": "demo2"
]}
1

Only those Delivery Services assigned to Tenants that are the requesting user’s Tenant or children thereof may be modified with this endpoint.

2(1,2)

If these fields are not present in the request body they are implicitly set to null.