cdns/{{name}}/snapshot/new

GET

Retrieves the pending Snapshot for a CDN, which represents the current configuration of the CDN, not the current operating state of the CDN. The contents of this Snapshot are currently used by Traffic Monitor and Traffic Router.

Auth. Required:

Yes

Roles Required:

“admin” or “operations”

Permissions Required:

CDN-SNAPSHOT:READ

Response Type:

Object

Request Structure

Table 297 Request Path Parameters

Name

Description

name

The name of the CDN for which a Snapshot shall be returned

#708 Request Example
GET /api/4.0/cdns/CDN-in-a-Box/snapshot/new HTTP/1.1
User-Agent: python-requests/2.23.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...

Response Structure

config:

An object containing basic configurations on the actual CDN object

api.cache-control.max-age:

A string containing an integer which specifies the value of max-age in the Cache-Control header of some HTTP responses, likely the Traffic Router API responses

certificates.polling.interval:

A string containing an integer which specifies the interval, in milliseconds, on which other Traffic Control components should check for updated SSL certificates

consistent.dns.routing:

A string containing a boolean which indicates whether DNS routing will use a consistent hashing method or “round-robin”

“false”

The “round-robin” method will be used to define DNS routing

“true”

A consistent hashing method will be used to define DNS routing

coveragezone.polling.interval:

A string containing an integer which specifies the interval, in milliseconds, on which Traffic Routers should check for a new Coverage Zone file

coveragezone.polling.url:

The URL where a Coverage Zone File may be requested by Traffic Routers

dnssec.dynamic.response.expiration:

A string containing a number and unit suffix that specifies the length of time for which dynamic responses to DNSSEC lookup queries should remain valid

dnssec.dynamic.concurrencylevel:

An integer that defines the size of the concurrency level (threads) of the Guava cache used by ZoneManager to store zone material

dnssec.dynamic.initialcapacity:

An integer that defines the initial size of the Guava cache, default is 10000. Too low of a value can lead to expensive resizing

dnssec.init.timeout:

An integer that defines the number of minutes to allow for zone generation, this bounds the zone priming activity

dnssec.enabled:

A string that tells whether or not the CDN uses DNSSEC; one of:

“false”

DNSSEC is not used within this CDN

“true”

DNSSEC is used within this CDN

domain_name:

A string that is the TLD served by the CDN

federationmapping.polling.interval:

A string containing an integer which specifies the interval, in milliseconds, on which other Traffic Control components should check for new federation mappings

federationmapping.polling.url:

The URL where Traffic Control components can request federation mappings

geolocation.polling.interval:

A string containing an integer which specifies the interval, in milliseconds, on which other Traffic Control components should check for new IP-to-geographic-location mapping databases

geolocation.polling.url:

The URL where Traffic Control components can request IP-to-geographic-location mapping database files

keystore.maintenance.interval:

A string containing an integer which specifies the interval, in seconds, on which Traffic Routers should refresh their zone caches

neustar.polling.interval:

A string containing an integer which specifies the interval, in seconds, on which other Traffic Control components should check for new “Neustar” databases

neustar.polling.url:

The URL where Traffic Control components can request “Neustar” databases

soa:

An object defining the SOA for the CDN’s TLD (defined in domain_name)

admin:

The name of the administrator for this zone - i.e. the RNAME

Note

This rarely represents a proper email address, unfortunately.

expire:

A string containing an integer that sets the number of seconds after which secondary name servers should stop answering requests for this zone if the master does not respond

minimum:

A string containing an integer that sets the TTL - in seconds - of the record for the purpose of negative caching

refresh:

A string containing an integer that sets the number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes

retry:

A string containing an integer that sets the number of seconds after which secondary name servers should retry to request the serial number from the master if the master does not respond

Note

RFC 1035 dictates that this should always be less than refresh.

steeringmapping.polling.interval:

A string containing an integer which specifies the interval, in milliseconds, on which Traffic Control components should check for new steering mappings

ttls:

An object that contains keys which are types of DNS records that have values which are strings containing integers that specify the time for which a response to the specific type of record request should remain valid

zonemanager.cache.maintenance.interval:

A configuration option for the ZoneManager Java class of Traffic Router

zonemanager.threadpool.scale:

A configuration option for the ZoneManager Java class of Traffic Router

contentRouters:

An object containing keys which are the (short) hostnames of the Traffic Routers that serve requests for Delivery Services in this CDN

api.port:

A string containing the port number on which the Traffic Router API is served by this Traffic Router via HTTP

secure.api.port:

An optionally present string containing the port number on which the Traffic Router API is served by this Traffic Router via HTTPS

fqdn:

This Traffic Router’s FQDN

httpsPort:

The port number on which this Traffic Router listens for incoming HTTPS requests

ip:

This Traffic Router’s IPv4 address

ip6:

This Traffic Router’s IPv6 address

location:

A string which is the Name of the Cache Group to which this Traffic Router belongs

port:

The port number on which this Traffic Router listens for incoming HTTP requests

profile:

The Name of the Profile used by this Traffic Router

status:

The health status of this Traffic Router

See also

Health Protocol

contentServers:

An object containing keys which are the (short) hostnames of the Edge-tier cache servers in the CDN; the values corresponding to those keys are routing information for said servers

cacheGroup:

A string that is the Name of the Cache Group to which the server belongs

capabilities:

An array of this Cache Server’s Server Capabilities. If the Cache Server has no Server Capabilities, this field is omitted.

deliveryServices:

An object containing keys which are the names of Delivery Services to which this cache server is assigned; the values corresponding to those keys are arrays of FQDNs that resolve to this cache server

Note

Only Edge-tier cache servers can be assigned to a Delivery Service, and therefore this field will only be present when type is "EDGE".

fqdn:

The server’s FQDN

hashCount:

The number of servers to be placed into a single “hash ring” in Traffic Router

hashId:

A unique string to be used as the key for hashing servers - as of version 3.0.0 of Traffic Control, this is always the same as the server’s (short) hostname and only still exists for legacy compatibility reasons

httpsPort:

The port on which the cache server listens for incoming HTTPS requests

interfaceName:

The name of the main network interface device used by this cache server

ip6:

The server’s IPv6 address

ip:

The server’s IPv4 address

locationId:

This field is exactly the same as cacheGroup and only exists for legacy compatibility reasons

port:

The port on which this cache server listens for incoming HTTP requests

profile:

The Name of the Profile used by the cache server

routingDisabled:

An integer representing the boolean concept of whether or not Traffic Routers should route client traffic to this cache server; one of:

0

Do not route traffic to this server

1

Route traffic to this server normally

status:

This cache server’s status

See also

Health Protocol

type:

The Type of this cache server; which ought to be one of (but in practice need not be in certain special circumstances):

EDGE

This is an Edge-tier cache server

MID

This is a Mid-tier cache server

deliveryServices:

An object containing keys which are the xml_ids of all of the Delivery Services within the CDN

anonymousBlockingEnabled:

A string containing a boolean that tells whether or not Anonymous Blocking is set on this Delivery Service; one of:

“true”

Anonymized IP addresses are blocked by this Delivery Service

“false”

Anonymized IP addresses are not blocked by this Delivery Service

consistentHashQueryParameters:

A set of query parameters that Traffic Router should consider when determining a consistent hash for a given client request.

consistentHashRegex:

An optional regular expression that will ensure clients are consistently routed to a cache server based on matches to it.

coverageZoneOnly:

A string containing a boolean that tells whether or not this Delivery Service routes traffic based only on its Coverage Zone File

See also

Geo Limit

deepCachingType:

A string that defines the Deep Caching setting of this Delivery Service

dispersion:

An object describing the “dispersion” - or number of cache servers within a single Cache Group across which the same content is spread - within the Delivery Service

limit:

The maximum number of cache servers in which the response to a single request URL will be stored

Note

If this is greater than the number of cache servers in the Cache Group chosen to service the request, then content will be spread across all of them. That is, it causes no problems.

shuffled:

A string containing a boolean that tells whether the cache servers chosen for content dispersion are chosen randomly or based on a consistent hash of the request URL; one of:

“false”

cache servers will be chosen consistently

“true”

cache servers will be chosen at random

domains:

An array of domains served by this Delivery Service

ecsEnabled:

A string containing a boolean from EDNS0 Client Subnet Enabled that tells whether EDNS0 client subnet is enabled on this Delivery Service; one of:

“false”

EDNS0 client subnet is not enabled on this Delivery Service

“true”

EDNS0 client subnet is enabled on this Delivery Service

geolocationProvider:

The name of a provider for IP-to-geographic-location mapping services - currently the only valid value is "maxmindGeolocationService"

ip6RoutingEnabled:

A string containing a boolean that defines the IPv6 Routing Enabled setting for this Delivery Service; one of:

“false”

IPv6 traffic will not be routed by this Delivery Service

“true”

IPv6 traffic will be routed by this Delivery Service

matchList:

An array of methods used by Traffic Router to determine whether or not a request can be serviced by this Delivery Service

pattern:

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

setNumber:

An integral, unique identifier for the set of types to which the type field belongs

type:

The name of the Type of match performed using pattern to determine whether or not to use this Delivery Service

HOST_REGEXP

Use the Delivery Service if pattern matches the Host HTTP header of an HTTP request, or the name requested for resolution in a DNS request

HEADER_REGEXP

Use the Delivery Service if pattern matches an HTTP header (both the name and value) in an HTTP request[1]

PATH_REGEXP

Use the Delivery Service if pattern matches the request path of this Delivery Service’s URL[1]

STEERING_REGEXP

Use the Delivery Service if pattern matches the xml_id of one of this Delivery Service’s “Steering” target Delivery Services

missLocation:

An object representing the default geographic coordinates to use for a client when lookup of their IP has failed in both the Coverage Zone File (and/or possibly the Deep Coverage Zone File) and the IP-to-geographic-location database

lat:

Geographic latitude as a floating point number

long:

Geographic longitude as a floating point number

protocol:

An object that describes how the Delivery Service ought to handle HTTP requests both with and without TLS encryption

acceptHttps:

A string containing a boolean that tells whether HTTPS requests should be normally serviced by this Delivery Service; one of:

“false”

Refuse to service HTTPS requests

“true”

Service HTTPS requests normally

redirectToHttps:

A string containing a boolean that tells whether HTTP requests ought to be re-directed to use HTTPS; one of:

“false”

Do not redirect unencrypted traffic; service it normally

“true”

Respond to HTTP requests with instructions to use HTTPS instead

See also

Protocol

regionalGeoBlocking:

A string containing a boolean that defines the Regional Geoblocking setting of this Delivery Service; one of:

“false”

Regional Geographic Blocking is not used by this Delivery Service

“true”

Regional Geographic Blocking is used by this Delivery Service

requiredCapabilities:

An array of this Delivery Service’s required capabilities. If there are no required capabilities, this field is omitted.

routingName:

A string that is this Delivery Service’s Routing Name

soa:

An object defining the SOA record for the Delivery Service’s TLDs (defined in domains)

admin:

The name of the administrator for this zone - i.e. the RNAME

Note

This rarely represents a proper email address, unfortunately.

expire:

A string containing an integer that sets the number of seconds after which secondary name servers should stop answering requests for this zone if the master does not respond

minimum:

A string containing an integer that sets the TTL - in seconds - of the record for the purpose of negative caching

refresh:

A string containing an integer that sets the number of seconds after which secondary name servers should query the master for the SOA record, to detect zone changes

retry:

A string containing an integer that sets the number of seconds after which secondary name servers should retry to request the serial number from the master if the master does not respond

Note

RFC 1035 dictates that this should always be less than refresh.

sslEnabled:

A string containing a boolean that tells whether this Delivery Service uses SSL; one of:

“false”

SSL is not used by this Delivery Service

“true”

SSL is used by this Delivery Service

See also

Protocol

topology:

The name of the Topology that this Delivery Service is assigned to. If the Delivery Service is not assigned to a topology, this field is omitted.

ttls:

An object that contains keys which are types of DNS records that have values which are strings containing integers that specify the time for which a response to the specific type of record request should remain valid

Note

This overrides config.ttls.

edgeLocations:

An object containing keys which are the names of Edge-Tier Cache Groups within the CDN

backupLocations:

An object that describes this Cache Group’s Fallbacks

fallbackToClosest:

A string containing a boolean which defines the Fallback to Closest behavior of this Cache Group; one of:

“false”

Do not fall back on the closest available Cache Group

“true”

Fall back on the closest available Cache Group

list:

If this Cache Group has any Fallbacks, this key will appear and will be an array of those Cache Groups’ Names

latitude:

A floating point number that defines this Cache Group’s Latitude

localizationMethods:

An array of strings that represents this Cache Group’s Localization Methods

longitude:

A floating point number that defines this Cache Group’s Longitude

monitors:

An object containing keys which are the (short) hostnames of Traffic Monitors within this CDN

fqdn:

The FQDN of this Traffic Monitor

httpsPort:

The port number on which this Traffic Monitor listens for incoming HTTPS requests

ip6:

This Traffic Monitor’s IPv6 address

ip:

This Traffic Monitor’s IPv4 address

location:

A string which is the Name of the Cache Group to which this Traffic Monitor belongs

port:

The port number on which this Traffic Monitor listens for incoming HTTP requests

profile:

A string which is the Name of the Profile used by this Traffic Monitor

Note

For legacy reasons, this must always start with “RASCAL-“.

status:

The health status of this Traffic Monitor

See also

Health Protocol

stats:

An object containing metadata information regarding the CDN

CDN_name:

The name of this CDN

date:

The UNIX epoch timestamp date in the Traffic Ops server’s own timezone

tm_host:

The FQDN of the Traffic Ops server

tm_user:

The username of the currently logged-in user

tm_version:

The full version number of the Traffic Ops server, including release number, git commit hash, and supported Enterprise Linux version

topologies:

An array of Topologies where each key is the name of that Topology.

nodes:

An array of the names of the Edge-Tier Cache Groups in this Topology. Mid-Tier Cache Groups in the topology are not included.

trafficRouterLocations:

An object containing keys which are the names of Cache Groups within the CDN which contain Traffic Routers

backupLocations:

An object that describes this Cache Group’s Fallbacks

fallbackToClosest:

A string containing a boolean which defines this Cache Group’s Fallback to Closest setting; one of:

“false”

Do not fall back on the closest available Cache Group

“true”

Fall back on the closest available Cache Group

latitude:

A floating point number that defines this Cache Group’s Latitude

localizationMethods:

An array of strings that represents this Cache Group’s Localization Methods

longitude:

A floating point number that defines this Cache Group’s Longitude

#709 Response Example
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie
Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
Access-Control-Allow-Origin: *
Content-Encoding: gzip
Content-Type: application/json
Set-Cookie: mojolicious=...; Path=/; Expires=Wed, 27 May 2020 20:31:13 GMT; Max-Age=3600; HttpOnly
Vary: Accept-Encoding
Whole-Content-Sha512: M6uhE2oPpjpTUR7gALsPOnM2CepD+VCAjp4dj5Xnppo0G5zL31PQgiteD23q67r7/bq/JJpMvIvdaENVYFtrqQ==
X-Server-Name: traffic_ops_golang/
Date: Wed, 27 May 2020 19:31:13 GMT
Content-Length: 1374

{
    "response": {
        "config": {
            "api.cache-control.max-age": "10",
            "certificates.polling.interval": "300000",
            "consistent.dns.routing": "true",
            "coveragezone.polling.interval": "3600000",
            "coveragezone.polling.url": "https://static.infra.ciab.test:443/coverage-zone.json",
            "dnssec.dynamic.response.expiration": "300s",
            "dnssec.enabled": "false",
            "domain_name": "mycdn.ciab.test",
            "federationmapping.polling.interval": "60000",
            "federationmapping.polling.url": "https://${toHostname}/api/4.0/federations/all",
            "geolocation.polling.interval": "86400000",
            "geolocation.polling.url": "https://static.infra.ciab.test:443/GeoLite2-City.mmdb.gz",
            "keystore.maintenance.interval": "300",
            "neustar.polling.interval": "86400000",
            "neustar.polling.url": "https://static.infra.ciab.test:443/neustar.tar.gz",
            "soa": {
                "admin": "twelve_monkeys",
                "expire": "604800",
                "minimum": "30",
                "refresh": "28800",
                "retry": "7200"
            },
            "steeringmapping.polling.interval": "60000",
            "ttls": {
                "A": "3600",
                "AAAA": "3600",
                "DNSKEY": "30",
                "DS": "30",
                "NS": "3600",
                "SOA": "86400"
            },
            "zonemanager.cache.maintenance.interval": "300",
            "zonemanager.threadpool.scale": "0.50"
        },
        "contentServers": {
            "edge": {
                "cacheGroup": "CDN_in_a_Box_Edge",
                "capabilities": [
                    "RAM_DISK_STORAGE"
                ],
                "fqdn": "edge.infra.ciab.test",
                "hashCount": 999,
                "hashId": "edge",
                "httpsPort": 443,
                "interfaceName": "eth0",
                "ip": "172.26.0.3",
                "ip6": "",
                "locationId": "CDN_in_a_Box_Edge",
                "port": 80,
                "profile": "ATS_EDGE_TIER_CACHE",
                "status": "REPORTED",
                "type": "EDGE",
                "routingDisabled": 0
            },
            "mid": {
                "cacheGroup": "CDN_in_a_Box_Mid",
                "capabilities": [
                    "RAM_DISK_STORAGE"
                ],
                "fqdn": "mid.infra.ciab.test",
                "hashCount": 999,
                "hashId": "mid",
                "httpsPort": 443,
                "interfaceName": "eth0",
                "ip": "172.26.0.4",
                "ip6": "",
                "locationId": "CDN_in_a_Box_Mid",
                "port": 80,
                "profile": "ATS_MID_TIER_CACHE",
                "status": "REPORTED",
                "type": "MID",
                "routingDisabled": 0
            }
        },
        "contentRouters": {
            "trafficrouter": {
                "api.port": "3333",
                "fqdn": "trafficrouter.infra.ciab.test",
                "httpsPort": 443,
                "ip": "172.26.0.15",
                "ip6": "",
                "location": "CDN_in_a_Box_Edge",
                "port": 80,
                "profile": "CCR_CIAB",
                "secure.api.port": "3443",
                "status": "ONLINE"
            }
        },
        "deliveryServices": {
            "demo1": {
                "anonymousBlockingEnabled": "false",
                "consistentHashQueryParams": [
                    "abc",
                    "pdq",
                    "xxx",
                    "zyx"
                ],
                "coverageZoneOnly": "false",
                "deepCachingType": "NEVER",
                "dispersion": {
                    "limit": 1,
                    "shuffled": "true"
                },
                "domains": [
                    "demo1.mycdn.ciab.test"
                ],
                "ecsEnabled": "false",
                "geolocationProvider": "maxmindGeolocationService",
                "ip6RoutingEnabled": "true",
                "matchsets": [
                    {
                        "protocol": "HTTP",
                        "matchlist": [
                            {
                                "regex": ".*\\.demo1\\..*",
                                "match-type": "HOST"
                            }
                        ]
                    }
                ],
                "missLocation": {
                    "lat": 42,
                    "long": -88
                },
                "protocol": {
                    "acceptHttps": "true",
                    "redirectToHttps": "false"
                },
                "regionalGeoBlocking": "false",
                "requiredCapabilities": [
                    "RAM_DISK_STORAGE"
                ],
                "routingName": "video",
                "soa": {
                    "admin": "traffic_ops",
                    "expire": "604800",
                    "minimum": "30",
                    "refresh": "28800",
                    "retry": "7200"
                },
                "sslEnabled": "true",
                "topology": "my-topology",
                "ttls": {
                    "A": "",
                    "AAAA": "",
                    "NS": "3600",
                    "SOA": "86400"
                }
            }
        },
        "edgeLocations": {
            "CDN_in_a_Box_Edge": {
                "latitude": 38.897663,
                "longitude": -77.036574,
                "backupLocations": {
                    "fallbackToClosest": "true"
                },
                "localizationMethods": [
                    "GEO",
                    "CZ",
                    "DEEP_CZ"
                ]
            }
        },
        "trafficRouterLocations": {
            "CDN_in_a_Box_Edge": {
                "latitude": 38.897663,
                "longitude": -77.036574,
                "backupLocations": {
                    "fallbackToClosest": "false"
                },
                "localizationMethods": [
                    "GEO",
                    "CZ",
                    "DEEP_CZ"
                ]
            }
        },
        "monitors": {
            "trafficmonitor": {
                "fqdn": "trafficmonitor.infra.ciab.test",
                "httpsPort": 443,
                "ip": "172.26.0.14",
                "ip6": "",
                "location": "CDN_in_a_Box_Edge",
                "port": 80,
                "profile": "RASCAL-Traffic_Monitor",
                "status": "ONLINE"
            }
        },
        "stats": {
            "CDN_name": "CDN-in-a-Box",
            "date": 1590607873,
            "tm_host": "trafficops.infra.ciab.test:443",
            "tm_user": "admin",
            "tm_version": "development"
        },
        "topologies": {
            "my-topology": {
                "nodes": [
                    "CDN_in_a_Box_Edge"
                ]
            }
        }
    }
}