.. 
.. Copyright 2015 Comcast Cable Communications Management, LLC
.. 
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
.. 
..     http://www.apache.org/licenses/LICENSE-2.0
.. 
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. 

.. _to-api-v11-cdn-health:

CDN 
===

.. _to-api-v11-cdn-health-route:

/api/1.1/cdns
+++++++++++++

**GET /api/1.1/cdns.json**

  Authentication Required: Yes

  Role(s) Required: None

  **Response Properties**

  +------------------+--------+-------------------------------------------------+
  |    Parameter     |  Type  |                   Description                   |
  +==================+========+=================================================+
  | ``name``         | string | CDN name.                                       |
  +------------------+--------+-------------------------------------------------+
  | ``id``           |  int   | CDN id.                                         |
  +------------------+--------+-------------------------------------------------+

  **Response Example** ::

    {
     "response": [
           {
              "name": "over-the-top",
              "id": 1
           }
        ]
    }

|

**GET /api/1.1/cdns/name/:name.json**

  Authentication Required: Yes

  Role(s) Required: None

  **Response Properties**

  +------------------+--------+-------------------------------------------------+
  |    Parameter     |  Type  |                   Description                   |
  +==================+========+=================================================+
  | ``name``         | string | CDN name.                                       |
  +------------------+--------+-------------------------------------------------+
  | ``id``           |  int   | CDN id.                                         |
  +------------------+--------+-------------------------------------------------+

  **Response Example** ::

    {
     "response": [
           {
              "name": "over-the-top",
              "id": 1
           }
        ]
    }

|

Health
++++++

**GET /api/1.1/cdns/health.json**

  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.1/cdns/:name/health.json**

  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.1/cdns/usage/overview.json**

  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.1/cdns/capacity.json**

  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
         }
    }

|

.. _to-api-v11-cdn-routing:

Routing
+++++++

**GET /api/1.1/cdns/routing.json**

  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
         }
    }

|

.. _to-api-v11-cdn-metrics:

Metrics
+++++++

**GET /api/1.1/cdns/metric_types/:metric/start_date/:start/end_date/:end.json**

  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"
        }
     ],
    }

|

.. _to-api-v11-cdn-domains:

Domains
+++++++

**GET /api/1.1/cdns/domains.json**

  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"
        }
     ],
    }

|

.. _to-api-v11-cdn-topology:

Topology
++++++++

**GET /api/1.1/cdns/:cdn_name/configs.json**

  Retrieves CDN config information based upon the provided cdn name.

  Authentication Required: Yes

  Role(s) Required: None

  **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.1/cdns/:name/configs/monitoring.json**

  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.1/cdns/:name/configs/routing.json**

  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

 
.. _to-api-v11-cdn-dnsseckeys:

DNSSEC Keys
+++++++++++

**GET /api/1.1/cdns/name/:name/dnsseckeys.json**

  Gets a list of dnsseckeys for CDN and all associated Delivery Services.
  Before returning response to user, check to make sure keys aren't expired.  If they are expired, generate new ones.
  Before returning response to user, make sure dnssec keys for all delivery services exist.  If they don't exist, create them.

  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                                             |
  +------------------------+--------+---------------------------------------------------------+


  **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"
          }
        },
        "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.1/cdns/name/:name/dnsseckeys/delete.json**

  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.1/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"
    }

