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
Name |
Description |
---|---|
name |
The name of the CDN for which a Snapshot shall be returned |
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:
- status:
The health status of this Traffic Router
See also
- 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
- 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
See also
- 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
- 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
- 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
- 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
- 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
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"
]
}
}
}
}