This is an automated email from the ASF dual-hosted git repository.

zrhoffman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 4808c817fb Traffic Router: Set "minimum" for SOA records to a custom 
value defined by a parameter (#7808)
4808c817fb is described below

commit 4808c817fbe9be87ff1cf426dfd22d8d5bf54391
Author: Srijeet Chatterjee <[email protected]>
AuthorDate: Tue Sep 26 11:02:42 2023 -0600

    Traffic Router: Set "minimum" for SOA records to a custom value defined by 
a parameter (#7808)
    
    * initial commit
    
    * set param to dns neg ttl
    
    * adding changelog
    
    * change param name
    
    * fix tests
    
    * modify changelog
    
    * fix pmd
    
    * code review
---
 CHANGELOG.md                                       |    1 +
 docs/source/admin/traffic_router.rst               |    2 -
 .../traffic_router/core/dns/NameServer.java        |   27 +-
 .../traffic_router/core/dns/ZoneManager.java       |   27 +
 .../src/main/webapp/WEB-INF/applicationContext.xml |    1 -
 .../traffic_router/core/dns/NameServerTest.java    |    6 -
 .../core/dns/ZoneManagerUnitTest.java              |   10 +
 .../core/src/test/resources/publish/CrConfig5.json | 1963 ++++++++++++++++++++
 8 files changed, 2006 insertions(+), 31 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b715fd5c04..8397a7b1eb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -187,6 +187,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 - [#7817](https://github.com/apache/trafficcontrol/pull/7817) *Traffic Control 
Cache Config (t3c)* fixed issue that would cause null ptr panic on client 
fallback.
 
 ### Removed
+- [#7808](https://github.com/apache/trafficcontrol/pull/7808) *Traffic 
Router*: Set SOA `minimum` field to a custom value defined in the 
`tld.soa.minimum` param, and remove the previously added 
`dns.negative.caching.ttl` property.
 - [#7804](https://github.com/apache/trafficcontrol/pull/7804) Removed unneeded 
V5 client methods for `deliveryServiceRequiredcapabilities`.
 - [#7271](https://github.com/apache/trafficcontrol/pull/7271) Removed 
components in `infrastructre/docker/`, not in use as cdn-in-a-box performs the 
same functionality.
 - [#7271](https://github.com/apache/trafficcontrol/pull/7271) Removed 
`misc/jira_github_issue_import.py`, the project does not use JIRA.
diff --git a/docs/source/admin/traffic_router.rst 
b/docs/source/admin/traffic_router.rst
index 8f888b3043..3d6aeb16f3 100644
--- a/docs/source/admin/traffic_router.rst
+++ b/docs/source/admin/traffic_router.rst
@@ -128,8 +128,6 @@ For the most part, the configuration files and 
:term:`Parameters` used by Traffi
        |                            |                                          
 | To disable the queue, set to 0, or to allow an unlimited sized queue, set to 
-1. |                                                    |
        |                            
+-------------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------+
        |                            | dns.zones.dir                            
 | Path to automatically generated zone files for reference                     
    | ``/opt/traffic_router/var/auto-zones``             |
-       |                            
+-------------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------+
-       |                            | dns.negative.caching.ttl                 
 | Value (in seconds) to set as the ``minimum`` for NXDOMAIN and NXRRSET 
responses  | ``900``                                            |
        
+----------------------------+-------------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------+
        | traffic_ops.properties     | traffic_ops.username                     
 | Username with which to access the :ref:`to-api`                              
    | ``admin``                                          |
        |                            |                                          
 | (must have the ``admin`` :term:`Role`)                                       
    |                                                    |
diff --git 
a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
 
b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
index 65e029367d..91c6fa5cf9 100644
--- 
a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
+++ 
b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
@@ -42,7 +42,6 @@ import 
org.apache.traffic_control.traffic_router.core.router.TrafficRouterManage
 
 @SuppressWarnings("PMD.CyclomaticComplexity")
 public class NameServer {
-       private static long negativeCachingTTL = 0L;
        private static final int MAX_SUPPORTED_EDNS_VERS = 0;
        private static final int MAX_ITERATIONS = 6;
        private static final int NUM_SECTIONS = 4;
@@ -329,20 +328,12 @@ public class NameServer {
                        if (record instanceof SOARecord) {
                                final SOARecord soa = (SOARecord) record;
 
-                               // Set the "minimum" attribute to be the 
maximum of the current minimum value and 900 (seconds)
-                               // This is done to increase the negative 
caching TTL, so as to maximize the time interval between
-                               // successive NXDOMAIN or NXRRSET responses.
-                               final long minimum = Math.max(soa.getMinimum(), 
negativeCachingTTL);
-                               final long ttl;
                                // the value of the minimum field is less than 
the actual TTL; adjust
-                               if (minimum != 0 || soa.getTTL() > minimum) {
-                                       ttl = minimum;
-                               } else {
-                                       ttl = soa.getTTL();
-                               }
-                               record = new SOARecord(soa.getName(), 
DClass.IN, ttl, soa.getHost(), soa.getAdmin(),
-                                               soa.getSerial(), 
soa.getRefresh(), soa.getRetry(), soa.getExpire(),
-                                               minimum);
+                               if (soa.getMinimum() != 0 || soa.getTTL() > 
soa.getMinimum()) {
+                                       record = new SOARecord(soa.getName(), 
DClass.IN, soa.getMinimum(), soa.getHost(), soa.getAdmin(),
+                                                       soa.getSerial(), 
soa.getRefresh(), soa.getRetry(), soa.getExpire(),
+                                                       soa.getMinimum());
+                               } // else use the unmodified record
                        }
 
                        rrset.addRR(record);
@@ -442,14 +433,6 @@ public class NameServer {
                this.trafficRouterManager = trafficRouterManager;
        }
 
-       public long getNegativeCachingTTL() {
-               return negativeCachingTTL;
-       }
-
-       public void setNegativeCachingTTL(final long negativeCachingTTL) {
-               this.negativeCachingTTL = negativeCachingTTL;
-       }
-
        public void destroy() {
                /*
                 * Yes, this is odd. We need to call destroy on ZoneManager, 
but it's static, so
diff --git 
a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
 
b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
index 17cda2e957..a4ba655cd0 100644
--- 
a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
+++ 
b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
@@ -101,6 +101,7 @@ import 
com.google.common.util.concurrent.ListenableFutureTask;
 public class ZoneManager extends Resolver {
        private static final Logger LOGGER = 
LogManager.getLogger(ZoneManager.class);
 
+       private static long negativeCachingTTL = 0L;
        private final TrafficRouter trafficRouter;
        private static LoadingCache<ZoneKey, Zone> dynamicZoneCache = null;
        private static LoadingCache<ZoneKey, Zone> zoneCache = null;
@@ -155,6 +156,20 @@ public class ZoneManager extends Resolver {
                ZoneManager.signatureManager = sm;
        }
 
+       public static void setNegativeCachingTTL(final JsonNode config) {
+               JsonNode node = null;
+               try {
+                       node = 
JsonUtils.getJsonNode(JsonUtils.getJsonNode(config, "config"), "soa");
+               } catch (JsonUtilsException e) {
+                       LOGGER.warn("Couldn't find a JSON node for config or 
soa; continuing by setting the minimum value to 900", e);
+               } finally {
+                       negativeCachingTTL = JsonUtils.optLong(node, "minimum", 
900L);
+               }
+       }
+       public static long getNegativeCachingTTL() {
+               return negativeCachingTTL;
+       }
+
        @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
        protected static void initZoneCache(final TrafficRouter tr) {
                synchronized(ZoneManager.class) {
@@ -172,6 +187,7 @@ public class ZoneManager extends Resolver {
                        final int maintenanceInterval = 
JsonUtils.optInt(config, "zonemanager.cache.maintenance.interval", 300); // 
default 5 minutes
                        final int initTimeout = JsonUtils.optInt(config, 
"zonemanager.init.timeout", 10);
 
+                       setNegativeCachingTTL(config);
                        final LoadingCache<ZoneKey, Zone> dzc = 
createZoneCache(ZoneCacheType.DYNAMIC, getDynamicZoneCacheSpec(config, 
poolSize));
                        final LoadingCache<ZoneKey, Zone> zc = 
createZoneCache(ZoneCacheType.STATIC);
 
@@ -377,6 +393,17 @@ public class ZoneManager extends Resolver {
                LOGGER.debug("Attempting to load " + zoneKey.getName());
                final Name name = zoneKey.getName();
                List<Record> records = zoneKey.getRecords();
+               // For SOA records, set the "minimum" to the value set in the 
tld.soa.minimum parameter in
+               // CRConfig.json.
+               for (int i=0; i < records.size(); i++) {
+                       if (records.get(i).getType() == Type.SOA) {
+                               SOARecord soa = (SOARecord)records.get(i);
+                               soa = new SOARecord(soa.getName(), 
soa.getDClass(), soa.getTTL(), soa.getHost(), soa.getAdmin(),
+                                               soa.getSerial(), 
soa.getRefresh(), soa.getRetry(), soa.getExpire(), getNegativeCachingTTL());
+                               records.set(i, soa);
+                               break;
+                       }
+               }
                zoneKey.updateTimestamp();
 
                if (zoneKey instanceof SignedZoneKey) {
diff --git a/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml 
b/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
index 1cb48e73d1..f478724088 100644
--- a/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
@@ -267,7 +267,6 @@
 
        <bean id="NameServer" 
class="org.apache.traffic_control.traffic_router.core.dns.NameServer">
                <property name="trafficRouterManager" 
ref="trafficRouterManager" />
-               <property name="negativeCachingTTL" 
value="$[dns.negative.caching.ttl:900]" />
        </bean>
 
        <bean id="UDPBlockingQueue" 
class="java.util.concurrent.LinkedBlockingQueue" />
diff --git 
a/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/NameServerTest.java
 
b/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/NameServerTest.java
index 627052139d..95e3216b88 100644
--- 
a/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/NameServerTest.java
+++ 
b/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/NameServerTest.java
@@ -82,12 +82,6 @@ public class NameServerTest {
            ns = new NSRecord(m_an, DClass.IN, 12345L, m_an);
     }
 
-    @Test
-    public void TestNegativeCachingTTLGetterAndSetter() throws Exception {
-        nameServer.setNegativeCachingTTL(900L);
-        assertThat(nameServer.getNegativeCachingTTL(), equalTo(900L));
-    }
-
     @Test
     public void TestARecordQueryWithClientSubnetOption() throws Exception {
         
diff --git 
a/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManagerUnitTest.java
 
b/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManagerUnitTest.java
index a15e686568..30e09db522 100644
--- 
a/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManagerUnitTest.java
+++ 
b/traffic_router/core/src/test/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManagerUnitTest.java
@@ -54,6 +54,7 @@ import org.xbill.DNS.Zone;
 import org.xbill.DNS.NSRecord;
 import org.xbill.DNS.CNAMERecord;
 
+import java.io.File;
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -93,6 +94,15 @@ public class ZoneManagerUnitTest {
 
     }
 
+    @Test
+    public void testNegativeCachingTTLGetterAndSetter() throws Exception {
+        final File file = new 
File("src/test/resources/publish/CrConfig5.json");
+        final ObjectMapper mapper = new ObjectMapper();
+        final JsonNode jo = mapper.readTree(file);
+        zoneManager.setNegativeCachingTTL(jo);
+        assertThat(zoneManager.getNegativeCachingTTL(), equalTo(1200L));
+    }
+
     @Test
     public void testGetLocalTRHostnameUsesSingleTRHostname() throws Exception {
         JsonNode trs = new ObjectMapper().readTree("{\"tr-01\": {}}");
diff --git a/traffic_router/core/src/test/resources/publish/CrConfig5.json 
b/traffic_router/core/src/test/resources/publish/CrConfig5.json
new file mode 100644
index 0000000000..277d643eec
--- /dev/null
+++ b/traffic_router/core/src/test/resources/publish/CrConfig5.json
@@ -0,0 +1,1963 @@
+{
+  "contentServers": {
+    "edge-cache-000": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-001.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.0.100",
+      "ip6": "2001:dead:beef:0:C::10/64",
+      "cacheGroup": "cache-group-0",
+      "locationId": "location-0",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "https-only-test": 
["edge-cache-001.https-only-test.thecdn.example.com"],
+        "http-only-test": ["edge-cache-001.http-only-test.thecdn.example.com"],
+        "dns-test": ["edge-cache-001.dns-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-001": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-001.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.0.101",
+      "ip6": "2001:dead:beef:0:C::11/64",
+      "cacheGroup": "cache-group-0",
+      "locationId": "location-0",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "https-only-test": 
["edge-cache-001.https-only-test.thecdn.example.com"],
+        "http-only-test": ["edge-cache-001.http-only-test.thecdn.example.com"],
+        "dns-test": ["edge-cache-001.dns-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-002": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-002.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.0.102",
+      "ip6": "2001:dead:beef:0:C::12/64",
+      "cacheGroup": "cache-group-0",
+      "locationId": "location-0",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "https-only-test": 
["edge-cache-002.https-only-test.thecdn.example.com"],
+        "http-only-test": ["edge-cache-001.http-only-test.thecdn.example.com"],
+        "dns-test": ["edge-cache-001.dns-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-010": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-010.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.1.100",
+      "ip6": "2001:dead:beef:1:C::1A/64",
+      "cacheGroup": "cache-group-1",
+      "locationId": "location-1",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-010.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-010.steering-target-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-010.steering-target-1.thecdn.example.com",
+          "edge-cache-010.steering-target-1-b-b.thecdn.example.com"
+        ]
+      }
+    },
+    "edge-cache-011": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-011.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.1.101",
+      "ip6": "2001:dead:beef:1:C::11/64",
+      "cacheGroup": "cache-group-1",
+      "locationId": "location-1",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-011.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-011.steering-target-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-011.steering-target-1.thecdn.example.com",
+          "edge-cache-011.steering-target-1-b-b.thecdn.example.com"
+        ]
+      }
+    },
+    "edge-cache-012": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-012.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.1.102",
+      "ip6": "2001:dead:beef:1:C::12/64",
+      "cacheGroup": "cache-group-1",
+      "locationId": "location-1",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-012.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-012.steering-target-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-012.steering-target-1.thecdn.example.com",
+          "edge-cache-012.steering-target-1-b-b.thecdn.example.com"
+        ]
+      }
+    },
+    "edge-cache-020": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-020.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.2.100",
+      "ip6": "2001:dead:beef:2:C::1A/64",
+      "cacheGroup": "cache-group-2",
+      "locationId": "location-2",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-2": 
["edge-cache-020.steering-test-2.thecdn.example.com"],
+        "client-steering-target-1": 
["edge-cache-020.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-020.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-020.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-020.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-020.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-020.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-021": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-021.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.2.101",
+      "ip6": "2001:dead:beef:2:C::11/64",
+      "cacheGroup": "cache-group-2",
+      "locationId": "location-2",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-2": 
["edge-cache-021.steering-test-2.thecdn.example.com"],
+        "client-steering-target-1": 
["edge-cache-021.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-021.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-021.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-021.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-021.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-021.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-022": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-022.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.2.102",
+      "ip6": "2001:dead:beef:2:C::12/64",
+      "cacheGroup": "cache-group-2",
+      "locationId": "location-2",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-2": 
["edge-cache-022.steering-test-2.thecdn.example.com"],
+        "client-steering-target-1": 
["edge-cache-022.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-022.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-022.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-022.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-022.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-022.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-030": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-030.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.3.100",
+      "ip6": "2001:dead:beef:3:C::1A/64",
+      "cacheGroup": "cache-group-3",
+      "locationId": "location-3",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-030.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-030.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-030.steering-test-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-030.steering-target-1.thecdn.example.com",
+          "edge-cache-030.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-030.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-030.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-030.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-030.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-030.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-030.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-031": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-031.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.3.101",
+      "ip6": "2001:dead:beef:3:C::11/64",
+      "cacheGroup": "cache-group-3",
+      "locationId": "location-3",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-031.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-031.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-031.steering-test-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-031.steering-target-1.thecdn.example.com",
+          "edge-cache-031.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-031.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-031.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-031.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-031.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-031.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-031.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-032": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-032.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.3.102",
+      "ip6": "2001:dead:beef:3:C::12/64",
+      "cacheGroup": "cache-group-3",
+      "locationId": "location-3",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-032.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-032.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-032.steering-test-2.thecdn.example.com"],
+        "steering-target-1": [
+          "edge-cache-032.steering-target-1.thecdn.example.com",
+          "edge-cache-032.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-032.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-032.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-032.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-032.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-032.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-032.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-040": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-040.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.4.100",
+      "ip6": "2001:dead:beef:4:C::1A/64",
+      "cacheGroup": "cache-group-4",
+      "locationId": "location-4",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-040.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-040.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-040.steering-test-2.thecdn.example.com"],
+        "federation-test": [
+          "edge.federation-test.thecdn.example.com",
+          "edge.dee-ehs-06.thecdn.example.com"
+        ],
+        "steering-target-1": [
+          "edge-cache-040.steering-target-1.thecdn.example.com",
+          "edge-cache-040.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-040.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-040.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-040.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-040.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-040.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-040.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-041": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-041.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.4.101",
+      "ip6": "2001:dead:beef:4:C::11/64",
+      "cacheGroup": "cache-group-4",
+      "locationId": "location-4",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-041.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-041.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-041.steering-test-2.thecdn.example.com"],
+        "federation-test": [
+          "edge.federation-test.thecdn.example.com",
+          "edge.dee-ehs-06.thecdn.example.com"
+        ],
+        "steering-target-1": [
+          "edge-cache-041.steering-target-1.thecdn.example.com",
+          "edge-cache-041.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-041.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-041.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-041.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-041.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-041.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-041.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-042": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-042.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.4.102",
+      "ip6": "2001:dead:beef:4:C::12/64",
+      "cacheGroup": "cache-group-4",
+      "locationId": "location-4",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "steering-test-1": 
["edge-cache-042.steering-test-1.thecdn.example.com"],
+        "steering-target-2": 
["edge-cache-042.steering-target-2.thecdn.example.com"],
+        "steering-test-2": 
["edge-cache-042.steering-test-2.thecdn.example.com"],
+        "federation-test": [
+          "edge.federation-test.thecdn.example.com",
+          "edge.dee-ehs-06.thecdn.example.com"
+        ],
+        "steering-target-1": [
+          "edge-cache-042.steering-target-1.thecdn.example.com",
+          "edge-cache-042.steering-target-1-b-b.thecdn.example.com"
+        ],
+        "client-steering-target-1": 
["edge-cache-042.client-steering-target-1.thecdn.example.com"],
+        "client-steering-target-2": 
["edge-cache-042.client-steering-target-2.thecdn.example.com"],
+        "client-steering-target-3": 
["edge-cache-042.client-steering-target-3.thecdn.example.com"],
+        "client-steering-target-4": 
["edge-cache-042.client-steering-target-4.thecdn.example.com"],
+        "steering-target-4": 
["edge-cache-042.steering-target-4.thecdn.example.com"],
+        "steering-target-3": 
["edge-cache-042.steering-target-3.thecdn.example.com"]
+      }
+    },
+    "edge-cache-070": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-070.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.7.100",
+      "ip6": "2001:dead:beef:7:C::1A/64",
+      "cacheGroup": "cache-group-7",
+      "locationId": "location-7",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-to-https-test": 
["edge-cache-070.http-to-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-071": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-071.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.7.101",
+      "ip6": "2001:dead:beef:7:C::11/64",
+      "cacheGroup": "cache-group-7",
+      "locationId": "location-7",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-to-https-test": 
["edge-cache-071.http-to-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-072": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-072.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.7.102",
+      "ip6": "2001:dead:beef:7:C::12/64",
+      "cacheGroup": "cache-group-7",
+      "locationId": "location-7",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-to-https-test": [ 
"edge-cache-072.http-to-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-080": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-080.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.100",
+      "ip6": "2001:dead:beef:8:C::1A/64",
+      "cacheGroup": "cache-group-8",
+      "locationId": "location-8",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-and-https-test": 
["edge-cache-080.http-and-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-081": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-081.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.101",
+      "ip6": "2001:dead:beef:8:C::11/64",
+      "cacheGroup": "cache-group-8",
+      "locationId": "location-8",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-and-https-test": 
["edge-cache-081.http-and-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-082": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-082.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.102",
+      "ip6": "2001:dead:beef:8:C::12/64",
+      "cacheGroup": "cache-group-8",
+      "locationId": "location-8",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "http-and-https-test": [ 
"edge-cache-082.http-and-https-test.thecdn.example.com"]
+      }
+    },
+    "edge-cache-csd-1": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-csd-1.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.201",
+      "ip6": "2001:dead:beef:8:C::81/64",
+      "cacheGroup": "cache-group-csd",
+      "locationId": "location-csd",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "csd-target-1": ["edge-cache-csd-1.csd-target-1.thecdn.example.com"],
+        "csd-target-2": ["edge-cache-csd-1.csd-target-2.thecdn.example.com"],
+        "csd-target-3": ["edge-cache-csd-1.csd-target-3.thecdn.example.com"],
+        "csd-target-4": ["edge-cache-csd-1.csd-target-4.thecdn.example.com"],
+        "csd-target-5": ["edge-cache-csd-1.csd-target-5.thecdn.example.com"]
+      }
+    },
+    "edge-cache-csd-2": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-csd-2.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.202",
+      "ip6": "2001:dead:beef:8:C::82/64",
+      "cacheGroup": "cache-group-csd",
+      "locationId": "location-csd",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "csd-target-1": ["edge-cache-csd-2.csd-target-1.thecdn.example.com"],
+        "csd-target-2": ["edge-cache-csd-2.csd-target-2.thecdn.example.com"],
+        "csd-target-3": ["edge-cache-csd-2.csd-target-3.thecdn.example.com"],
+        "csd-target-4": ["edge-cache-csd-2.csd-target-4.thecdn.example.com"],
+        "csd-target-5": ["edge-cache-csd-2.csd-target-5.thecdn.example.com"]
+      }
+    },
+    "edge-cache-csd-3": {
+      "type": "EDGE",
+      "profile": "EDGE_STATIC",
+      "status": "REPORTED",
+      "hashId": "[email protected]",
+      "fqdn": "edge-cache-csd-3.thecdn.example.com",
+      "port": "8090",
+      "ip": "12.34.8.203",
+      "ip6": "2001:dead:beef:8:C::83/64",
+      "cacheGroup": "cache-group-csd",
+      "locationId": "location-csd",
+      "hashCount": 1000,
+      "interfaceName": "bond0",
+      "deliveryServices": {
+        "csd-target-1": ["edge-cache-csd-3.csd-target-1.thecdn.example.com"],
+        "csd-target-2": ["edge-cache-csd-3.csd-target-2.thecdn.example.com"],
+        "csd-target-3": ["edge-cache-csd-3.csd-target-3.thecdn.example.com"],
+        "csd-target-4": ["edge-cache-csd-3.csd-target-4.thecdn.example.com"],
+        "csd-target-5": ["edge-cache-csd-3.csd-target-5.thecdn.example.com"]
+      }
+    }
+  },
+  "contentRouters": {
+    "testing-tr-02": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "dc-chicago",
+      "ip6": "2001:dead:beef:123:1::2",
+      "api.port": "3333",
+      "fqdn": "testing-tr-02.cdn.example.com",
+      "ip": "12.34.20.2",
+      "profile": "ROUTER_TEST"
+    },
+    "testing-tr-01": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "dc-chicago",
+      "ip6": "2001:dead:beef:123:1::1",
+      "api.port": "3333",
+      "fqdn": "testing-tr-01.cdn.example.com",
+      "ip": "12.34.20.1",
+      "profile": "ROUTER_TEST"
+    },
+    "edge-testing-tr-08": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-9",
+      "ip6": "2001:dead:beef:124:1::8",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-08.cdn.example.com",
+      "ip": "12.34.21.8",
+      "profile": "ROUTER_TEST"
+    },
+
+    "edge-testing-tr-06": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-9",
+      "ip6": "2001:dead:beef:124:1::6",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-06.cdn.example.com",
+      "ip": "12.34.21.6",
+      "profile": "ROUTER_TEST"
+    },
+
+    "edge-testing-tr-07": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-9",
+      "ip6": "2001:dead:beef:124:1::7",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-07.cdn.example.com",
+      "ip": "12.34.21.7",
+      "profile": "ROUTER_TEST"
+    },
+
+    "edge-testing-tr-01": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-0",
+      "ip6": "2001:dead:beef:124:1::1",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-01.cdn.example.com",
+      "ip": "12.34.21.1",
+      "profile": "ROUTER_TEST"
+    },
+
+    "edge-testing-tr-03": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-0",
+      "ip6": "2001:dead:beef:124:1::3",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-03.cdn.example.com",
+      "ip": "12.34.21.3",
+      "profile": "ROUTER_TEST"
+    },
+    "edge-testing-tr-04": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-0",
+      "ip6": "2001:dead:beef:124:1::4",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-04.cdn.example.com",
+      "ip": "12.34.21.4",
+      "profile": "ROUTER_TEST"
+    },
+    "edge-testing-tr-02": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-0",
+      "ip6": "2001:dead:beef:124:1::2",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-02.cdn.example.com",
+      "ip": "12.34.21.2",
+      "profile": "ROUTER_TEST"
+    },
+    "edge-testing-tr-05": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-9",
+      "ip6": "2001:dead:beef:124:1::5",
+      "api.port": "3333",
+      "fqdn": "edge-testing-tr-05.cdn.example.com",
+      "ip": "12.34.21.5",
+      "profile": "ROUTER_TEST"
+    }
+  },
+  "monitors": {
+    "testing-tmonitor-02": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-2",
+      "ip6": "2001:dead:beef:123:1::6/64",
+      "fqdn": "testing-tmonitor-02.cdn.example.com",
+      "ip": "12.34.1.200",
+      "profile": "MONITOR_TEST"
+    },
+    "testing-tmonitor-01": {
+      "port": "80",
+      "status": "ONLINE",
+      "location": "location-4",
+      "ip6": "2001:dead:beef:123:1::5/64",
+      "fqdn": "testing-tmonitor-01.cdn.example.com",
+      "ip": "12.34.1.201",
+      "profile": "MONITOR_TEST"
+    }
+  },
+  "deliveryServices": {
+    "https-only-test": {
+      "sslEnabled": "true",
+      "consistentHashRegex": "/.*?(/.*?/).*?(.m3u8)",
+      "protocol": {
+        "acceptHttp" : "false",
+        "acceptHttps" : "true",
+        "redirectToHttps" : "false"
+      },
+      "domains": ["https-only-test.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.https-only-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService"
+    },
+    "client-steering-test-1": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": ["X-MoneyTrace"],
+      "domains": ["client-steering-test-1.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true",
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "client-steering-test-1.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.client-steering-test-1\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "staticDnsEntries": []
+    },
+    "client-steering-test-2": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": ["X-MoneyTrace"],
+      "domains": ["client-steering-test-2.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true",
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "client-steering-test-2.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.client-steering-test-2\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "staticDnsEntries": []
+    },
+    "client-steering-diversity-test": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": ["X-MoneyTrace"],
+      "domains": ["client-steering-diversity-test.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true",
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "client-steering-diversity-test.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.client-steering-diversity-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "staticDnsEntries": []
+    },
+    "csd-target-1": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "deepCachingType": "ALWAYS",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["csd-target-1.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.csd-target-1\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "csd-target-2": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "deepCachingType": "ALWAYS",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["csd-target-2.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.csd-target-2\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "csd-target-3": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "deepCachingType": "ALWAYS",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["csd-target-3.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.csd-target-3\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "csd-target-4": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["csd-target-4.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.csd-target-4\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "csd-target-5": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["csd-target-5.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "cdn",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.csd-target-5\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "client-steering-target-1": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["client-steering-target-1.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.client-steering-target-1\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "client-steering-target-2": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["client-steering-target-2.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.client-steering-target-2\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "client-steering-target-3": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["client-steering-target-3.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.client-steering-target-3\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "client-steering-target-4": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["client-steering-target-4.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.client-steering-target-4\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "steering-test-1": {
+      "sslEnabled": "false",
+      "consistentHashRegex": "/.*?(/.*?/).*?(.m3u8)",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": ["X-MoneyTrace"],
+      "domains": ["steering-test-1.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true",
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "steering-test-1.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.steering-test-1\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "staticDnsEntries": [
+        {
+          "name": "mm",
+          "value": "10.20.30.42",
+          "type": "A",
+          "ttl": "7200"
+        },
+        {
+          "name": "mm-cname",
+          "value": "mm.steering-test-1.thecdn.example.com.",
+          "type": "CNAME",
+          "ttl": "7200"
+        }
+      ]
+    },
+    "steering-target-2": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "steering-target-2.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["steering-target-2.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.steering-target-2\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "steering-test-2": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "dispersion": {
+        "limit": 2,
+        "shuffled": "true"
+      },
+      "domains": ["test.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "responseHeaders": {
+        "Foo": "bar",
+        "Yes": "indeed"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true"
+    },
+    "federation-test": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "bypassDestination": {"DNS": {"ttl": "30"}},
+      "domains": ["federation-test.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "edge",
+      "matchsets": [
+        {
+          "protocol": "DNS",
+          "matchlist": [{
+            "regex": ".*\\.federation-test\\..*",
+            "match-type": "HOST"
+          }]
+        },
+        {
+          "protocol": "DNS",
+          "matchlist": [{
+            "regex": ".*\\.dee-ehs-06\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "ttls": {
+        "AAAA": "30",
+        "SOA": "7200",
+        "A": "30",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "30",
+      "staticDnsEntries": [{
+        "name": "mm",
+        "value": "foo.bar.baz.net.",
+        "type": "CNAME",
+        "ttl": "30"
+      }],
+      "maxDnsIpsForLocation": "0",
+      "ip6RoutingEnabled": "true"
+    },
+    "steering-target-1": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "requestHeaders": [
+        "User-Agent",
+        "MyHeader",
+        "Date"
+      ],
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["steering-target-1.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.steering-target-1\\..*",
+            "match-type": "HOST"
+          }]
+        },
+        {
+          "protocol": "HTTP",
+          "matchlist": [{
+            "regex": ".*\\.steering-target-1-b-b\\..*",
+            "match-type": "HOST"
+          }]
+        }
+      ],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "3 0",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "steering-target-4": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "steering-target-4.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["steering-target-4.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.steering-target-4\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "steering-target-3": {
+      "sslEnabled": "false",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "bypassDestination": {"HTTP": {
+        "port": "80",
+        "fqdn": "steering-target-3.overflowcdn.net"
+      }},
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "domains": ["steering-target-3.thecdn.example.com"],
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.steering-target-3\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "regionalGeoBlocking": "false",
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "geoEnabled": [{"countryCode": "US"}],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false"
+    },
+    "http-and-https-test": {
+      "sslEnabled": "true",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "true",
+        "redirectToHttps" : "false"
+      },
+      "domains": ["http-and-https-test.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.http-and-https-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService"
+    },
+    "http-to-https-test": {
+      "sslEnabled": "true",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "true",
+        "redirectToHttps" : "true"
+      },
+      "domains": ["http-to-https-test.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "false",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.http-to-https-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService"
+    },
+    "http-only-test": {
+      "sslEnabled": "true",
+      "protocol": {
+        "acceptHttp" : "true",
+        "acceptHttps" : "false",
+        "redirectToHttps" : "false"
+      },
+      "domains": ["http-only-test.thecdn.example.com"],
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "ttls": {
+        "AAAA": "3600",
+        "SOA": "7200",
+        "A": "3600",
+        "NS": "3600"
+      },
+      "ttl": "3600",
+      "ip6RoutingEnabled": "true",
+      "dispersion": {
+        "limit": 1,
+        "shuffled": "true"
+      },
+      "coverageZoneOnly": "false",
+      "routingName": "tr",
+      "regionalGeoBlocking": "false",
+      "matchsets": [{
+        "protocol": "HTTP",
+        "matchlist": [{
+          "regex": ".*\\.http-only-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService"
+    },
+    "dns-test": {
+      "sslEnabled": "false",
+      "bypassDestination": {
+        "DNS": {
+          "ttl": "30",
+          "cname": "www.example.com"
+        }
+      },
+      "domains": [
+        "dns-test.thecdn.example.com"
+      ],
+      "coverageZoneOnly": "false",
+      "routingName": "edge",
+      "matchsets": [{
+        "protocol": "DNS",
+        "matchlist": [{
+          "regex": ".*\\.dns-test\\..*",
+          "match-type": "HOST"
+        }]
+      }],
+      "ttls": {
+        "AAAA": "30",
+        "SOA": "7200",
+        "A": "30",
+        "NS": "3600"
+      },
+      "missLocation": {
+        "long": "-87.627778",
+        "lat": "41.881944"
+      },
+      "soa": {
+        "expire": "604800",
+        "minimum": "30",
+        "admin": "[email protected]",
+        "retry": "7200",
+        "refresh": "28800"
+      },
+      "geolocationProvider": "maxmindGeolocationService",
+      "ttl": "30",
+      "maxDnsIpsForLocation": "2",
+      "ip6RoutingEnabled": "false"
+    }
+  },
+  "stats": {
+    "tm_version": "1.5.0-3027.8d600a8e",
+    "CDN_name": "thecdn",
+    "tm_user": "admin1",
+    "date": 1465084800,
+    "tm_host": "localhost:8889"
+  },
+  "edgeLocations": {
+    "location-0": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -107.480250,
+      "latitude": 40.117800
+    },
+    "location-1": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -121.0,
+      "latitude": 49.0
+    },
+    "location-2": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -111.0,
+      "latitude": 49.0
+    },
+    "location-3": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -101.0,
+      "latitude": 49.0
+    },
+    "location-4": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -91.0,
+      "latitude": 49.0
+    },
+    "location-7": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -66.0,
+      "latitude": 36.0
+    },
+    "location-8": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -76.0,
+      "latitude": 36.0
+    },
+    "location-9": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -86.0,
+      "latitude": 36.0
+    },
+    "location-csd": {
+      "localizationMethods": ["CZ", "DEEP_CZ", "GEO"],
+      "longitude": -87.0,
+      "latitude": 37.0
+    }
+  },
+  "trafficRouterLocations": {
+    "location-0": {
+      "longitude": -84.0,
+      "latitude": 33.0
+    },
+    "location-9": {
+      "longitude": -87.0,
+      "latitude": 41.0
+    }
+  },
+  "config": {
+    "certificate.api.url": 
"http://${toHostname}/api/5.0/cdns/name/${cdnName}/sslkeys";,
+    "dnschallengemapping.polling.url": 
"http://${toHostname}/api/5.0/dnsrecords/";,
+    "dnschallengemapping.polling.interval": "600000",
+    "federationmapping.polling.url": 
"http://${toHostname}/api/5.0/federations/all";,
+    "federationmapping.polling.interval": "600000",
+    "steeringmapping.polling.url": "http://${toHostname}/api/5.0/steering";,
+    "steeringmapping.polling.interval": "15000",
+    "weight": "1.0",
+    "requestHeaders": [
+      "Accept",
+      "Date"
+    ],
+    "thecdn.dnssec.inception": "1429649333",
+    "geolocation.polling.url": 
"http://localhost:8889/geo/GeoLite2-City.mmdb.gz";,
+    "geolocation.polling.interval": "86400000",
+    "ttls": {
+      "AAAA": "3600",
+      "SOA": "7200",
+      "A": "3600",
+      "DS": "60",
+      "NS": "3600"
+    },
+    "coveragezone.polling.interval": "86400000",
+    "regional_geoblock.polling.url.renamed": 
"http://testing-tm-01.cdn.example.com/some/path";,
+    "keystore.auth.url": "http://localhost:3000/api/5.0/user/login";,
+    "neustar.polling.interval": "12800000",
+    "geolocation6.polling.interval": "86400000",
+    "domain_name": "thecdn.example.com",
+    "consistent.dns.routing": "false",
+    "soa": {
+      "expire": "604800",
+      "minimum": "1200",
+      "admin": "[email protected]",
+      "retry": "7200",
+      "refresh": "28800"
+    },
+    "coveragezone.polling.url": "http://localhost:8889/czf.json";,
+    "deepcoveragezone.polling.url": "http://localhost:8889/dczmap.json";,
+    "api.auth.url": "http://${toHostname}/api/5.0/user/login";,
+    "certificates.polling.interval": "10000",
+    "dnssec.enabled": "false",
+    "edge.dns.routing": "true",
+    "edge.http.routing": "true"
+  }
+}

Reply via email to