Caution
This page is a stub! Much of it may be missing or just downright wrong - it needs a lot of love from people with the domain knowledge required to update it.
Retrieves the current Snapshot
for a CDN, which represents the current operating state of the CDN, not the current configuration 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
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 HTTP/1.1
User-Agent: python-requests/2.23.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
- 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 theCache-Control
header of some HTTP responses, likely thetr-api
responses- certificates.polling.interval
A string containing an integer which specifies the interval, in seconds, 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 seconds, 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 (Top-Level Domain)
served by the CDN- federationmapping.polling.interval
A string containing an integer which specifies the interval, in seconds, 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 seconds, 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 (Start of Authority)
for the CDN'sTLD (Top-Level Domain)
(defined indomain_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 (Time To Live)
- 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 (Start of Authority)
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
1035
dictates that this should always be less thanrefresh
.
- steeringmapping.polling.interval
A string containing an integer which specifies the interval, in seconds, 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
tr-api
is served by this Traffic Router via HTTP- secure.api.port
An optionally present string containing the port number on which the
tr-api
is served by this Traffic Router via HTTPS- fqdn
This Traffic Router's
FQDN (Fully Qualified Domain Name)
- 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
cache-group-name
of theCache Group
to which this Traffic Router belongs- port
The port number on which this Traffic Router listens for incoming HTTP requests
- profile
The
profile-name
of theProfile
used by this Traffic Router- status
The health status of this Traffic Router
health-proto
- 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
cache-group-name
of theCache Group
to which the server belongs- capabilities
An array of this
Cache Server
'sServer 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 thiscache server
is assigned; the values corresponding to those keys are arrays ofFQDNs (Fully Qualified Domain Names)
that resolve to thiscache server
Note
Only
Edge-tier cache servers
can be assigned to aDelivery Service
, and therefore this field will only be present whentype
is"EDGE"
.
- fqdn
The server's
FQDN (Fully Qualified Domain Name)
- 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
profile-name
of theProfile
used by thecache 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
health-proto
- type
The
Type
of thiscache 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 <ds-xmlid>
of all of theDelivery Services
within the CDN- anonymousBlockingEnabled
A string containing a boolean that tells whether or not
ds-anonymous-blocking
is set on thisDelivery Service
; one of:
- "true"
Anonymized IP addresses are blocked by this
Delivery Service
- "false"
Anonymized IP addresses are not blocked by this
Delivery Service
anonymous_blocking-qht
- 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 itsCoverage Zone File
ds-geo-limit
- deepCachingType
A string that defines the
ds-deep-caching
setting of thisDelivery Service
- dispersion
An object describing the "dispersion" - or number of
cache servers
within a singleCache Group
across which the same content is spread - within theDelivery Service
- limit
The maximum number of
cache servers
in which the response to a single request URL will be storedNote
If this is greater than the number of
cache servers
in theCache 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"
:term: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
ds-ecs
that tells whether EDNS0 client subnet is enabled on thisDelivery 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
ds-ipv6-routing
setting for thisDelivery 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 usingpattern
to determine whether or not to use thisDelivery Service
- HOST_REGEXP
Use the
Delivery Service
ifpattern
matches theHost
HTTP header of an HTTP request, or the name requested for resolution in a DNS request- HEADER_REGEXP
Use the
Delivery Service
ifpattern
matches an HTTP header (both the name and value) in an HTTP request1- PATH_REGEXP
Use the
Delivery Service
ifpattern
matches the request path of thisDelivery Service
's URL2- STEERING_REGEXP
Use the
Delivery Service
ifpattern
matches theds-xmlid
of one of thisDelivery Service
's "Steering" targetDelivery 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 theDeep 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
ds-protocol
- regionalGeoBlocking
A string containing a boolean that defines the
ds-regionalgeo
setting of thisDelivery Service
; one of:
- "false"
Regional Geographic Blocking is not used by this
Delivery Service
- "true"
Regional Geographic Blocking is used by this
Delivery Service
regionalgeo-qht
- requiredCapabilities
An array of this Delivery Service's
required capabilities <Delivery Service required capabilities>
. If there are no required capabilities, this field is omitted.- routingName
A string that is this
Delivery Service's Routing Name <ds-routing-name>
- soa
An object defining the
SOA (Start of Authority)
record for theDelivery Service
'sTLDs (Top-Level Domains)
(defined indomains
)- 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 (Time To Live)
- 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 (Start of Authority)
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
1035
dictates that this should always be less thanrefresh
.
- 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
ds-protocol
- topology
The name of the
Topology
that thisDelivery 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 <cache-group-fallbacks>
- fallbackToClosest
A string containing a boolean which defines the
cache-group-fallback-to-closest
behavior of thisCache 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 anycache-group-fallbacks
, this key will appear and will be an array of thoseCache Groups' Names <cache-group-name>
- latitude
A floating point number that defines this
Cache Group's Latitude <cache-group-latitude>
- localizationMethods
An array of strings that represents this
Cache Group's Localization Methods <cache-group-localization-methods>
- longitude
A floating point number that defines this
Cache Group's Longitude <cache-group-longitude>
- monitors
An object containing keys which are the (short) hostnames of Traffic Monitors within this CDN
- fqdn
The
FQDN (Fully Qualified Domain Name)
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
cache-group-name
of theCache 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
profile-name
of theProfile
used by this Traffic Monitor
Note
For legacy reasons, this must always start with "RASCAL-".
- status
The health status of this Traffic Monitor
health-proto
- 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 (Fully Qualified Domain Name)
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 thisTopology
.Mid-Tier
Cache Groups in the topology are not included.- trafficRouterLocations
An object containing keys which are the
names of Cache Groups <cache-group-name>
within the CDN which contain Traffic Routers- backupLocations
An object that describes this
Cache Group's Fallbacks <cache-group-fallbacks>
- fallbackToClosest
A string containing a boolean which defines this
Cache Group's Fallback to Closest <cache-group-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 <cache-group-latitude>
- localizationMethods
An array of strings that represents this
Cache Group's Localization Methods <cache-group-localization-methods>
- longitude
A floating point number that defines this
Cache Group's Longitude <cache-group-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 18:33:17 GMT; Max-Age=3600; HttpOnly
Vary: Accept-Encoding
Whole-Content-Sha512: B5qdN9URIfu11gQxPZ8YaaMvy2HMrzsnrpt6vF037yv6OQiKCRyrUMX6wYs7QW4YVaeUrvmS2ya5l2YC0kvNAg==
X-Server-Name: traffic_ops_golang/
Date: Wed, 27 May 2020 17:33:17 GMT
Content-Length: 1360
{
"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"
},
"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"
}
},
"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",
"routingDisabled": 0,
"status": "REPORTED",
"type": "EDGE"
},
"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",
"routingDisabled": 0,
"status": "REPORTED",
"type": "MID"
}
},
"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": [
{
"matchlist": [
{
"match-type": "HOST",
"regex": ".*\\.demo1\\..*"
}
],
"protocol": "HTTP"
}
],
"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": {
"backupLocations": {
"fallbackToClosest": "true"
},
"latitude": 38.897663,
"localizationMethods": [
"GEO",
"CZ",
"DEEP_CZ"
],
"longitude": -77.036574
}
},
"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": 1590600715,
"tm_host": "trafficops.infra.ciab.test:443",
"tm_user": "admin",
"tm_version": "development"
},
"topologies": {
"my-topology": {
"nodes": [
"CDN_in_a_Box_Edge"
]
}
},
"trafficRouterLocations": {
"CDN_in_a_Box_Edge": {
"backupLocations": {
"fallbackToClosest": "false"
},
"latitude": 38.897663,
"localizationMethods": [
"GEO",
"CZ",
"DEEP_CZ"
],
"longitude": -77.036574
}
}
}
}