CDN¶
/api/1.2/cdns¶
GET /api/1.2/cdns
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description id
string CDN id. name
string CDN name. domainName
string TLD of the CDN. dnssecEnabled
bool DNSSEC enabled. lastUpdated
string Response Example
{ "response": [ { "id": "1" "name": "cdn1", "domainName": "cdn1.foo.com", "dnssecEnabled": false, "lastUpdated": "2014-10-02 08:22:43" }, { "id": "2" "name": "cdn2", "domainName": "cdn2.foo.com", "dnssecEnabled": true, "lastUpdated": "2014-10-02 08:22:43" } ] }
GET /api/1.2/cdns/:id
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description id
yes CDN id. Response Properties
Parameter Type Description id
string CDN id. name
string CDN name. domainName
string TLD of the CDN. dnssecEnabled
bool DNSSEC enabled. lastUpdated
string Response Example
{ "response": [ { "id": "2" "name": "cdn2", "domainName": "cdn2.foo.com", "dnssecEnabled": false, "lastUpdated": "2014-10-02 08:22:43" } ] }
GET /api/1.2/cdns/name/:name
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description name
yes CDN name. Response Properties
Parameter Type Description id
string CDN id. name
string CDN name. domainName
string TLD of the CDN. dnssecEnabled
bool DNSSEC enabled. lastUpdated
string Response Example
{ "response": [ { "id": "2" "name": "cdn2", "domainName": "cdn2.foo.com", "dnssecEnabled": false, "lastUpdated": "2014-10-02 08:22:43" } ] }
POST /api/1.2/cdns
Allows user to create a CDN.
Authentication Required: Yes
Role(s) Required: admin or oper
Request Parameters
Parameter Type Description name
string CDN name. domainName
string TLD of the CDN. dnssecEnabled
bool Whether dnssec is enabled. - false: disabled - true: enabled Request Example
{ "name": "cdn_test", "domainName": "cdn3.foo.com", "dnssecEnabled": true }Response Properties
Parameter Type Description response
hash The details of the creation, if success. >id
int CDN id. >name
string CDN name. >dnssecEnabled
string Whether dnssec is enabled. >domainName
string TLD of the CDN. alerts
array A collection of alert messages. >level
string Success, info, warning or error. >text
string Alert message. Response Example
{ "response":{ "id": 3 "name": "cdn_test", "domainName": "cdn3.foo.com", "dnssecEnabled": true }, "alerts":[ { "level": "success", "text": "cdn was created." } ] }
PUT /api/1.2/cdns/{:id}
Allows user to edit a CDN.
Authentication Required: Yes
Role(s) Required: admin or oper
Request Route Parameters
Name Type Description id
int CDN id. Request Properties
Parameter Type Description name
string CDN name. domainName
string TLD of the CDN. dnssecEnabled
bool Whether dnssec is enabled. - false: disabled - true: enabled Request Example
{ "name": "cdn_test2", "domainName": "cdn3.foo.com", "dnssecEnabled": false }Response Properties
Parameter Type Description response
hash The details of the update, if success. >name
string CDN name. >id
int CDN id. >domainName
string TLD of the CDN. >dnssecEnabled
bool Whether dnssec is enabled. alerts
array A collection of alert messages. >level
string Success, info, warning or error. >text
string Alert message. Response Example
{ "response":{ "id": 3, "name": "cdn_test2", "domainName": "cdn3.foo.com", "dnssecEnabled": false }, "alerts":[ { "level": "success", "text": "cdn was updated." } ] }
DELETE /api/1.2/cdns/{:id}
Allows user to delete a CDN.
Authentication Required: Yes
Role(s) Required: admin or oper
Request Route Parameters
Name Required Description id
yes CDN id. Response Properties
Parameter Type Description alerts
array A collection of alert messages. >level
string success, info, warning or error. >text
string Alert message. Response Example
{ "alerts": [ { "level": "success", "text": "cdn was deleted." } ], }
POST /api/1.2/cdns/{:id}/queue_update
Queue or dequeue updates for all servers assigned to a specific CDN.
Authentication Required: Yes
Role(s) Required: admin or oper
Request Route Parameters
Name Required Description id yes the cdn id. Request Properties
Name Type Description action string queue or dequeue Request Example
{ "action": "queue" }Response Properties
Name Type Description action string The action processed, queue or dequeue. cdnId integer cdn id Response Example
{ "response": { "action": "queue", "cdn": 1 } }
Health¶
GET /api/1.2/cdns/health
Retrieves the health of all locations (cache groups) for all CDNs.
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description totalOnline
int Total number of online caches across all CDNs. totalOffline
int Total number of offline caches across all CDNs. cachegroups
array A collection of cache groups. >online
int The number of online caches for the cache group >offline
int The number of offline caches for the cache group. >name
string Cache group name. Response Example
{ "response": { "totalOnline": 148, "totalOffline": 0, "cachegroups": [ { "online": 8, "offline": 0, "name": "us-co-denver" }, { "online": 7, "offline": 0, "name": "us-de-newcastle" } ] }, }
GET /api/1.2/cdns/:name/health
Retrieves the health of all locations (cache groups) for a given CDN.
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description name
yes Response Properties
Parameter Type Description totalOnline
int Total number of online caches across the specified CDN. totalOffline
int Total number of offline caches across the specified CDN. cachegroups
array A collection of cache groups. >online
int The number of online caches for the cache group >offline
int The number of offline caches for the cache group. >name
string Cache group name. Response Example
{ "response": { "totalOnline": 148, "totalOffline": 0, "cachegroups": [ { "online": 8, "offline": 0, "name": "us-co-denver" }, { "online": 7, "offline": 0, "name": "us-de-newcastle" } ] }, }
GET /api/1.2/cdns/usage/overview
Retrieves the high-level CDN usage metrics.
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description currentGbps
number tps
int maxGbps
int Response Example
{ "response": { "currentGbps": 149.368167, "tps": 36805, "maxGbps": 3961 } }
GET /api/1.2/cdns/capacity
Retrieves the aggregate capacity percentages of all locations (cache groups) for a given CDN.
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description availablePercent
number unavailablePercent
number utilizedPercent
number maintenancePercent
number Response Example
{ "response": { "availablePercent": 89.0939840205533, "unavailablePercent": 0, "utilizedPercent": 10.9060020300395, "maintenancePercent": 0.0000139494071146245 } }
Routing¶
GET /api/1.2/cdns/routing
Retrieves the aggregate routing percentages of all locations (cache groups) for a given CDN.
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description staticRoute
number Used pre-configured DNS entries. miss
number No location available for client IP. geo
number Used 3rd party geo-IP mapping. err
number Error localizing client IP. cz
number Used Coverage Zone geo-IP mapping. dsr
number Overflow traffic sent to secondary CDN. Response Example
{ "response": { "staticRoute": 0, "miss": 0, "geo": 37.8855391018869, "err": 0, "cz": 62.1144608981131, "dsr": 0 } }
Metrics¶
GET /api/1.2/cdns/metric_types/:metric/start_date/:start/end_date/:end
Note: this route is not currently implemented in Traffic Ops. See https://github.com/apache/incubator-trafficcontrol/issues/2309
Retrieves edge metrics of one or all locations (cache groups).
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description metric_type
yes ooff, origin_tps start
yes UNIX time, yesterday, now end
yes UNIX time, yesterday, now Response Properties
Parameter Type Description stats
hash >count
string >98thPercentile
string >min
string >max
string >5thPercentile
string >95thPercentile
string >mean
string >sum
string data
array >time
int >value
number label
string Response Example
{ "response": [ { "stats": { "count": 1, "98thPercentile": 1668.03, "min": 1668.03, "max": 1668.03, "5thPercentile": 1668.03, "95thPercentile": 1668.03, "mean": 1668.03, "sum": 1668.03 }, "data": [ [ 1425135900000, 1668.03 ], [ 1425136200000, null ] ], "label": "Origin TPS" } ], }
Domains¶
GET /api/1.2/cdns/domains
Authentication Required: Yes
Role(s) Required: None
Response Properties
Parameter Type Description profileId
string parameterId
string profileName
string profileDescription
string domainName
string Response Example
{ "response": [ { "profileId": "5", "parameterId": "404", "profileName": "CR_FOO", "profileDescription": "Content Router for foo.domain.net", "domainName": "foo.domain.net" }, { "profileId": "8", "parameterId": "405", "profileName": "CR_BAR", "profileDescription": "Content Router for bar.domain.net", "domainName": "bar.domain.net" } ], }
Topology¶
GET /api/1.2/cdns/:cdn_name/configs
Retrieves CDN config information.
Authentication Required: Yes
Request Route Parameters
Name Required Description cdn_name
yes Your cdn name or, all Response Properties
Parameter Type Description id
string value
string name
string config_file
string Response Example
TBD
GET /api/1.2/cdns/:name/configs/monitoring
Retrieves CDN monitoring information.
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description name
yes CDN name Response Properties
Parameter Type Description trafficServers
array A collection of Traffic Servers. >profile
string >ip
string >status
string >cacheGroup
string >ip6
string >port
int >hostName
string >fqdn
string >interfaceName
string >type
string >hashId
string cacheGroups
array A collection of cache groups. >coordinates
hash >>longitude
number >>latitude
number >name
string config
hash >hack.ttl
int >tm.healthParams.polling.url
string >tm.dataServer.polling.url
string >health.timepad
int >tm.polling.interval
int >health.threadPool
int >health.polling.interval
int >health.event-count
int >tm.crConfig.polling.url
number >CDN_name
number trafficMonitors
array A collection of Traffic Monitors. >profile
string >location
string >ip
string >status
string >ip6
string >port
int >hostName
string >fqdn
string deliveryServices
array A collection of delivery services. >xmlId
string >totalTpsThreshold
int >status
string >totalKbpsThreshold
int profiles
array A collection of profiles. >parameters
hash >>health.connection.timeout
int >>health.polling.url
string >>health.threshold.queryTime
int >>history.count
int >>health.threshold.availableBandwidthInKbps
string >>health.threshold.loadavg
string >name
string >type
string Response Example
TBD
GET /api/1.2/cdns/:name/configs/routing
Retrieves CDN routing information.
Authentication Required: Yes
Role(s) Required: None
Request Route Parameters
Name Required Description name
yes Response Properties
Parameter Type Description trafficServers
array A collection of Traffic Servers. >profile
string >ip
string >status
string >cacheGroup
string >ip6
string >port
int >deliveryServices
array >>xmlId
string >>remaps
array >>hostName
string >fqdn
string >interfaceName
string >type
string >hashId
string stats
hash >trafficOpsPath
string >cdnName
string >trafficOpsVersion
string >trafficOpsUser
string >date
int >trafficOpsHost
string cacheGroups
array A collection of cache groups. >coordinates
hash >>longitude
number >>latitude
number >name
string config
hash >tld.soa.admin
string >tcoveragezone.polling.interval
int >geolocation.polling.interval
int >tld.soa.expire
int >coveragezone.polling.url
string >tld.soa.minimum
int >geolocation.polling.url
string >domain_name
string >tld.ttls.AAAA
int >tld.soa.refresh
int >tld.ttls.NS
int >tld.ttls.SOA
int >geolocation6.polling.interval
int >tld.ttls.A
int >tld.soa.retry
int >geolocation6.polling.url
string trafficMonitors
array A collection of Traffic Monitors. >profile
string >location
string >ip
string >status
string >ip6
string >port
int >hostName
string >fqdn
string deliveryServices
array A collection of delivery services. >xmlId
string >ttl
int >geoEnabled
string >coverageZoneOnly
boolean >matchSets
array >>protocol
string >>matchList
array >>>regex
string >>>matchType
string >bypassDestination
hash >>maxDnsIpsForLocation
int >>ttl
int >>type
string >ttls
hash >>A
int >>SOA
int >>NS
int >>AAAA
int >missCoordinates
hash >>longitude
number >>latitude
number >soa
hash >>admin
string >>retry
int >>minimum
int >>refresh
int >>expire
int trafficRouters
hash >profile
int >location
string >ip
string >status
string >ip6
string >port
int >hostName
string >fqdn
string >apiPort
int
Response Example
TBD
DNSSEC Keys¶
GET /api/1.2/cdns/name/:name/dnsseckeys
Gets a list of dnsseckeys for a CDN and all associated Delivery Services.
Authentication Required: Yes
Role(s) Required: Admin
Request Route Parameters
Name Required Description name
yes Response Properties
Parameter Type Description cdn name/ds xml_id
string identifier for ds or cdn >zsk/ksk
array collection of zsk/ksk data >>ttl
string time-to-live for dnssec requests >>inceptionDate
string epoch timestamp for when the keys were created >>expirationDate
string epoch timestamp representing the expiration of the keys >>private
string encoded private key >>public
string encoded public key >>name
string domain name version
string API version ksk>>dsRecord>>algorithm
string The algorithm of the referenced DNSKEY-recor. ksk>>dsRecord>>digestType
string Cryptographic hash algorithm used to create the Digest value. ksk>>dsRecord>>digest
string A cryptographic hash value of the referenced DNSKEY-record. Response Example
{ "response": { "cdn1": { "zsk": { "ttl": "60", "inceptionDate": "1426196750", "private": "zsk private key", "public": "zsk public key", "expirationDate": "1428788750", "name": "foo.kabletown.com." }, "ksk": { "name": "foo.kabletown.com.", "expirationDate": "1457732750", "public": "ksk public key", "private": "ksk private key", "inceptionDate": "1426196750", "ttl": "60", dsRecord: { "algorithm": "5", "digestType": "2", "digest": "abc123def456" } } }, "ds-01": { "zsk": { "ttl": "60", "inceptionDate": "1426196750", "private": "zsk private key", "public": "zsk public key", "expirationDate": "1428788750", "name": "ds-01.foo.kabletown.com." }, "ksk": { "name": "ds-01.foo.kabletown.com.", "expirationDate": "1457732750", "public": "ksk public key", "private": "ksk private key", "inceptionDate": "1426196750" } }, ... repeated for each ds in the cdn }, }
GET /api/1.2/cdns/name/:name/dnsseckeys/delete
Delete dnssec keys for a cdn and all associated delivery services.
Authentication Required: Yes
Role(s) Required: Admin
Request Route Parameters
Name Required Description name
yes name of the CDN for which you want to delete dnssec keys Response Properties
Parameter Type Description response
string success response Response Example
{ "response": "Successfully deleted dnssec keys for <cdn>" }
POST /api/1.2/deliveryservices/dnsseckeys/generate
Generates ZSK and KSK keypairs for a CDN and all associated Delivery Services.
Authentication Required: Yes
Role(s) Required: Admin
Request Properties
Parameter Type Description key
string name of the cdn name
string domain name of the cdn ttl
string time to live kskExpirationDays
string Expiration (in days) for the key signing keys zskExpirationDays
string Expiration (in days) for the zone signing keys Request Example
{ "key": "cdn1", "name" "ott.kabletown.com", "ttl": "60", "kskExpirationDays": "365", "zskExpirationDays": "90" }Response Properties
Parameter Type Description response
string response string version
string API version Response Example
{ "response": "Successfully created dnssec keys for cdn1" }
SSL Keys¶
GET /api/1.2/cdns/name/:name/sslkeys
Returns ssl certificates for all Delivery Services that are a part of the CDN.
Authentication Required: Yes
Role(s) Required: Admin
Request Route Parameters
Name Required Description name
yes Response Properties
Parameter Type Description deliveryservice
string identifier for deliveryservice xml_id certificate
array collection of certificate >>key
string base64 encoded private key for ssl certificate >>crt
string base64 encoded ssl certificate Response Example
{ "response": [ { "deliveryservice": "ds1", "certificate": { "crt": "base64encodedcrt1", "key": "base64encodedkey1" } }, { "deliveryservice": "ds2", "certificate": { "crt": "base64encodedcrt2", "key": "base64encodedkey2" } } ] }