updates rst docs
diff --git a/docs/latest/.buildinfo b/docs/latest/.buildinfo
index 4f0798b..63cb5f0 100644
--- a/docs/latest/.buildinfo
+++ b/docs/latest/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 6bd05c0cca12986592bae230f40a44a6
+config: 1ede4b69d1bd3c15d89d5ad9bd9f97e6
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/latest/_images/71DA92BB-8E1E-4921-BC95-574E659812FF.png b/docs/latest/_images/71DA92BB-8E1E-4921-BC95-574E659812FF.png
deleted file mode 100644
index 922d6eb..0000000
--- a/docs/latest/_images/71DA92BB-8E1E-4921-BC95-574E659812FF.png
+++ /dev/null
Binary files differ
diff --git a/docs/latest/_images/traffic_control_overview_3.png b/docs/latest/_images/traffic_control_overview_3.png
index 594983b..58f03d7 100644
--- a/docs/latest/_images/traffic_control_overview_3.png
+++ b/docs/latest/_images/traffic_control_overview_3.png
Binary files differ
diff --git a/docs/latest/_sources/admin/index.txt b/docs/latest/_sources/admin/index.txt
index e92f5e2..18a36ce 100644
--- a/docs/latest/_sources/admin/index.txt
+++ b/docs/latest/_sources/admin/index.txt
@@ -20,29 +20,31 @@
 
 When installing a complete CDN from scratch, a sample recommended order is:
 
-1. Traffic Ops
-2. Traffic Vault (Riak)
-3. Apache Traffic Server Mid-Tier Caches
-4. Apache Traffic Server Edge Caches
-5. Traffic Monitor
-6. Traffic Router
-7. Traffic Stats
-8. Traffic Portal
+#. Traffic Ops
+#. Traffic Vault (Riak)
+#. Traffic Monitor
+#. Apache Traffic Server Mid-Tier Caches
+#. Apache Traffic Server Edge Caches
+#. Traffic Router
+#. Traffic Stats
+#. Traffic Portal
 
 Once everything is installed, you will need to configure the servers to talk to each other. You will also need Origin server(s), which the Mid-Tier Cache(s) get content from. An Origin server is simply an HTTP(S) server which serves the content you wish to cache on the CDN.
 
 .. toctree::
   :maxdepth: 3
 
-  traffic_ops_install.rst
-  traffic_ops_config.rst
-  traffic_ops_using.rst
-  traffic_ops_extensions.rst
+  traffic_ops/installation.rst
+  traffic_ops/default_profiles.rst
+  traffic_ops/migration_from_10_to_20.rst
+  traffic_ops/configuration.rst
+  traffic_ops/using.rst
+  traffic_ops/extensions.rst
   traffic_portal.rst
   traffic_monitor.rst
+  traffic_monitor_golang.rst
   traffic_router.rst
   traffic_stats.rst
   traffic_server.rst
   traffic_vault.rst
   quick_howto/index.rst
-
diff --git a/docs/latest/_sources/admin/quick_howto/index.txt b/docs/latest/_sources/admin/quick_howto/index.txt
index 96f098f..4eab27f 100644
--- a/docs/latest/_sources/admin/quick_howto/index.txt
+++ b/docs/latest/_sources/admin/quick_howto/index.txt
@@ -22,6 +22,7 @@
   :maxdepth: 3
 
   multi_site.rst
+  multi_site_ats5.rst
   dnssec.rst
   federations.rst
   regionalgeo.rst
diff --git a/docs/latest/_sources/admin/quick_howto/multi_site.txt b/docs/latest/_sources/admin/quick_howto/multi_site.txt
index 32b5436..10dfb82 100644
--- a/docs/latest/_sources/admin/quick_howto/multi_site.txt
+++ b/docs/latest/_sources/admin/quick_howto/multi_site.txt
@@ -37,7 +37,7 @@
 	:scale: 100%
 	:align: center
 
-4) Check the multi-site check box in the delivery service screen and make sure that Content Routing Type is set to HTTP_LIVE_NATL:
+4) Check the multi-site check box in the delivery service screen:
 
 .. image:: mso-enable.png
 	:scale: 100%
diff --git a/docs/latest/_sources/admin/quick_howto/multi_site_ats5.txt b/docs/latest/_sources/admin/quick_howto/multi_site_ats5.txt
new file mode 100644
index 0000000..570e844
--- /dev/null
+++ b/docs/latest/_sources/admin/quick_howto/multi_site_ats5.txt
@@ -0,0 +1,95 @@
+.. 
+.. 
+.. 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.
+.. 
+
+.. _rl-multi-site-origin-qht-ats5:
+
+*********************************
+Configure Multi Site Origin (5.x)
+*********************************
+
+1) Create "cachegroups" for the origin locations, and assign the appropriate parent-child relationship between the mid cg's and org cgs (click the image to see full size):
+
+.. image:: C5C4CD22-949A-48FD-8976-C673083E2177.png
+	:scale: 100%
+	:align: center
+
+2) Create a profile to assign to each of the origins:
+
+.. image:: 19BB6EC1-B6E8-4D22-BFA0-B7D6A9708B42.png
+	:scale: 100%
+	:align: center
+
+3) Create server entries for the origination vips:
+
+.. image:: D28614AA-9758-45ED-9EFD-3A284FC4218E.png
+	:scale: 100%
+	:align: center
+
+4) Check the multi-site check box in the delivery service screen:
+
+.. image:: mso-enable.png
+	:scale: 100%
+	:align: center
+
+5) Assign the org servers to the delivery service that will have the multi site feature:
+
+.. image:: 066CEF4F-C1A3-4A89-8B52-4F72B0531367.png
+	:scale: 100%
+	:align: center
+
+.. Note:: “Origin Server Base URL” uniqueness: In order to enable MID caches to distinguish delivery services by different MSO algorithms while performing parent failover, it requires that “Origin Server Base URL” (OFQDN) for each MSO enabled delivery service is unique unless the exceptions listed afterwards. This means that the OFQDN of a MSO enabled delivery service should be different with the OFQDNs of any other delivery service, regardless of whether they are MSO enabled or not. The exceptions are: 
+       1) If there are multiple CDNs created on the same Traffic Ops, delivery services across different CDNs may have the same OFQDN configured.
+       2) If several delivery services in the same CDN have the same MSO algorithm configured, they may share the same OFQDN.
+       3) If delivery services are assigned with different MID cache groups respectively, they can share the same OFQDN.
+
+6) Select an option from the "Multi Site Origin Algorithm" drop-down list. Four MSO algorithms are supported:
+
++------------------+--------------------------------------------------------------------------------------------------------------------+
+|     Option       |                                                            Description                                             |
++==================+====================================================================================================================+
+| Consistent hash  | Origin server selection is based on the consistent hash of requested URLs.                                         |
++------------------+--------------------------------------------------------------------------------------------------------------------+
+| Primary/back     | Round robin selection does not occur. The first origin server is selected unless it fails.                         |
+|                  | If the first fails, the second and other following origin servers will be tried by order.                          |
+|                  | Order is defined by 2 factors - if the origin server's cachegroup is configured as the                             |
+|                  | parent cachegroup for the mid, then this server will be used as the primary. The same rules                        |
+|                  | apply for secondary parents, in order.  Within the cachegroups, the rank parameter will sort                       |
+|                  | order further. If no parents are defined at the mid, then only rank is considered.                                 |  
++------------------+--------------------------------------------------------------------------------------------------------------------+
+| Strict           | MID caches serve requests strictly in turn. For example: origin server 1 serves the first request,                 |
+| round-robin      | origin server 2 serves the second request, and so on.                                                              |
++------------------+--------------------------------------------------------------------------------------------------------------------+
+| IP based         | MID cache goes through the origin server list in a round robin-based on the IP address of EDGE cache.              |
+| round-robin      |                                                                                                                    |
++------------------+--------------------------------------------------------------------------------------------------------------------+
+
+7) Optionally, there are two configuration options that can set the order of the origins used if "Primary/backup" is selected for "Multi Site Origin Algorithm". By creating location-based cachegroups and assigning the origin servers accordingly and defining these cachegroups as parents for specific mids, location-based primary/secondary selection can be made.   If primary/secondary selection should be the same for all mids, then a new parameter “rank” should be configured for each origin server profile. Origin servers with lower values of rank have higher ranking in the origin server list on MID caches, e.g. OS with rank of "2" precedes OS with the rank of "5". For any OS, if rank value is not defined in its profile, its rank value will default to “1”.  In the event that both location based cachegroups are used alongside rank, sorting will be by cachegroup first and rank second.  In this way it is possible to have specific backup servers for use at specific locations.
+
+.. image:: mso-rank.png
+	:scale: 60%
+	:align: center
+
+8) Assign the parent.config location parameter to the MID profile:
+
+.. image:: D22DCAA3-18CC-48F4-965B-5312993F9820.png
+	:scale: 100%
+	:align: center
+
+
+9) Configure the mid hdr_rewrite on the delivery service, example: ::
+
+	cond %{REMAP_PSEUDO_HOOK} __RETURN__ set-config proxy.config.http.parent_origin.dead_server_retry_enabled 1 __RETURN__ set-config proxy.config.http.parent_origin.simple_retry_enabled 1 __RETURN__ set-config proxy.config.http.parent_origin.simple_retry_response_codes "400,404,412" __RETURN__ set-config proxy.config.http.parent_origin.dead_server_retry_response_codes "502,503" __RETURN__ set-config proxy.config.http.connect_attempts_timeout 2 __RETURN__ set-config proxy.config.http.connect_attempts_max_retries 2 __RETURN__ set-config proxy.config.http.connect_attempts_max_retries_dead_server 1 __RETURN__ set-config proxy.config.http.transaction_active_timeout_in 5 [L] __RETURN__
+
+10) Turn on parent_proxy_routing in the MID profile.
diff --git a/docs/latest/_sources/admin/quick_howto/steering.txt b/docs/latest/_sources/admin/quick_howto/steering.txt
index 1060f29..be3c319 100644
--- a/docs/latest/_sources/admin/quick_howto/steering.txt
+++ b/docs/latest/_sources/admin/quick_howto/steering.txt
@@ -43,7 +43,7 @@
 	:scale: 100%
 	:align: center
 
-5) As the steering user, assign weights to target delivery services.  This will require logging in to Traffic Ops first via ``http://to.kabletown.net/api/1.2/user/login`` and storing the mojolicious cookie.
+5) As the steering user, assign weights or orders to target delivery services.  Assignments must either have a value for weight or order, but not both.  The value of weight must be a positive integer, while the value of order can be any integer.  This will require logging in to Traffic Ops first via ``http://to.kabletown.net/api/1.2/user/login`` and storing the mojolicious cookie.
 
 	Sample cURL: ``curl -H "Cookie: mojolicious=xxxyyy" -XPUT "https://to.kabletown.net/internal/api/1.2/steering/steering-ds" -d @/tmp/steering.json``
 
@@ -61,6 +61,14 @@
        "weight": "9000",
        "deliveryService": "target-deliveryservice-2"
      }
+     {
+       "order": -1,
+       "deliveryService": "target-deliveryservice-3"
+     }
+     {
+       "order": 3,
+       "deliveryService": "target-deliveryservice-4"
+     }
     ]
    }
 
@@ -88,8 +96,16 @@
        "weight": "9000",
        "deliveryService": "target-deliveryservice-2"
      }
+     {
+       "order": -1,
+       "deliveryService": "target-deliveryservice-3"
+     }
+     {
+       "order": 3,
+       "deliveryService": "target-deliveryservice-4"
+     }
     ]
    }
 
-7) Any requests to Traffic Router for the steering delivery service should now be routed to target delivery services based on configured weight.  Example: ``curl -Lvs http://tr.steering-ds.cdn.kabletown.net/foo``
+7) Any requests to Traffic Router for the steering delivery service should now be routed to target delivery services based on configured weight or order.  Example: ``curl -Lvs http://tr.steering-ds.cdn.kabletown.net/foo``
 
diff --git a/docs/latest/_sources/admin/traffic_monitor.txt b/docs/latest/_sources/admin/traffic_monitor.txt
index 3a06e78..1e0c797 100644
--- a/docs/latest/_sources/admin/traffic_monitor.txt
+++ b/docs/latest/_sources/admin/traffic_monitor.txt
@@ -16,6 +16,11 @@
 ******************************
 Traffic Monitor Administration
 ******************************
+
+.. _rl-tm-java:
+
+* These instructions are for the Java Traffic Monitor, for the Golang beta, see :ref:`rl-tm-golang`.
+
 Installing Traffic Monitor
 ==========================
 The following are requirements to ensure an accurate set up:
@@ -30,94 +35,111 @@
 * perl-JSON
 * perl-WWW-Curl
 
-1. Enter the Traffic Monitor server into Traffic Ops
-2. Make sure the FQDN of the Traffic Monitor is resolvable in DNS.
-3. Install Traffic Monitor and Perl mods: ``sudo yum -y install traffic_monitor perl-JSON perl-WWW-Curl``
-4. Take the config from Traffic Ops - run : ``sudo /opt/traffic_monitor/bin/traffic_monitor_config.pl``
- 
-	Sample output: ::
+#. Add the Traffic Monitor server into Traffic Ops using 'Servers' -> 'Add Server'. Set the 'Type' field to 'RASCAL'.
 
-		traffic_mon # /opt/traffic_monitor/bin/traffic_monitor_config.pl https://traffic-ops.cdn.kabletown.net admin:password prompt
-		DEBUG: traffic_ops selected: https://traffic-ops.cdn.kabletown.net
-		DEBUG: traffic_ops login: admin:kl0tevax
-		DEBUG: Config write mode: prompt
-		DEBUG: Found profile from traffic_ops: RASCAL_CDN
-		DEBUG: Found CDN name from traffic_ops: kabletown_cdn
-		DEBUG: Found location for rascal-config.txt from traffic_ops: /opt/traffic_monitor/conf
-		WARN: Param not in traffic_ops: allow.config.edit                        description: Allow the running configuration to be edited through the UI                                                              Using default value of: false
-		WARN: Param not in traffic_ops: default.accessControlAllowOrigin         description: The value for the header: Access-Control-Allow-Origin for published jsons... should be narrowed down to TMs              Using default value of: *
-		WARN: Param not in traffic_ops: default.connection.timeout               description: Default connection time for all queries (cache, peers, TM)                                                               Using default value of: 2000
-		WARN: Param not in traffic_ops: hack.forceSystemExit                     description: Call System.exit on shutdown                                                                                             Using default value of: false
-		WARN: Param not in traffic_ops: hack.peerOptimistic                      description: The assumption of a caches availability when unknown by peers                                                            Using default value of: true
-		WARN: Param not in traffic_ops: hack.publishDsStates                     description: If true, the delivery service states will be included in the CrStates.json                                               Using default value of: true
-		WARN: Param not in traffic_ops: health.ds.interval                       description: The polling frequency for calculating the deliveryService states                                                         Using default value of: 1000
-		WARN: Param not in traffic_ops: health.ds.leniency                       description: The amount of time before the deliveryService disregards the last update from a non-responsive cache                     Using default value of: 30000
-		WARN: Param not in traffic_ops: health.event-count                       description: The number of historical events that will be kept                                                                        Using default value of: 200
-		WARN: Param not in traffic_ops: health.polling.interval                  description: The polling frequency for getting the states from caches                                                                 Using default value of: 5000
-		WARN: Param not in traffic_ops: health.startupMinCycles                  description: The number of query cycles that must be completed before this Traffic Monitor will start reporting                       Using default value of: 2
-		WARN: Param not in traffic_ops: health.timepad                           description: A delay between each separate cache query                                                                                Using default value of: 10
-		WARN: Param not in traffic_ops: peers.polling.interval                   description: Polling frequency for getting states from peer monitors                                                                  Using default value of: 5000
-		WARN: Param not in traffic_ops: peers.polling.url                        description: The url for current, unfiltered states from peer monitors                                                                Using default value of: http://${hostname}/publish/CrStates?raw
-		WARN: Param not in traffic_ops: peers.threadPool                         description: The number of threads given to the pool for querying peers                                                               Using default value of: 1
-		WARN: Param not in traffic_ops: tm.auth.url                              description: The url for the authentication form                                                                                      Using default value of: https://${tmHostname}/login
-		WARN: Param not in traffic_ops: tm.crConfig.json.polling.url             description: Url for the cr-config (json)                                                                                             Using default value of: https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json
-		WARN: Param not in traffic_ops: tm.healthParams.polling.url              description: The url for the heath params (json)                                                                                      Using default value of: https://${tmHostname}/health/${cdnName}
-		WARN: Param not in traffic_ops: tm.polling.interval                      description: The polling frequency for getting updates from TM                                                                        Using default value of: 10000
-		DEBUG: allow.config.edit needed in config, but does not exist in config on disk.
-		DEBUG: cdnName value on disk () does not match value needed in config (kabletown_cdn).
-		DEBUG: default.accessControlAllowOrigin needed in config, but does not exist in config on disk.
-		DEBUG: default.connection.timeout needed in config, but does not exist in config on disk.
-		DEBUG: hack.forceSystemExit needed in config, but does not exist in config on disk.
-		DEBUG: hack.peerOptimistic needed in config, but does not exist in config on disk.
-		DEBUG: hack.publishDsStates needed in config, but does not exist in config on disk.
-		DEBUG: health.ds.interval needed in config, but does not exist in config on disk.
-		DEBUG: health.ds.leniency needed in config, but does not exist in config on disk.
-		DEBUG: health.startupMinCycles needed in config, but does not exist in config on disk.
-		DEBUG: health.timepad value on disk (20) does not match value needed in config (10).
-		DEBUG: peers.polling.interval needed in config, but does not exist in config on disk.
-		DEBUG: peers.threadPool needed in config, but does not exist in config on disk.
-		DEBUG: tm.auth.password value on disk () does not match value needed in config (kl0tevax).
-		DEBUG: tm.auth.username value on disk () does not match value needed in config (admin).
-		DEBUG: tm.hostname value on disk () does not match value needed in config (traffic-ops.cdn.kabletown.net).
-		DEBUG: Proposed traffic_monitor_config:
-		{
-		   "traffic_monitor_config":{
-		      "default.accessControlAllowOrigin":"*",
-		      "health.startupMinCycles":"2",
-		      "tm.auth.password":"kl0tevax",
-		      "tm.auth.url":"https://${tmHostname}/login",
-		      "tm.healthParams.polling.url":"https://${tmHostname}/health/${cdnName}",
-		      "allow.config.edit":"false",
-		      "tm.crConfig.json.polling.url":"https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json",
-		      "tm.auth.username":"admin",
-		      "peers.polling.url":"http://${hostname}/publish/CrStates?raw",
-		      "health.timepad":"10",
-		      "hack.publishDsStates":"true",
-		      "default.connection.timeout":"2000",
-		      "health.ds.interval":"1000",
-		      "peers.polling.interval":"5000",
-		      "hack.forceSystemExit":"false",
-		      "health.ds.leniency":"30000",
-		      "cdnName":"kabletown_cdn",
-		      "peers.threadPool":"1",
-		      "tm.polling.interval":"10000",
-		      "health.polling.interval":"5000",
-		      "health.event-count":"200",
-		      "hack.peerOptimistic":"true",
-		      "tm.hostname":"traffic-ops.cdn.kabletown.net"
-		   }
-		}
-		----------------------------------------------
-		----OK to write this config to disk? (Y/n) [n]y
-		----------------------------------------------
-		----------------------------------------------
-		----OK to write this config to disk? (Y/n) [n]Y
-		----------------------------------------------
-		DEBUG: Writing /opt/traffic_monitor/conf/traffic_monitor_config.js
-		traffic_mon # 
+#. Make sure the FQDN of the Traffic Monitor is resolvable in DNS.
 
-5. Start Tomcat: ``sudo service tomcat start`` ::
+#. Get the Traffic Monitor RPM.
 
+   Sample command: ::
+
+      wget http://traffic-control-cdn.net/downloads/1.7.0/RELEASE-1.7.0/traffic_monitor-1.7.0-3908.5b77f60f.el6.x86_64.rpm
+
+#. Install Traffic Monitor and Perl modules: ::
+
+    sudo yum -y install traffic_monitor-*.rpm perl-JSON perl-WWW-Curl
+
+#. Take the config from Traffic Ops: ::
+
+    sudo /opt/traffic_monitor/bin/traffic_monitor_config.pl https://<traffic-ops-URL> <traffic-ops-user>:<traffic-ops-password> prompt
+
+   Sample session: ::
+
+    traffic_mon # /opt/traffic_monitor/bin/traffic_monitor_config.pl https://traffic-ops.cdn.kabletown.net admin:kl0tevax prompt
+    DEBUG: traffic_ops selected: https://traffic-ops.cdn.kabletown.net
+    DEBUG: traffic_ops login: admin:kl0tevax
+    DEBUG: Config write mode: prompt
+    DEBUG: Found profile from traffic_ops: RASCAL_CDN
+    DEBUG: Found CDN name from traffic_ops: kabletown_cdn
+    DEBUG: Found location for rascal-config.txt from traffic_ops: /opt/traffic_monitor/conf
+    WARN: Param not in traffic_ops: allow.config.edit                        description: Allow the running configuration to be edited through the UI                                                              Using default value of: false
+    WARN: Param not in traffic_ops: default.accessControlAllowOrigin         description: The value for the header: Access-Control-Allow-Origin for published jsons... should be narrowed down to TMs              Using default value of: *
+    WARN: Param not in traffic_ops: default.connection.timeout               description: Default connection time for all queries (cache, peers, TM)                                                               Using default value of: 2000
+    WARN: Param not in traffic_ops: hack.forceSystemExit                     description: Call System.exit on shutdown                                                                                             Using default value of: false
+    WARN: Param not in traffic_ops: hack.peerOptimistic                      description: The assumption of a caches availability when unknown by peers                                                            Using default value of: true
+    WARN: Param not in traffic_ops: hack.publishDsStates                     description: If true, the delivery service states will be included in the CrStates.json                                               Using default value of: true
+    WARN: Param not in traffic_ops: health.ds.interval                       description: The polling frequency for calculating the deliveryService states                                                         Using default value of: 1000
+    WARN: Param not in traffic_ops: health.ds.leniency                       description: The amount of time before the deliveryService disregards the last update from a non-responsive cache                     Using default value of: 30000
+    WARN: Param not in traffic_ops: health.event-count                       description: The number of historical events that will be kept                                                                        Using default value of: 200
+    WARN: Param not in traffic_ops: health.polling.interval                  description: The polling frequency for getting the states from caches                                                                 Using default value of: 5000
+    WARN: Param not in traffic_ops: health.startupMinCycles                  description: The number of query cycles that must be completed before this Traffic Monitor will start reporting                       Using default value of: 2
+    WARN: Param not in traffic_ops: health.timepad                           description: A delay between each separate cache query                                                                                Using default value of: 10
+    WARN: Param not in traffic_ops: peers.polling.interval                   description: Polling frequency for getting states from peer monitors                                                                  Using default value of: 5000
+    WARN: Param not in traffic_ops: peers.polling.url                        description: The url for current, unfiltered states from peer monitors                                                                Using default value of: http://${hostname}/publish/CrStates?raw
+    WARN: Param not in traffic_ops: peers.threadPool                         description: The number of threads given to the pool for querying peers                                                               Using default value of: 1
+    WARN: Param not in traffic_ops: tm.auth.url                              description: The url for the authentication form                                                                                      Using default value of: https://${tmHostname}/login
+    WARN: Param not in traffic_ops: tm.crConfig.json.polling.url             description: Url for the cr-config (json)                                                                                             Using default value of: https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json
+    WARN: Param not in traffic_ops: tm.healthParams.polling.url              description: The url for the heath params (json)                                                                                      Using default value of: https://${tmHostname}/health/${cdnName}
+    WARN: Param not in traffic_ops: tm.polling.interval                      description: The polling frequency for getting updates from TM                                                                        Using default value of: 10000
+    DEBUG: allow.config.edit needed in config, but does not exist in config on disk.
+    DEBUG: cdnName value on disk () does not match value needed in config (kabletown_cdn).
+    DEBUG: default.accessControlAllowOrigin needed in config, but does not exist in config on disk.
+    DEBUG: default.connection.timeout needed in config, but does not exist in config on disk.
+    DEBUG: hack.forceSystemExit needed in config, but does not exist in config on disk.
+    DEBUG: hack.peerOptimistic needed in config, but does not exist in config on disk.
+    DEBUG: hack.publishDsStates needed in config, but does not exist in config on disk.
+    DEBUG: health.ds.interval needed in config, but does not exist in config on disk.
+    DEBUG: health.ds.leniency needed in config, but does not exist in config on disk.
+    DEBUG: health.startupMinCycles needed in config, but does not exist in config on disk.
+    DEBUG: health.timepad value on disk (20) does not match value needed in config (10).
+    DEBUG: peers.polling.interval needed in config, but does not exist in config on disk.
+    DEBUG: peers.threadPool needed in config, but does not exist in config on disk.
+    DEBUG: tm.auth.password value on disk () does not match value needed in config (kl0tevax).
+    DEBUG: tm.auth.username value on disk () does not match value needed in config (admin).
+    DEBUG: tm.hostname value on disk () does not match value needed in config (traffic-ops.cdn.kabletown.net).
+    DEBUG: Proposed traffic_monitor_config:
+    {
+       "traffic_monitor_config":{
+          "default.accessControlAllowOrigin":"*",
+          "health.startupMinCycles":"2",
+          "tm.auth.password":"kl0tevax",
+          "tm.auth.url":"https://${tmHostname}/login",
+          "tm.healthParams.polling.url":"https://${tmHostname}/health/${cdnName}",
+          "allow.config.edit":"false",
+          "tm.crConfig.json.polling.url":"https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json",
+          "tm.auth.username":"admin",
+          "peers.polling.url":"http://${hostname}/publish/CrStates?raw",
+          "health.timepad":"10",
+          "hack.publishDsStates":"true",
+          "default.connection.timeout":"2000",
+          "health.ds.interval":"1000",
+          "peers.polling.interval":"5000",
+          "hack.forceSystemExit":"false",
+          "health.ds.leniency":"30000",
+          "cdnName":"kabletown_cdn",
+          "peers.threadPool":"1",
+          "tm.polling.interval":"10000",
+          "health.polling.interval":"5000",
+          "health.event-count":"200",
+          "hack.peerOptimistic":"true",
+          "tm.hostname":"traffic-ops.cdn.kabletown.net"
+       }
+    }
+    ----------------------------------------------
+    ----OK to write this config to disk? (Y/n) [n]y
+    ----------------------------------------------
+    ----------------------------------------------
+    ----OK to write this config to disk? (Y/n) [n]Y
+    ----------------------------------------------
+    DEBUG: Writing /opt/traffic_monitor/conf/traffic_monitor_config.js
+    traffic_mon #
+
+#. Update the 'allow_ip' and 'allow_ip6' parameters in the profiles of all caches defined in traffic ops, both edge and mid,
+   with the address of the traffic monitor being installed, so that the traffic servers will allow this Traffic Monitor
+   to access the astats plugin.
+   For details see :ref:`rl-param-prof` in the *Configuring Traffic Ops* section.
+
+#. Start Tomcat: ``sudo service tomcat start`` ::
 
     Using CATALINA_BASE: /opt/tomcat
     Using CATALINA_HOME: /opt/tomcat
@@ -127,14 +149,27 @@
     Using CATALINA_PID:/var/run/tomcat/tomcat.pid
     Starting tomcat [ OK ]
 
-6. Verify Traffic Monitor is running by pointing your browser to port 80 on the Traffic Monitor host.
+#. Configure tomcat to start automatically: ``sudo chkconfig tomcat on``
+
+#. Verify Traffic Monitor is running by pointing your browser to port 80 on the Traffic Monitor host:
+
+   * The 'Cache States' tab should display all Mid and Edge caches configured in Traffic Ops.
+   * The 'DeliveryService States' tab should display all delivery services configured in Traffic Ops.
+
+#. In Traffic Ops servers table, click 'Edit' for this server, then click 'Online'.
+
 
 Configuring Traffic Monitor
 ===========================
 
 Configuration Overview
 ----------------------
-Traffic Monitor is configured using its JSON configuration file, ``traffic_monitor_config.js``. Specify the URL, username, password, and CDN name for the instance of Traffic Ops for which this Traffic Monitor is a member, and start the software.  Once started with the correct configuration, Traffic Monitor downloads its configuration from Traffic Ops and begins polling caches. Once a configurable number of polling cycles completes, health protocol state is available via RESTful JSON endpoints.
+Traffic Monitor is configured using its JSON configuration file, ``/opt/traffic_monitor/conf/traffic_monitor_config.js``.
+This file is created by ``traffic_monitor_config.pl`` script, and among other things, it contains the Traffic Ops URL and the user:password
+specified during the invocation of that script.
+
+When started, Traffic Monitor uses this basic configuration to downloads its configuration from Traffic Ops, and begins polling caches.
+Once a configurable number of polling cycles completes, health protocol state is available via RESTful JSON endpoints.
 
 
 Troubleshooting and log files
diff --git a/docs/latest/_sources/admin/traffic_monitor_golang.txt b/docs/latest/_sources/admin/traffic_monitor_golang.txt
new file mode 100644
index 0000000..d08e010
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_monitor_golang.txt
@@ -0,0 +1,65 @@
+.. 
+.. 
+.. 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.
+.. 
+
+******************************
+Traffic Monitor Administration
+******************************
+
+.. _rl-tm-golang:
+
+* These instructions are for the beta Golang Traffic Monitor, for the old Java version, see :ref:`rl-tm-java`.
+
+Installing Traffic Monitor
+==========================
+
+The following are requirements to ensure an accurate set up:
+
+* CentOS 6
+* 8 vCPUs
+* 16GB RAM
+* Successful install of Traffic Ops
+* Administrative access to the Traffic Ops
+* Physical address of the site
+
+1. Enter the Traffic Monitor server into Traffic Ops
+2. Make sure the FQDN of the Traffic Monitor is resolvable in DNS.
+3. Install Traffic Monitor: ``sudo yum -y install traffic_monitor``
+4. Configure Traffic Monitor. See :ref:`rl-tm-configure`
+5. Start the service: ``sudo service traffic_monitor start`` ::
+
+    Starting traffic_monitor:
+
+6. Verify Traffic Monitor is running by pointing your browser to port 80 on the Traffic Monitor host.
+
+Configuring Traffic Monitor
+===========================
+
+Configuration Overview
+----------------------
+
+.. _rl-tm-configure:
+
+Traffic Monitor is configured via two JSON configuration files, ``traffic_ops.cfg`` and ``traffic_monitor.cfg``, by default located in the ``conf`` directory in the install location.
+
+The ``traffic_ops.cfg`` config contains Traffic Ops connection information. Specify the URL, username, and password for the instance of Traffic Ops for which this Traffic Monitor is a member.
+
+The ``traffic_monitor.cfg`` config contains log file locations, as well as detailed application configuration variables, such as processing flush times and initial poll intervals.
+
+Once started with the correct configuration, Traffic Monitor downloads its configuration from Traffic Ops and begins polling caches. Once every cache has been polled, health protocol state is available via RESTful JSON endpoints.
+
+
+Troubleshooting and log files
+=============================
+Traffic Monitor log files are in ``/opt/traffic_monitor/var/log/``.
diff --git a/docs/latest/_sources/admin/traffic_ops/configuration.txt b/docs/latest/_sources/admin/traffic_ops/configuration.txt
new file mode 100644
index 0000000..d293b89
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/configuration.txt
@@ -0,0 +1,300 @@
+.. 
+.. 
+.. 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.
+.. 
+
+Traffic Ops - Configuring
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Follow the steps below to configure the newly installed Traffic Ops Instance.
+
+Installing the SSL Cert
+=======================
+By default, Traffic Ops runs as an SSL web server, and a certificate needs to be installed.  
+
+Self-signed Certificate (Development)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+    Example Procedure::
+
+      $ openssl genrsa -des3 -passout pass:x -out localhost.pass.key 2048
+      Generating RSA private key, 2048 bit long modulus
+      ...
+      $ openssl rsa -passin pass:x -in localhost.pass.key -out localhost.key
+      writing RSA key
+      $ rm localhost.pass.key
+
+      $ openssl req -new -key localhost.key -out localhost.csr
+      You are about to be asked to enter information that will be incorporated
+      into your certificate request.
+      What you are about to enter is what is called a Distinguished Name or a DN.
+      There are quite a few fields but you can leave some blank
+      For some fields there will be a default value,
+      If you enter '.', the field will be left blank.
+      -----
+      Country Name (2 letter code) [XX]:US<enter>
+      State or Province Name (full name) []:CO<enter>
+      Locality Name (eg, city) [Default City]:Denver<enter>
+      Organization Name (eg, company) [Default Company Ltd]: <enter>
+      Organizational Unit Name (eg, section) []: <enter>
+      Common Name (eg, your name or your server's hostname) []: <enter>
+      Email Address []: <enter>
+
+      Please enter the following 'extra' attributes
+      to be sent with your certificate request
+      A challenge password []: pass<enter>
+      An optional company name []: <enter>
+      $ openssl x509 -req -sha256 -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
+      Signature ok
+      subject=/C=US/ST=CO/L=Denver/O=Default Company Ltd
+      Getting Private key
+      $ sudo cp localhost.crt /etc/pki/tls/certs
+      $ sudo cp localhost.key /etc/pki/tls/private
+      $ sudo chown trafops:trafops /etc/pki/tls/certs/localhost.crt
+      $ sudo chown trafops:trafops /etc/pki/tls/private/localhost.key
+
+Certificate from Certificate Authority (Production)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. Note:: You will need to know the appropriate answers when generating the certificate request file `trafficopss.csr` below.
+
+Example Procedure::
+
+      $ openssl genrsa -des3 -passout pass:x -out trafficops.pass.key 2048
+      Generating RSA private key, 2048 bit long modulus
+      ...
+      $ openssl rsa -passin pass:x -in trafficops.pass.key -out trafficops.key
+      writing RSA key
+      $ rm localhost.pass.key
+
+      Generate the Certificate Signing Request (CSR) file needed for Certificate Authority (CA) request.
+
+      $ openssl req -new -key trafficops.key -out trafficops.csr
+      You are about to be asked to enter information that will be incorporated
+      into your certificate request.
+      What you are about to enter is what is called a Distinguished Name or a DN.
+      There are quite a few fields but you can leave some blank
+      For some fields there will be a default value,
+      If you enter '.', the field will be left blank.
+      -----
+      Country Name (2 letter code) [XX]: <enter country code>
+      State or Province Name (full name) []: <enter state or province>
+      Locality Name (eg, city) [Default City]: <enter locality name>
+      Organization Name (eg, company) [Default Company Ltd]: <enter organization name>
+      Organizational Unit Name (eg, section) []: <enter organizational unit name>
+      Common Name (eg, your name or your server's hostname) []: <enter server's hostname name>
+      Email Address []: <enter e-mail address>
+
+      Please enter the following 'extra' attributes
+      to be sent with your certificate request
+      A challenge password []: <enter challenge password>
+      An optional company name []: <enter>
+      $ sudo cp trafficops.key /etc/pki/tls/private
+      $ sudo chown trafops:trafops /etc/pki/tls/private/trafficops.key
+
+      You must then take the output file trafficops.csr and submit a request to your Certificate Authority (CA).
+      Once you get approved and receive your trafficops.crt file:
+
+      $ sudo cp trafficops.crt /etc/pki/tls/certs
+      $ sudo chown trafops:trafops /etc/pki/tls/certs/trafficops.crt
+
+      If necessary, install the CA certificates .pem and .crt in /etc/pki/tls/certs.
+
+      You will need to update the file /opt/traffic_ops/app/conf/cdn.conf with the following changes:
+            ...
+            e.g. given trafficops.crt and trafficops.key
+            'hypnotoad' => ...
+                'listen' => 'https://[::]:443?cert=/etc/pki/tls/certs/trafficops.crt&key=/etc/pki/tls/private/trafficops.key&ca=/etc/pki/tls/certs/localhost.ca&verify=0x00&ciphers=AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!EDH:!ED'
+             ...
+
+
+Content Delivery Networks
+=========================
+
+.. _rl-param-prof:
+
+Profile Parameters
+======================
+Many of the settings for the different servers in a Traffic Control CDN are controlled by parameters in the parameter view of Traffic Ops. Parameters are grouped in profiles and profiles are assigned to a server or a deliveryservice. For a typical cache there are hundreds of configuration settings to apply. The Traffic Ops parameter view contains the defined settings. To make life easier, Traffic Ops allows for duplication, comparison, import and export of Profiles. Traffic Ops also has a "Global profile" - the parameters in this profile are going to be applied to all servers in the Traffic Ops instance, or apply to Traffic Ops themselves. These parameters are:
+
+
+.. index::
+  Global Profile
+
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+|           Name           |  Config file  |                                                                 Value                                                                 |
++==========================+===============+=======================================================================================================================================+
+| tm.url                   | global        | The URL where this Traffic Ops instance is being served from.                                                                         |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.rev_proxy.url         | global        | Not required. The URL where the Traffic Ops Config file cache instance is being served from.  Requires Traffic Ops ORT 2.1 and above. |
+|                          |               | When configured, ORT will request configuration files via this fqdn, which should be setup as a reverse proxy to the Traffic Ops host |
+|                          |               | or hosts.  Suggested cache lifetime for these files is ~3 minutes or less.  This setting allows for greater scaleability of a CDN     |
+|                          |               | maintained by Traffic Ops by caching configuration files of profile and cdn scope.                                                    |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.toolname              | global        | The name of the Traffic Ops tool. Usually "Traffic Ops". Used in the About screen and in the comments headers of the files generated. |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.infourl               | global        | This is the "for more information go here" URL, which is visible in the About page.                                                   |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.logourl               | global        | This is the URL of the logo for Traffic Ops and can be relative if the logo is under traffic_ops/app/public.                          |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.instance_name         | global        | The name of the Traffic Ops instance. Can be used when multiple instances are active. Visible in the About page.                      |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.traffic_mon_fwd_proxy | global        | When collecting stats from Traffic Monitor, Traffic Ops uses this forward proxy to pull the stats through.                            |
+|                          |               | This can be any of the MID tier caches, or a forward cache specifically deployed for this purpose. Setting                            |
+|                          |               | this variable can significantly lighten the load on the Traffic Monitor system and it is recommended to                               |
+|                          |               | set this parameter on a production system.                                                                                            |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| geolocation.polling.url  | CRConfig.json | The location to get the GeoLiteCity database from.                                                                                    |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| geolocation6.polling.url | CRConfig.json | The location to get the IPv6 GeoLiteCity database from.                                                                               |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+
+These parameters should be set to reflect the local environment.
+
+
+After running the postinstall script, Traffic Ops has the following profiles pre-loaded:
+
++----------+-------------------------------------------------------------------------------------------------+
+|   Name   |                                           Description                                           |
++==========+=================================================================================================+
+| EDGE1    | The profile to be applied to the latest supported version of ATS, when running as an EDGE cache |
++----------+-------------------------------------------------------------------------------------------------+
+| TR1      | The profile to be applied to the latest version of Traffic Router                               |
++----------+-------------------------------------------------------------------------------------------------+
+| TM1      | The profile to be applied to the latest version of Traffic Monitor                              |
++----------+-------------------------------------------------------------------------------------------------+
+| MID1     | The profile to be applied to the latest supported version of ATS, when running as an MID cache  |
++----------+-------------------------------------------------------------------------------------------------+
+| RIAK_ALL | Riak profile for all CDNs to be applied to the Traffic Vault servers                            |
++----------+-------------------------------------------------------------------------------------------------+
+
+.. Note:: The Traffic Server profiles contain some information that is specific to the hardware being used (most notably the disk configuration), so some parameters will have to be changed to reflect your configuration. Future releases of Traffic Control will separate the hardware and software profiles so it is easier to "mix-and-match" different hardware configurations.
+
+Below is a list of cache parameters that are likely to need changes from the default profiles shipped with Traffic Ops:
+
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+|           Name           |    Config file    |                                                       Description                                                       |
++==========================+===================+=========================================================================================================================+
+| allow_ip                 | astats.config     | This is a comma separated  list of IPv4 CIDR blocks that will have access to the astats statistics on the caches.       |
+|                          |                   | The Traffic Monitor IP addresses have to be included in this, if they are using IPv4 to monitor the caches.             |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| allow_ip6                | astats.config     | This is a comma separated  list of IPv6 CIDR blocks that will have access to the astats statistics on the caches.       |
+|                          |                   | The Traffic Monitor IP addresses have to be included in this, if they are using IPv6 to monitor the caches.             |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| Drive_Prefix             | storage.config    | The device path start of the disks. For example, if you have ``/dev/sda`` through ``/dev/sdf`` set this to ``/dev/sd``  |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| Drive_Letters            | storage.config    | The letter part of the disks, in the same example as above set this to ``a,b,c,d,e,f``                                  |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| purge_allow_ip           | ip_allow.config   | The IP address range that is allowed to execute the PURGE method on the caches (not related to :ref:`rl-purge`)         |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v4	   | ip_allow.config   | The masklen to use when coalescing v4 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_number_v4 	   | ip_allow.config   | The number to use when coalescing v4 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm  |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v6	   | ip_allow.config   | The masklen to use when coalescing v6 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v6	   | ip_allow.config   | The masklen to use when coalescing v6 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| health.threshold.loadavg | rascal.properties | The Unix load average at which Traffic Router will stop sending traffic to this cache                                   |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| health.threshold.\\      | rascal.properties | The amount of bandwidth that Traffic Router will try to keep available on the cache.                                    |
+| availableBandwidthInKbps |                   | For example: "">1500000" means stop sending new traffic to this cache when traffic is at 8.5Gbps on a 10Gbps interface. |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+
+Below is a list of Traffic Server plugins that need to be configured in the parameter table:
+
++------------------+---------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+|       Name       |  Config file  |                     Description                      |                                                  Details                                                   |
++==================+===============+======================================================+============================================================================================================+
+| astats_over_http | package       | The package version for the astats_over_http plugin. | `astats_over_http <http://trafficcontrol.apache.org/downloads/index.html>`_                                |
++------------------+---------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| trafficserver    | package       | The package version for the trafficserver plugin.    | `trafficserver <http://trafficcontrol.apache.org/downloads/index.html>`_                                   |
++------------------+---------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| regex_revalidate | plugin.config | The config to be used for regex_revalidate.          | `regex_revalidate <https://docs.trafficserver.apache.org/en/5.3.x/reference/plugins/regex_remap.en.html>`_ |
+|                  |               | For example: --config regex_revalidate.config        |                                                                                                            |
++------------------+---------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+| remap_stats      | plugin.config | The config to be used for remap_stats.               | `remap_stats <https://github.com/apache/trafficserver/tree/master/plugins/experimental/remap_stats>`_      |
+|                  |               | Value is left blank.                                 |                                                                                                            |
++------------------+---------------+------------------------------------------------------+------------------------------------------------------------------------------------------------------------+
+
+
+Regions, Locations and Cache Groups
+===================================
+All servers have to have a `location`, which is their physical location. Each location is part of a `region`, and each region is part of a `division`. For Example, ``Denver`` could be a location in the ``Mile High`` region and that region could be part of the ``West`` division. Enter your divisions first in  `Misc->Divisions`, then enter the regions in `Misc->Regions`, referencing the divisions entered, and finally, enter the physical locations in `Misc->Locations`, referencing the regions entered. 
+
+All servers also have to be part of a `cache group`. A cache group is a logical grouping of caches, that don't have to be in the same physical location (in fact, usually a cache group is spread across minimally 2 physical Locations for redundancy purposes), but share geo coordinates for content routing purposes. JvD to add more.
+
+
+
+Configuring Content Purge
+=========================
+Content purge using ATS is not simple; there is no file system to delete files/directories from, and in large caches it can be hard to delete a simple regular expression from the cache. This is why Traffic Control uses the `Regex Revalidate Plugin <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/regex_revalidate.en.html>`_ to purge content from the system. We don't actually remove the content, we have a check that gets run before each request on each cache to see if this request matches a list of regular expressions, and if it does, we force a revalidation to the origin, making the original content inaccessible. The regex_revalidate plugin will monitor it's config file, and will pick up changes to it without a `traffic_line -x` signal to ATS. Changes to this file need to be distributed to the highest tier (MID) caches in the CDN before they are distributed to the lower tiers, to prevent filling the lower tiers with the content that should be purged from the higher tiers without hitting the origin. This is why the ort script (see :ref:`reference-traffic-ops-ort`) will by default push out config changes to MID first, confirm that they have all been updated, and then push out the changes to the lower tiers. In large CDNs, this can make the distribution and time to activation of the purge too long, and because of that there is the option to not distribute the `regex_revalidate.config` file using the ort script, but to do this using other means. By default, Traffic Ops will use ort to distribute the `regex_revalidate.config` file. 
+
+Content Purge is controlled by the following parameters in the profile of the cache:
+
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+|         Name         |       Config file       |                   Description                    |                                                                         Details                                                                         |
++======================+=========================+==================================================+=========================================================================================================================================================+
+| location             | regex_revalidate.config | What location the file should be in on the cache | The presence of this parameter tells ort to distribute this file; delete this parameter from the profile if this file is distributed using other means. |
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+| maxRevalDurationDays | regex_revalidate.config | The maximum time a purge can be active           | To prevent a build up of many checks before each request, this is longest time the system will allow                                                    |
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+| regex_revalidate     | plugin.config           | The config to be used for regex_revalidate.      | `regex_revalidate <https://docs.trafficserver.apache.org/en/5.3.x/reference/plugins/regex_remap.en.html>`_                                              |
+|                      |                         | For example: --config regex_revalidate.config    |                                                                                                                                                         |
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+| use_reval_pending    | global                  | Configures Traffic Ops to use separate           | When this flag is in use ORT will check for a new regex_revalidate.config every 60 seconds in syncds mode during the dispersal timer. This will         |
+|                      |                         | reval_pending flag for each cache.               | also allow ORT to be run in revalidate mode, which will check for and clear the reval_pending flag.  This can be set to run via cron task.              |
+|                      |                         |                                                  | Enable with a value of 1.  Use of this feature requires Traffic Ops 2.1 and above. Parameter should be assigned to the GLOBAL profile.                  |
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+Note that the TTL the adminstrator enters in the purge request should be longer than the TTL of the content to ensure the bad content will not be used. If the CDN is serving content of unknown, or unlimited TTL, the administrator should consider using `proxy-config-http-cache-guaranteed-min-lifetime <https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.config.en.html#proxy-config-http-cache-guaranteed-min-lifetime>`_ to limit the maximum time an object can be in the cache before it is considered stale, and set that to the same value as `maxRevalDurationDays` (Note that the former is in seconds and the latter is in days, so convert appropriately).
+
+
+
+.. _Creating-CentOS-Kickstart:
+
+Creating the CentOS Kickstart File
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The kickstart file is a text file, containing a list of items, each identified by a keyword. You can create it by using the Kickstart Configurator application, or writing it from scratch. The Red Hat Enterprise Linux installation program also creates a sample kickstart file based on the options that you selected during installation. It is written to the file ``/root/anaconda-ks.cfg``. This file is editable using most text editors that can save files as ASCII text.
+
+To generate ISO, the CentOS Kickstart is necessary:
+
+1. Create a kickstart file.
+2. Create a boot media with the kickstart file or make the kickstart file available on the network.
+3. Make the installation tree available.
+4. Start the kickstart installation.
+
+Create a ks.src file in the root of the selection location. See the example below: 
+
+::
+
+
+ mkdir newdir
+ cd newdir/
+ cp -r ../centos65/* .
+ vim ks.src
+ vim isolinux/isolinux.cfg
+ cd vim osversions.cfg
+ vim osversions.cfg
+
+
+This is a standard kickstart formatted file that the generate ISO process uses to create the kickstart (ks.cfg) file for the install. The generate ISO process uses the ks.src, overwriting any information set in the Generate ISO tab in Traffic Ops, creating ks.cfg.
+
+.. Note:: Streamline your install folder for under 1GB, which assists in creating a CD.   
+
+.. seealso:: For in-depth instructions, please see `Kickstart Installation <https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-howuse.html>`_
+
+
+
+
diff --git a/docs/latest/_sources/admin/traffic_ops/default_profiles.txt b/docs/latest/_sources/admin/traffic_ops/default_profiles.txt
new file mode 100644
index 0000000..9b629be
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/default_profiles.txt
@@ -0,0 +1,53 @@
+.. 
+.. 
+.. 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.
+.. 
+
+.. index::
+  Traffic Ops - Default Profiles
+  
+.. _rl-to-default-profiles:
+
+Traffic Ops - Default Profiles
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Traffic Ops has the concept of :ref:`rl-working-with-profiles`, which are an integral function within Traffic Ops.  To get started, a set of default Traffic Ops profiles need to be imported into Traffic Ops
+to get started to support Traffic Control components Traffic Router, Traffic Monitor, and Apache Traffic Server.
+
+`Download Default Profiles from here <http://trafficcontrol.incubator.apache.org/downloads/profiles/>`_ 
+
+.. _rl-to-profiles-min-needed:
+
+Minimum Traffic Ops Profiles needed
+-----------------------------------
+   * EDGE_ATS_<version>_<platform>_PROFILE.traffic_ops
+   * MID_ATS_<version>_<platform>_PROFILE.traffic_ops
+   * TRAFFIC_MONITOR_PROFILE.traffic_ops
+   * TRAFFIC_ROUTER_PROFILE.traffic_ops
+   * TRAFFIC_STATS_PROFILE.traffic_ops
+   
+
+
+Steps to Import a Profile
+-------------------------
+1. Sign into Traffic Ops
+
+2. Navigate to 'Parameters->Select Profile'
+
+3. Click the "Import Profile" button at the bottom
+
+4. Choose the specific profile you want to import from your download directory
+
+5. Click 'Submit'
+
+6. Continue these steps for each :ref:`rl-to-profiles-min-needed` above
diff --git a/docs/latest/_sources/admin/traffic_ops/extensions.txt b/docs/latest/_sources/admin/traffic_ops/extensions.txt
new file mode 100644
index 0000000..4aceebb
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/extensions.txt
@@ -0,0 +1,88 @@
+.. 
+.. 
+.. 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.
+.. 
+
+.. _admin-to-ext-script:
+
+Managing Traffic Ops Extensions
+*******************************
+
+Each script is a separate bash script located in ``$TO_HOME/bin/checks/``. 
+
+The extensions must be registered with Traffic Ops in order to display a column on the Server Check page. The list of currently registered extensions can be listed by running ``/opt/traffic_ops/app/bin/extensions -a``.
+
+The below extensions are automatically registered with the Traffic Ops database (``to_extension`` table) at install time (see ``traffic_ops/app/db/seeds.sql``). However, cron must still be configured to run these checks periodically. 
+
+The scripts are called as follows: ::
+
+  
+  $TO_HOME/bin/checks/To<name>Check.pl  -c "{\"base_url\": \",https://\"<traffic_ops_ip>\", \"check_name\": \"<check_name>\"}" -l <log level>
+  where:
+
+  <name> is the type of check script
+  <traffic_ops_ip> is the IP address of the Traffic Ops Server
+  <check_name> is the name of the check. For example: CDU, CHR, DSCP, MTU, etc...
+  <log_level> is between 1 and 4, with 4 being the most verbose. This field is optional
+
+
+Example Cron File
+=================
+Edit with ``crontab -e``. You may need to adjust the path to your $TO_HOME to match your system.
+
+::
+
+   
+ PERL5LIB=/opt/traffic_ops/app/local/lib/perl5:/opt/traffic_ops/app/lib
+ 
+ # IPv4 ping examples - The 'select: ["hostName","domainName"]' works but, if you want to check DNS resolution use FQDN.
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"10G\", \"select\": [\"hostName\",\"domainName\"]}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"10G\", \"select\": \"ipAddress\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"10G\", \"name\": \"IPv4 Ping\", \"select\": \"ipAddress\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+
+ # IPv6 ping examples
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"10G6\", \"name\": \"IPv6 Ping\", \"select\": \"ip6Address\", \"syslog_facility\": \"local0\"}" >/dev/null 2>&1
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"10G6\", \"select\": \"ip6Address\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 
+ # iLO ping
+ 18 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"ILO\", \"select\": \"iloIpAddress\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 18 * * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"ILO\", \"name\": \"ILO ping\", \"select\": \"iloIpAddress\", \"syslog_facility\": \"local0\"}" >/dev/null 2>&1
+ 
+ # MTU ping
+ 45 0 * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"MTU\", \"select\": \"ipAddress\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 45 0 * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"MTU\", \"select\": \"ip6Address\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 45 0 * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"MTU\", \"name\": \"Max Trans Unit\", \"select\": \"ipAddress\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+ 45 0 * * * root /opt/traffic_ops/app/bin/checks/ToPingCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"MTU\", \"name\": \"Max Trans Unit\", \"select\": \"ip6Address\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+
+ # FQDN
+ 27 * * * * root /opt/traffic_ops/app/bin/checks/ToFQDNCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"FQDN\""  >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 27 * * * * root /opt/traffic_ops/app/bin/checks/ToFQDNCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"FQDN\", \"name\": \"DNS Lookup\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+ 
+ # DSCP 
+ 36 * * * * root /opt/traffic_ops/app/bin/checks/ToDSCPCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"DSCP\", \"cms_interface\": \"eth0\"}" >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 36 * * * * root /opt/traffic_ops/app/bin/checks/ToDSCPCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"DSCP\", \"name\": \"Delivery Service\", \"cms_interface\": \"eth0\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+ 
+ # RTR
+ 10 * * * * root /opt/traffic_ops/app/bin/checks/ToRTRCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"RTR\"}"  >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 10 * * * * root /opt/traffic_ops/app/bin/checks/ToRTRCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"RTR\", \"name\": \"Content Router Check\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+ 
+ # CHR
+ */15 * * * * root /opt/traffic_ops/app/bin/checks/ToCHRCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"CHR\"}"  >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 
+ # CDU
+ 20 * * * * root /opt/traffic_ops/app/bin/checks/ToCDUCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"CDU\"}"  >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 
+ # ORT
+ 40 * * * * ssh_key_edge_user /opt/traffic_ops/app/bin/checks/ToORTCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"ORT\"}"  >> /var/log/traffic_ops/extensionCheck.log 2>&1
+ 40 * * * * ssh_key_edge_user /opt/traffic_ops/app/bin/checks/ToORTCheck.pl -c "{\"base_url\": \"https://localhost\", \"check_name\": \"ORT\", \"name\": \"Operational Readiness Test\", \"syslog_facility\": \"local0\"}" > /dev/null 2>&1
+   
diff --git a/docs/latest/_sources/admin/traffic_ops/installation.txt b/docs/latest/_sources/admin/traffic_ops/installation.txt
new file mode 100644
index 0000000..b5cce9f
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/installation.txt
@@ -0,0 +1,243 @@
+..
+..
+.. 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.
+..
+
+.. index::
+  Traffic Ops - Installing
+
+.. _rl-to-install:
+
+Traffic Ops - Installing
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+System Requirements
+-------------------
+The user must have the following for a successful minimal install:
+
+* CentOS 7
+* 2 VMs with at least 2 vCPUs, 4GB RAM, 20 GB disk space each
+* Access to Centos Base and epel repositories
+* Access to `The Comprehensive Perl Archive Network (CPAN) <http://www.cpan.org/>`_
+
+As of version 2.0 only Postgres is supported as the database. This documentation assumes CentOS 7.2 and Postgresql 9.6.3. For a production install
+
+.. highlight:: none
+
+Navigating the Install
+-----------------------
+To begin the install:
+
+1. Install Postgres
+
+  For a production install it is best to install postgres on it's own server/VM. To install postgres, on the postgres host (pg) ::
+
+    pg-$ sudo su -
+    pg-# yum -y update
+    pg-# yum -y install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
+    pg-# yum -y install postgresql96-server
+    pg-$ su - postgres
+    pg-$ /usr/pgsql-9.6/bin/initdb -A md5 -W #-W forces the user to provide a superuser (postgres) password
+
+
+  Edit ``/var/lib/pgsql/9.6/data/pg_hba.conf`` to allow your traffic ops app server access. For example if you are going to install traffic ops on ``99.33.99.1`` add::
+
+    host  all   all     99.33.99.1/32 md5
+
+  to the appropriate section of this file. Edit the ``/var/lib/pgsql/9.6/data/postgresql.conf`` file to add the approriate listen_addresses or ``listen_addresses = '*'``,  and start the database: ::
+
+    pg-$ exit
+    pg-# systemctl enable postgresql-9.6
+    pg-# systemctl start postgresql-9.6
+    pg-# systemctl status postgresql-9.6
+
+
+2. Build Traffic Ops
+
+   Build a Traffic Ops rpm using the instructions under the :ref:`dev-building` page.
+
+
+3. Install Postgresql
+
+  Install the postgresql 9.6 yum repository access. ::
+
+    to-$ sudo su -
+    to-# yum -y install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
+
+4. Install the rpm built in step 2. ::
+
+    to-# yum -y install ./dist/traffic_ops-2.0.0-xxxx.yyyyyyy.el7.x86_64.rpm
+
+
+  Install some additional packages that it depends on that were not installed as dependecies in the previous step (these are for the 2.0.0 install, this may change, but the pre-installs won't hurt): ::
+
+    to-# yum -y install git
+    to-# wget -q https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
+    to-# tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
+    to-# PATH=$PATH:/usr/local/go/bin             # go bins are needed in the path for postinstall
+    to-# go get bitbucket.org/liamstask/goose/cmd/goose
+
+  At this point you should be able to login to the database from the ``to`` host to the ``pg`` host like: ::
+
+    to-# psql -h 99.33.99.1 -U postgres
+    Password for user postgres:
+    psql (9.6.3)
+    Type "help" for help.
+
+    postgres=#
+
+  Use this connectivity to create the user and database. In  this example, we use user: ``traffic_ops``, password: ``tcr0cks``, database: ``traffic_ops``: ::
+
+    to-# psql -U postgres -h 99.33.99.1 -c "CREATE USER traffic_ops  WITH ENCRYPTED PASSWORD 'tcr0cks';"
+    Password for user postgres:
+    CREATE ROLE
+    to-# createdb traffic_ops --owner traffic_ops -U postgres -h 99.33.99.1
+    Password:
+    to-#
+
+
+  Now, run the following command as root: ``/opt/traffic_ops/install/bin/postinstall``
+
+  The postinstall will first get all packages needed from CPAN. This may take a while, expect up to 30 minutes on the first install.
+  If there are any prompts in this phase, please just answer with the defaults (some CPAN installs can prompt for install questions).
+
+  When this phase is complete, you will see::
+
+      Complete! Modules were installed into /opt/traffic_ops/app/local
+
+  Some additional files will be installed, and then it will proceed with the next phase of the install, where it will ask you about the local environment for your CDN. Please make sure you remember all your answers and the database answers match the database information previously used to create the database.
+
+
+  Example output::
+
+      ===========/opt/traffic_ops/app/conf/production/database.conf===========
+      Database type [Pg]:
+      Database type: Pg
+      Database name [traffic_ops]:
+      Database name: traffic_ops
+      Database server hostname IP or FQDN [localhost]: 99.33.99.1
+      Database server hostname IP or FQDN: 99.33.99.1
+      Database port number [5432]:
+      Database port number: 5432
+      Traffic Ops database user [traffic_ops]:
+      Traffic Ops database user: traffic_ops
+      Password for Traffic Ops database user:
+      Re-Enter Password for Traffic Ops database user:
+      Writing json to /opt/traffic_ops/app/conf/production/database.conf
+      Database configuration has been saved
+      ===========/opt/traffic_ops/app/db/dbconf.yml===========
+      Database server root (admin) user [postgres]:
+      Database server root (admin) user: postgres
+      Password for database server admin:
+      Re-Enter Password for database server admin:
+      Download Maxmind Database? [yes]:
+      Download Maxmind Database?: yes
+      ===========/opt/traffic_ops/app/conf/cdn.conf===========
+      Generate a new secret? [yes]:
+      Generate a new secret?: yes
+      Number of secrets to keep? [10]:
+      Number of secrets to keep?: 10
+      Not setting up ldap
+      ===========/opt/traffic_ops/install/data/json/users.json===========
+      Administration username for Traffic Ops [admin]:
+      Administration username for Traffic Ops: admin
+      Password for the admin user:
+      Re-Enter Password for the admin user:
+      Writing json to /opt/traffic_ops/install/data/json/users.json
+      ===========/opt/traffic_ops/install/data/json/openssl_configuration.json===========
+      Do you want to generate a certificate? [yes]:
+      Country Name (2 letter code): US
+      State or Province Name (full name): CO
+      Locality Name (eg, city): Denver
+      Organization Name (eg, company): Super CDN, Inc
+      Organizational Unit Name (eg, section):
+      Common Name (eg, your name or your server's hostname):
+      RSA Passphrase:
+      Re-Enter RSA Passphrase:
+      ===========/opt/traffic_ops/install/data/json/profiles.json===========
+      Traffic Ops url [https://localhost]:
+      Traffic Ops url: https://localhost
+      Human-readable CDN Name.  (No whitespace, please) [kabletown_cdn]: blue cdn
+      Human-readable CDN Name.  (No whitespace, please): blue cdn
+      DNS sub-domain for which your CDN is authoritative [cdn1.kabletown.net]: blue-cdn.supercdn.net
+      DNS sub-domain for which your CDN is authoritative: blue-cdn.supercdn.net
+      Writing json to /opt/traffic_ops/install/data/json/profiles.json
+      Downloading Maxmind data
+      --2017-06-11 15:32:41--  http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
+      Resolving geolite.maxmind.com (geolite.maxmind.com)... 2400:cb00:2048:1::6810:262f, 2400:cb00:2048:1::6810:252f, 104.16.38.47, ...
+      Connecting to geolite.maxmind.com (geolite.maxmind.com)|2400:cb00:2048:1::6810:262f|:80... connected.
+
+      ... much SQL output skipped
+
+      Starting Traffic Ops
+      Restarting traffic_ops (via systemctl):                    [  OK  ]
+      Waiting for Traffic Ops to restart
+      Success! Postinstall complete.
+
+      to-# ifconfig
+
+
+  Explanation of the information that needs to be provided:
+
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Field                                              | Description                                                                                  |
+    +====================================================+==============================================================================================+
+    | Database type                                      | Pg                                                                                           |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Database name                                      | The name of the database Traffic Ops uses to store the configuration information             |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Database server hostname IP or FQDN                | The hostname of the database server                                                          |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Database port number                               | The database port number                                                                     |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Traffic Ops database user                          | The username Traffic Ops will use to read/write from the database                            |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Password for traffic ops                           | The password for the above database user                                                     |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Database server root (admin) user name             | Privileged database user that has permission to create the database and user for Traffic Ops |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Database server root (admin) user password         | The password for the above privileged database user                                          |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Traffic Ops url                                    | The URL to connect to this instance of Traffic Ops, usually https://<traffic ops host FQDN>/ |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Human-readable CDN Name                            | The name of the first CDN traffic Ops will be managing                                       |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | DNS sub-domain for which your CDN is authoritative | The DNS domain that will be delegated to this Traffic Control CDN                            |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Administration username for Traffic Ops            | The Administration (highest privilege) Traffic Ops user to create;                           |
+    |                                                    | use this user to login for the first time and create other users                             |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+    | Password for the admin user                        | The password for the above user                                                              |
+    +----------------------------------------------------+----------------------------------------------------------------------------------------------+
+
+
+Traffic Ops is now installed!
+
+
+**To complete the Traffic Ops Setup See:** :ref:`rl-to-default-profiles`
+
+
+Upgrading Traffic Ops
+=====================
+To upgrade:
+
+.. Note:: TODO : review for > 2.0
+
+1. Enter the following command:``service traffic_ops stop``
+2. Enter the following command:``yum upgrade traffic_ops``
+3. See :ref:`rl-to-install` to run postinstall.
+4. Enter the following command:``service traffic_ops start``
+
+
+
+
diff --git a/docs/latest/_sources/admin/traffic_ops/migration_from_10_to_20.txt b/docs/latest/_sources/admin/traffic_ops/migration_from_10_to_20.txt
new file mode 100644
index 0000000..4133fee
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/migration_from_10_to_20.txt
@@ -0,0 +1,88 @@
+.. 
+.. 
+.. 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.
+.. 
+
+.. index::
+  Traffic Ops - Migrating from Traffic Ops 1.x to Traffic Ops 2.x
+  
+.. _rl-ps:
+
+Traffic Ops - Migrating from 1.x to 2.x
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+In Traffic Ops 2.x MySQL was removed and Postgres was replaced as the database of choice for the unforeseen future.  A Docker-based migration tool was developed to
+help with that conversion using an open source Postgres tool called `pgloader <http://pgloader.io/>`_.  The following instructions will help configuring the Migration tool
+
+System Requirements
+-------------------
+The user must have the following for a successful minimal install:
+
+* CentOS 7.2+
+* Docker installed (this migration was tested against version **docker-engine-selinux-17.05.0.ce-1.el7.centos.noarch.rpm**)
+* Postgres has been installed according to :ref:`rl-to-install`
+
+Setup the traffic_ops_db directory
+----------------------------------
+
+   Modify /opt dir permission to make it writable and owned by postgres:postgres
+
+   ::
+
+   $ sudo chmod 755 /opt 
+   
+   Download the Traffic Control tarball for 2.0.0
+
+   :: 
+
+     $ cd /opt
+     $ wget https://dist.apache.org/repos/dist/release/incubator/trafficcontrol/<tarball_version>
+
+   Extract the **traffic_ops_db** dir to **/opt/traffic_ops_db**
+
+   :: 
+
+   $ tar -zxvf trafficcontrol-incubating-<version>.tar.gz --strip=1 trafficcontrol-incubating-<version>/traffic_ops_db
+   $ sudo chown -R postgres:postgres /opt/traffic_ops_db
+
+.. highlight:: none
+
+Migration Preparation
+---------------------
+Be sure there is connectivity between your MySQL server's IP address/port and your Postgres server's IP address/port.
+
+Navigating the Database Migration
+---------------------------------
+Begin the database migration after settings up the **/opt/traffic_ops_db** directory
+
+   Switch to the postgres user so permissions stay intact.
+   :: 
+
+   $ su - postgres
+   $ cd /opt/traffic_ops_db/
+
+1. Configure the **/opt/traffic_ops_db/pg-migration/mysql-to-postgres.env** migration for your source MySQL and target Postgres settings
+
+
+2. Run the migration, watch the console output for any errors (it may take some time)
+   :: 
+
+   $ ./migrate.sh
+
+
+  Your MySQL data should now be ported into your new instance of Postgres!
+
+
+
+
+
diff --git a/docs/latest/_sources/admin/traffic_ops/using.txt b/docs/latest/_sources/admin/traffic_ops/using.txt
new file mode 100644
index 0000000..0744760
--- /dev/null
+++ b/docs/latest/_sources/admin/traffic_ops/using.txt
@@ -0,0 +1,1106 @@
+..
+..
+.. 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.
+..
+
+.. |graph| image:: ../../../../traffic_ops/app/public/images/graph.png
+.. |info| image:: ../../../../traffic_ops/app/public/images/info.png
+.. |checkmark| image:: ../../../../traffic_ops/app/public/images/good.png
+.. |X| image:: ../../../../traffic_ops/app/public/images/bad.png
+.. |clock| image:: ../../../../traffic_ops/app/public/images/clock-black.png
+
+Traffic Ops - Using
+%%%%%%%%%%%%%%%%%%%
+
+
+The Traffic Ops Menu
+====================
+
+.. image:: ../12m.png
+
+The following tabs are available in the menu at the top of the Traffic Ops user interface.
+
+.. index::
+  Health Tab
+
+* **Health**
+
+  Information on the health of the system. Hover over this tab to get to the following options:
+
+  +---------------+------------------------------------------------------------------------------------------------------------------------------------+
+  |     Option    |                                                            Description                                                             |
+  +===============+====================================================================================================================================+
+  | Table View    | A real time view into the main performance indicators of the CDNs managed by Traffic Control.                                      |
+  |               | This view is sourced directly by the Traffic Monitor data and is updated every 10 seconds.                                         |
+  |               | This is the default screen of Traffic Ops.                                                                                         |
+  |               | See :ref:`rl-health-table` for details.                                                                                            |
+  +---------------+------------------------------------------------------------------------------------------------------------------------------------+
+  | Graph View    | A real graphical time view into the main performance indicators of the CDNs managed by Traffic Control.                            |
+  |               | This view is sourced by the Traffic Monitor data and is updated every 10 seconds.                                                  |
+  |               | On loading, this screen will show a history of 24 hours of data from Traffic Stats                                                 |
+  |               | See :ref:`rl-health-graph` for details.                                                                                            |
+  +---------------+------------------------------------------------------------------------------------------------------------------------------------+
+  | Server Checks | A table showing the results of the periodic check extension scripts that are run. See :ref:`rl-server-checks`                      |
+  +---------------+------------------------------------------------------------------------------------------------------------------------------------+
+  | Daily Summary | A graph displaying the daily peaks of bandwidth, overall bytes served per day, and overall bytes served since initial installation |
+  |               | per CDN.                                                                                                                           |
+  +---------------+------------------------------------------------------------------------------------------------------------------------------------+
+
+* **Delivery Services**
+
+  The main Delivery Service table. This is where you Create/Read/Update/Delete Delivery Services of all types. Hover over to get the following sub option:
+
+  +-------------+--------------------------------------+
+  |    Option   |             Description              |
+  +=============+======================================+
+  | Federations | Add/Edit/Delete Federation Mappings. |
+  +-------------+--------------------------------------+
+
+* **Servers**
+
+  The main Servers table. This is where you Create/Read/Update/Delete servers of all types.  Click the main tab to get to the main table, and hover over to get these sub options:
+
+  +-------------------+------------------------------------------------------------------------------------------+
+  |       Option      |                                       Description                                        |
+  +===================+==========================================================================================+
+  | Upload Server CSV | Bulk add of servers from a csv file. See :ref:`rl-bulkserver`                            |
+  +-------------------+------------------------------------------------------------------------------------------+
+
+* **Parameters**
+
+  Parameters and Profiles can be edited here. Hover over the tab to get the following options:
+
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  |        Option       |                                                                             Description                                                                             |
+  +=====================+=====================================================================================================================================================================+
+  | Global Profile      | The table of global parameters. See :ref:`rl-param-prof`. This is where you Create/Read/Update/Delete parameters in the Global profile                              |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | All Cache Groups    | The table of all parameters *that are assigned to a cachegroup* - this may be slow to pull up, as there can be thousands of parameters.                             |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | All Profiles        | The table of all parameters *that are assigned to a profile* - this may be slow to pull up, as there can be thousands of parameters.                                |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | Select Profile      | Select the parameter list by profile first, then get a table of just the parameters for that profile.                                                               |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | Export Profile      | Profiles can be exported from one Traffic Ops instance to another using 'Select Profile' and under the "Profile Details" dialog for the desired profile             |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | Import Profile      | Profiles can be imported from one Traffic Ops instance to another using the button "Import Profile" after using the "Export Profile" feature                        |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+  | Orphaned Parameters | A table of parameters that are not associated to any profile of cache group. These parameters either should be deleted or associated with a profile of cache group. |
+  +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+* **Tools**
+
+  Tools for working with Traffic Ops and it's servers. Hover over this tab to get the following options:
+
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  |       Option       |                                                            Description                                                            |
+  +====================+===================================================================================================================================+
+  | Generate ISO       | Generate a bootable image for any of the servers in the Servers table (or any server for that matter). See :ref:`rl-generate-iso` |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  | Queue Updates      | Send Updates to the caches. See :ref:`rl-queue-updates`                                                                           |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  | DB Dump            | Backup the Database to a .sql file.                                                                                               |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  | Snapshot CRConfig  | Send updates to the Traffic Monitor / Traffic Router servers.  See :ref:`rl-queue-updates`                                        |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  | Invalidate Content | Invalidate or purge content from all caches in the CDN. See :ref:`rl-purge`                                                       |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+  | Manage DNSSEC keys | Manage DNSSEC Keys for a chosen CDN.                                                                                              |
+  +--------------------+-----------------------------------------------------------------------------------------------------------------------------------+
+
+
+* **Misc**
+
+  Miscellaneous editing options. Hover over this tab to get the following options:
+
+  +--------------------+-------------------------------------------------------------------------------------------+
+  |       Option       |                                        Description                                        |
+  +====================+===========================================================================================+
+  | CDNs               | Create/Read/Update/Delete CDNs                                                            |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Cache Groups       | Create/Read/Update/Delete cache groups                                                    |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Users              | Create/Read/Update/Delete users                                                           |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Profiles           | Create/Read/Update/Delete profiles. See :ref:`rl-working-with-profiles`                   |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Networks(ASNs)     | Create/Read/Update/Delete Autonomous System Numbers See :ref:`rl-asn-czf`                 |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Hardware           | Get detailed hardware information (note: this should be moved to a Traffic Ops Extension) |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Data Types         | Create/Read/Update/Delete data types                                                      |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Divisions          | Create/Read/Update/Delete divisions                                                       |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Regions            | Create/Read/Update/Delete regions                                                         |
+  +--------------------+-------------------------------------------------------------------------------------------+
+  | Physical Locations | Create/Read/Update/Delete locations                                                       |
+  +--------------------+-------------------------------------------------------------------------------------------+
+
+.. index::
+  Change Log
+
+* **ChangeLog**
+
+  The Changelog table displays the changes that are being made to the Traffic Ops database through the Traffic Ops user interface. This tab will show the number of changes since you last visited this tab in (brackets) since the last time you visited this tab. There are currently no sub menus for this tab.
+
+
+* **Help**
+
+  Help for Traffic Ops and Traffic Control. Hover over this tab to get the following options:
+
+  +---------------+---------------------------------------------------------------------+
+  |     Option    |                             Description                             |
+  +===============+=====================================================================+
+  | About         | Traffic Ops information, such as version, database information, etc |
+  +---------------+---------------------------------------------------------------------+
+  | Release Notes | Release notes for the most recent releases of Traffic Ops           |
+  +---------------+---------------------------------------------------------------------+
+  | Logout        | Logout from Traffic Ops                                             |
+  +---------------+---------------------------------------------------------------------+
+
+
+.. index::
+  Edge Health
+  Health
+
+Health
+======
+
+.. _rl-health-table:
+
+The Health Table
+++++++++++++++++
+The Health table is the default landing screen for Traffic Ops, it displays the status of the EDGE caches in a table form directly from Traffic Monitor (bypassing Traffic Stats), sorted by Mbps Out. The columns in this table are:
+
+
+* **Profile**: the Profile of this server or ALL, meaning this row shows data for multiple servers, and the row shows the sum of all values.
+* **Host Name**: the host name of the server or ALL, meaning this row shows data for multiple servers, and the row shows the sum of all values.
+* **Edge Cache Group**: the edge cache group short name or ALL, meaning this row shows data for multiple servers, and the row shows the sum of all values.
+* **Healthy**: indicates if this cache is healthy according to the Health Protocol. A row with ALL in any of the columns will always show a |checkmark|, this column is valid only for individual EDGE caches.
+* **Admin**: shows the administrative status of the server.
+* **Connections**: the number of connections this cache (or group of caches) has open (``ats.proxy.process.http.current_client_connections`` from ATS).
+* **Mbps Out**: the bandwidth being served out if this cache (or group of caches)
+
+Since the top line has ALL, ALL, ALL, it shows the total connections and bandwidth for all caches managed by this instance of Traffic Ops.
+
+.. _rl-health-graph:
+
+Graph View
+++++++++++
+The Graph View shows a live view of the last 24 hours of bits per seconds served and open connections at the edge in a graph. This data is sourced from Traffic Stats. If there are 2 CDNs configured, this view will show the statistis for both, and the graphs are stacked. On the left-hand side, the totals and immediate values as well as the percentage of total possible capacity are displayed. This view is update every 10 seconds.
+
+
+.. _rl-server-checks:
+
+Server Checks
++++++++++++++
+The server checks page is inteded to give an overview of the Servers managed by Traffic Control as well as their status. This data comes from `Traffic Ops extensions <traffic_ops_extensions.html>`_.
+
++------+-----------------------------------------------------------------------+
+| Name |                 Description                                           |
++======+=======================================================================+
+| ILO  | Ping the iLO interface for EDGE or MID servers                        |
++------+-----------------------------------------------------------------------+
+| 10G  | Ping the IPv4 address of the EDGE or MID servers                      |
++------+-----------------------------------------------------------------------+
+| 10G6 | Ping the IPv6 address of the EDGE or MID servers                      |
++------+-----------------------------------------------------------------------+
+| MTU  | Ping the EDGE or MID using the configured MTU from Traffic Ops        |
++------+-----------------------------------------------------------------------+
+| FQDN | DNS check that matches what the DNS servers responds with compared to |
+|      | what Traffic Ops has.                                                 |
++------+-----------------------------------------------------------------------+
+| DSCP | Checks the DSCP value of packets from the edge server to the Traffic  |
+|      | Ops server.                                                           |
++------+-----------------------------------------------------------------------+
+| RTR  | Content Router checks. Checks the health of the Content Routers.      |
+|      | Checks the health of the caches using the Content Routers.            |
++------+-----------------------------------------------------------------------+
+| CHR  | Cache Hit Ratio in percent.                                           |
++------+-----------------------------------------------------------------------+
+| CDU  | Total Cache Disk Usage in percent.                                    |
++------+-----------------------------------------------------------------------+
+| ORT  | Operational Readiness Test. Uses the ORT script on the edge and mid   |
+|      | servers to determine if the configuration in Traffic Ops matches the  |
+|      | configuration on the edge or mid. The user that this script runs as   |
+|      | must have an ssh key on the edge servers.                             |
++------+-----------------------------------------------------------------------+
+
+Daily Summary
++++++++++++++
+Displays daily max gbps and bytes served for all CDNs.  In order for the graphs to appear, the 'daily_bw_url' and 'daily_served_url' parameters need to be be created, assigned to the global profile, and have a value of a grafana graph.  For more information on configuring grafana, see the `Traffic Stats <traffic_stats.html>`_  section.
+
+.. _rl-server:
+
+Server
+======
+This view shows a table of all the servers in Traffic Ops. The table columns show the most important details of the server. The **IPAddrr** column is clickable to launch an ``ssh://`` link to this server. The |graph| icon will link to a Traffic Stats graph of this server for caches, and the |info| will link to the server status pages for other server types.
+
+
+Server Types
+++++++++++++
+These are the types of servers that can be managed in Traffic Ops:
+
++---------------+---------------------------------------------+
+|      Name     |                 Description                 |
++===============+=============================================+
+| EDGE          | Edge Cache                                  |
++---------------+---------------------------------------------+
+| MID           | Mid Tier Cache                              |
++---------------+---------------------------------------------+
+| ORG           | Origin                                      |
++---------------+---------------------------------------------+
+| CCR           | Traffic Router                              |
++---------------+---------------------------------------------+
+| RASCAL        | Rascal health polling & reporting           |
++---------------+---------------------------------------------+
+| TOOLS_SERVER  | Ops hosts for managment                     |
++---------------+---------------------------------------------+
+| RIAK          | Riak keystore                               |
++---------------+---------------------------------------------+
+| SPLUNK        | SPLUNK indexer search head etc              |
++---------------+---------------------------------------------+
+| TRAFFIC_STATS | traffic_stats server                        |
++---------------+---------------------------------------------+
+| INFLUXDB      | influxDb server                             |
++---------------+---------------------------------------------+
+
+
+.. index::
+  Bulk Upload Server
+
+.. _rl-bulkserver:
+
+Bulk Upload Server
+++++++++++++++++++
+TBD
+
+
+Delivery Service
+================
+The fields in the Delivery Service view are:
+
+.. Sorry for the width of this table, don't know how to make the bullet lists work otherwise. Just set your monitor to 2560*1600, and put on your glasses.
+
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|                       Name                       |                                                                                                     Description                                                                                                     |
++==================================================+=====================================================================================================================================================================================================================+
+| XML ID                                           | A unique string that identifies this delivery service.                                                                                                                                                              |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Content Routing Type                             | The type of content routing this delivery service will use. See :ref:`rl-ds-types`.                                                                                                                                 |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Protocol                                         | The protocol to serve this delivery service to the clients with:                                                                                                                                                    |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | -  0 http                                                                                                                                                                                                           |
+|                                                  | -  1 https                                                                                                                                                                                                          |
+|                                                  | -  2 both http and https                                                                                                                                                                                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DSCP Tag                                         | The DSCP value to mark IP packets to the client with.                                                                                                                                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Signed URLs                                      | Use Signed URLs? See :ref:`rl-signed-urls`.                                                                                                                                                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Query String Handling                            | How to treat query strings:                                                                                                                                                                                         |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | - 0 use in cache key and hand up to origin -this means each unique query string Is treated as a unique URL.                                                                                                         |
+|                                                  | - 1 Do not use in cache key, but pass up to origin - this means a 2 URLs that are the same except for the query string will match, and cache HIT, while the origin still sees original query string in the request. |
+|                                                  | - 2 Drop at edge - this means a 2 URLs that are the same except for  the query string will match, and cache HIT, while the origin will not see original query string in the request.                                |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | **Note:** Choosing to drop query strings at the edge will preclude the use of a Regex Remap Expression. See :ref:`rl-regex-remap`.                                                                                  |
+|                                                  | To set the qstring without the use of regex remap, or for further options, see :ref:`rl-qstring-handling`.                                                                                                          |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Geo Limit?                                       | Some services are intended to be limited by geography. The possible settings are are:                                                                                                                               |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | - None - Do not limit by geography.                                                                                                                                                                                 |
+|                                                  | - CZF only - If the requesting IP is not in the Coverage Zone File, do not serve the request.                                                                                                                       |
+|                                                  | - CZF + US - If the requesting IP is not in the Coverage Zone File or not in the United States, do not serve the request.                                                                                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Geo Limit Redirect URL                           | (for HTTP routed delivery services only) This is the URL Traffic Router will redirect to when Geo Limit Failure. See :ref:`rl-tr-ngb`                                                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Bypass FQDN                                      | (for HTTP routed delivery services only) This is the FQDN Traffic Router will redirect to (with the same path) when the max Bps or Max Tps for this deliveryservice are exceeded.                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Bypass Ipv4                                      | (For DNS routed delivery services only) This is the address to respond to A requests with when the the max Bps or Max Tps for this delivery service are exceeded.                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Bypass IPv6                                      | (For DNS routed delivery services only) This is the address to respond to AAAA requests with when the the max Bps or Max Tps for this delivery service are exceeded.                                                |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| IPv6 Routing Enabled?                            | When set to yes, the Traffic Router will respond to AAAA DNS requests for the tr. and edge. names of this delivery service. Otherwise, only A records will be served.                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Range Request Handling                           | (experimental)  How to treat range requests:                                                                                                                                                                        |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT)                                                                                                     |
+|                                                  | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/background_fetch.en.html>`_ plugin.                                                                              |
+|                                                  | - 2 Use the cache_range_requests plugin.                                                                                                                                                                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Delivery Service DNS TTL                         | The Time To Live on the DNS record for the Traffic Router A and AAAA records (``tr.<deliveryservice>.<cdn-domain>``) for a HTTP delivery service *or* for the A and                                                 |
+|                                                  | AAAA records of the edge name (``edge.<deliveryservice>.<cdn-domain>``).                                                                                                                                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Origin Server Base URL                           | The Origin Server's base URL. This includes the protocol (http or https). Example: ``http://movies.origin.com``                                                                                                     |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Use Multi Site Origin Feature                    | Enable the Multi Site Origin feature for this delivery service. See :ref:`rl-multi-site-origin`                                                                                                                     |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Profile                                          | The profile for this delivery service.                                                                                                                                                                              |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Maximum Bits per Second allowed globally         | The maximum bits per second this delivery service can serve across all EDGE caches before traffic will be diverted to the bypass destination. For a DNS delivery service, the Bypass Ipv4 or Ipv6  will be used     |
+|                                                  | (depending on whether this was a A or AAAA request), and for HTTP delivery services the Bypass FQDN will be used.                                                                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Maximum Transactions per Second allowed globally | The maximum transactions per se this delivery service can serve across all EDGE caches before traffic will be diverted to the bypass destination. For a DNS delivery service, the Bypass Ipv4 or Ipv6  will be used |
+|                                                  | (depending on whether this was a A or AAAA request), and for HTTP delivery services the Bypass FQDN will be used.                                                                                                   |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Geo Miss Default Latitude                        | Default Latitude for this delivery service. When client localization fails for both Coverage Zone and Geo Lookup, this the client will be routed as if it was at this lat.                                          |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Geo Miss Default Longitude                       | Default Longitude for this delivery service. When client localization fails for bot Coverage Zone and Geo Lookup, this the client will be routed as if it was at this long.                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Edge Header Rewrite Rules                        | Header Rewrite rules to apply for this delivery service at the EDGE tier. See :ref:`rl-header-rewrite`. [1]_                                                                                                        |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Mid Header Rewrite Rules                         | Header Rewrite rules to apply for this delivery service at the MID tier. See :ref:`rl-header-rewrite`. [1]_                                                                                                         |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Regex Remap Expression                           | Regex Remap rule to apply to this delivery service at the Edge tier. See `ATS documentation on regex_remap <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/regex_remap.en.html>`_. [1]_        |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | **Note:** you will not be able to save a Regex Remap Expression if you have Query String Handling set to drop query strings at the edge. See :ref:`rl-regex-remap`.                                                 |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Cache URL expression                             | Cache URL rule to apply to this delivery service. See `ATS documentation on cacheurl <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/cacheurl.en.html>`_. [1]_                                 |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Raw remap text                                   | For HTTP and DNS deliveryservices, this will get added to the end of the remap line on the cache verbatim. For ANY_MAP deliveryservices this is the remap line. [1]_                                                |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Long Description                                 | Long description for this delivery service. To be consumed from the APIs by downstream tools (Portal).                                                                                                              |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Customer                                         | Customer description for this delivery service. To be consumed from the APIs by downstream tools (Portal).                                                                                                          |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Service                                          | Service description for this delivery service. To be consumed from the APIs by downstream tools (Portal).                                                                                                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Info URL                                         | Info URL  for this delivery service. To be consumed from the APIs by downstream tools (Portal).                                                                                                                     |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Check Path                                       | A path (ex: /crossdomain.xml) to verify the connection to the origin server with. This can be used by Check Extension scripts to do periodic health checks against the delivery service.                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Origin Shield (Pipe Delimited String)            | Experimental. Origin Shield string.                                                                                                                                                                                 |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Active                                           | When this is set to no Traffic Router will not serve DNS or HTTP responses for this delivery service.                                                                                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Last Updated                                     | (Read Only) The last time this delivery service was updated.                                                                                                                                                        |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Number of edges assigned                         | (Read Only - change by clicking the **Server Assignments** button at the bottom) The number of EDGE caches assigned to this delivery service. See :ref:`rl-assign-edges`.                                           |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Number of static DNS entries                     | (Read Only - change by clicking the **Static DNS** button at the bottom) The number of static DNS entries for this delivery service. See :ref:`rl-static-dns`.                                                      |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Example delivery URL                             | (Read Only) An example of how the delivery URL may start. This could be multiple rows if multiple HOST_REGEXP entries have been entered.                                                                            |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| Regular expressions for this delivery service    | A subtable of the regular expressions to use when routing traffic for this delivery service. See :ref:`rl-ds-regexp`.                                                                                               |
++--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. [1] These fields are not validated by Traffic Ops to be correct syntactically, and can cause Traffic Server to not start if invalid. Please use with caution.
+
+
+.. index::
+  Delivery Service Type
+
+.. _rl-ds-types:
+
+Delivery Service Types
+++++++++++++++++++++++
+One of the most important settings when creating the delivery service is the selection of the delivery service *type*. This type determines the routing method and the primary storage for the delivery service.
+
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|       Name      |                                                                                                                                                         Description                                                                                                                                                          |
++=================+==============================================================================================================================================================================================================================================================================================================================+
+| HTTP            | HTTP Content Routing  - The Traffic Router DNS auth server returns its own IP address on DNS queries, and the client gets redirected to a specific cache                                                                                                                                                                     |
+|                 | in the nearest cache group using HTTP 302.  Use this for long sessions like HLS/HDS/Smooth live streaming, where a longer setup time is not a.                                                                                                                                                                               |
+|                 | problem.                                                                                                                                                                                                                                                                                                                     |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DNS             | DNS Content Routing - The Traffic Router DNS auth server returns an edge cache IP address to the client right away. The client will find the cache quickly                                                                                                                                                                   |
+|                 | but the Traffic Router can not route to a cache that already has this content in the cache group. Use this for smaller objects like web page images / objects.                                                                                                                                                               |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| HTTP_NO_CACHE   | HTTP Content Routing, but the caches will not actually cache the content, they act as just proxies. The MID tier is bypassed.                                                                                                                                                                                                |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| HTTP_LIVE       | HTTP Content routing, but where for "standard" HTTP content routing the objects are stored on disk, for this delivery service type the objects are stored                                                                                                                                                                    |
+|                 | on the RAM disks. Use this for linear TV. The MID tier is bypassed for this type.                                                                                                                                                                                                                                            |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| HTTP_LIVE_NATNL | HTTP Content routing, same as HTTP_LIVE, but the MID tier is NOT bypassed.                                                                                                                                                                                                                                                   |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DNS_LIVE_NATNL  | DNS Content routing, but where for "standard" DNS content routing the objects are stored on disk, for this delivery service type the objects are stored                                                                                                                                                                      |
+|                 | on the RAM disks. Use this for linear TV. The MID tier is NOT bypassed for this type.                                                                                                                                                                                                                                        |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DNS_LIVE        | DNS Content routing, same as DNS_LIVE_NATNL, but the MID tier is bypassed.                                                                                                                                                                                                                                                   |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| ANY_MAP         | ANY_MAP is not known to Traffic Router. For this deliveryservice, the "Raw remap text" field in the input form will be used as the remap line on the cache.                                                                                                                                                                  |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| STEERING        | The Delivery Service will be used to route to other delivery services.  The target delivery services Traffic Router and the routing weights for those delivery services will be defined by an admin or steering user.  For more information see the `steering feature <traffic_router.html#steering-feature>`_ documentation |
++-----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+.. Note:: Once created, the Traffic Ops user interface does not allow you to change the delivery service type; the drop down is greyed out. There are many things that can go wrong when changing the type, and it is safer to delete the delivery service, and recreate it.
+
+Federations
++++++++++++
+  Federations allow for other (federated) CDNs (at a different ISP, MSO, etc) to add a list of resolvers and a CNAME to a delivery service Traffic Ops.  When a request is made from one of federated CDN's clients, Traffic Router will return the CNAME configured in the federation mapping.  This allows the federated CDN to serve the content without the content provider changing the URL, or having to manage multiple URLs.
+
+  Before adding a federation in the Traffic Ops UI, a user with the federations role needs to be created.  This user will be assigned to the federation and will be able to add resolvers to the federation via the Traffic Ops `Federation API <../development/traffic_ops_api/v12/federation.html>`_.
+
+.. index::
+  Header Rewrite
+
+.. _rl-header-rewrite:
+
+Header Rewrite Options and DSCP
++++++++++++++++++++++++++++++++
+Most header manipulation and per-delivery service configuration overrides are done using the `ATS Header Rewrite Plugin <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/header_rewrite.en.html>`_. Traffic Control allows you to enter header rewrite rules to be applied at the edge and at the mid level. The syntax used in Traffic Ops is the same as the one described in the ATS documentation, except for some special strings that will get replaced:
+
++-------------------+--------------------------+
+| Traffic Ops Entry |    Gets Replaced with    |
++===================+==========================+
+| __RETURN__        | A newline                |
++-------------------+--------------------------+
+| __CACHE_IPV4__    | The cache's IPv4 address |
++-------------------+--------------------------+
+
+The deliveryservice screen also allows you to set the DSCP value of traffic sent to the client. This setting also results in a header_rewrite rule to be generated and applied to at the edge.
+
+.. Note:: The DSCP setting in the UI is *only* for setting traffic towards the client, and gets applied *after* the initial TCP handshake is complete, and the HTTP request is received (before that the cache can't determine what deliveryservice this request is for, and what DSCP to apply), so the DSCP feature can not be used for security settings - the TCP SYN-ACK is not going to be DSCP marked.
+
+
+.. index::
+  Token Based Authentication
+  Signed URLs
+
+.. _rl-signed-urls:
+
+Token Based Authentication
+++++++++++++++++++++++++++
+Token based authentication or *signed URLs* is implemented using the Traffic Server ``url_sig`` plugin. To sign a URL at the signing portal take the full URL, without any query string, and add on a query string with the following parameters:
+
+Client IP address
+        The client IP address that this signature is valid for.
+
+        ``C=<client IP address>``
+
+Expiration
+        The Expiration time (seconds since epoch) of this signature.
+
+        ``E=<expiration time in secs since unix epoch>``
+
+Algorithm
+        The Algorithm used to create the signature. Only 1 (HMAC_SHA1)
+        and 2 (HMAC_MD5) are supported at this time
+
+        ``A=<algorithm number>``
+
+Key index
+        Index of the key used. This is the index of the key in the
+        configuration file on the cache. The set of keys is a shared
+        secret between the signing portal and the edge caches. There
+        is one set of keys per reverse proxy domain (fqdn).
+
+        ``K=<key index used>``
+Parts
+        Parts to use for the signature, always excluding the scheme
+        (http://).  parts0 = fqdn, parts1..x is the directory parts
+        of the path, if there are more parts to the path than letters
+        in the parts param, the last one is repeated for those.
+        Examples:
+
+                1: use fqdn and all of URl path
+                0110: use part1 and part 2 of path only
+                01: use everything except the fqdn
+
+        ``P=<parts string (0's and 1's)>``
+
+Signature
+        The signature over the parts + the query string up to and
+        including "S=".
+
+        ``S=<signature>``
+
+.. seealso:: The url_sig `README <https://github.com/apache/trafficserver/blob/master/plugins/experimental/url_sig/README>`_.
+
+Generate URL Sig Keys
+^^^^^^^^^^^^^^^^^^^^^
+To generate a set of random signed url keys for this delivery service and store them in Traffic Vault, click the **Generate URL Sig Keys** button at the bottom of the delivery service details screen.
+
+
+.. rl-parent-selection:
+
+Parent Selection
+++++++++++++++++
+
+Parameters in the Edge (child) profile that influence this feature:
+
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+|                      Name                     |    Filename    |    Default    |                      Description                      |
++===============================================+================+===============+=======================================================+
+| CONFIG proxy.config.                          | records.config | INT 1         | enable parent selection.  This is a required setting. |
+| http.parent_proxy_routing_enable              |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 1         | required for parent selection.                        |
+| url_remap.remap_required                      |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 0         | See                                                   |
+| http.no_dns_just_forward_to_parent            |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 1         |                                                       |
+| http.uncacheable_requests_bypass_parent       |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 1         |                                                       |
+| http.parent_proxy_routing_enable              |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 300       |                                                       |
+| http.parent_proxy.retry_time                  |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 10        |                                                       |
+| http.parent_proxy.fail_threshold              |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 4         |                                                       |
+| http.parent_proxy.total_connect_attempts      |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 2         |                                                       |
+| http.parent_proxy.per_parent_connect_attempts |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 30        |                                                       |
+| http.parent_proxy.connect_attempts_timeout    |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 0         |                                                       |
+| http.forward.proxy_auth_to_parent             |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 0         |                                                       |
+| http.parent_proxy_routing_enable              |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | STRING        |                                                       |
+| http.parent_proxy.file                        |                | parent.config |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| CONFIG proxy.config.                          | records.config | INT 3         |                                                       |
+| http.parent_proxy.connect_attempts_timeout    |                |               |                                                       |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+| algorithm                                     | parent.config  | urlhash       | The algorithm to use.                                 |
++-----------------------------------------------+----------------+---------------+-------------------------------------------------------+
+
+
+Parameters in the Mid (parent) profile that influence this feature:
+
++----------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|      Name      |    Filename   | Default |                                                                                    Description                                                                                    |
++================+===============+=========+===================================================================================================================================================================================+
+| domain_name    | CRConfig.json | -       | Only parents with the same value as the edge are going to be used as parents (to keep separation between CDNs)                                                                    |
++----------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| weight         | parent.config | 1.0     | The weight of this parent, translates to the number of replicas in the consistent hash ring. This parameter only has effect with algorithm at the client set to "consistent_hash" |
++----------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| port           | parent.config | 80      | The port this parent is listening on as a forward proxy.                                                                                                                          |
++----------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| use_ip_address | parent.config | 0       | 1 means use IP(v4) address of this parent in the parent.config, 0 means use the host_name.domain_name concatenation.                                                              |
++----------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. _rl-qstring-handling:
+
+Qstring Handling
+++++++++++++++++
+
+Delivery services have a Query String Handling option that, when set to ignore, will automatically add a regex remap to that delivery service's config.  There may be times this is not preferred, or there may be requirements for one delivery service or server(s) to behave differently.  When this is required, the psel.qstring_handling parameter can be set in either the delivery service profile or the server profile, but it is important to note that the server profile will override ALL delivery services assigned to servers with this profile parameter.  If the parameter is not set for the server profile but is present for the Delivery Service profile, this will override the setting in the delivery service.  A value of "ignore" will not result in the addition of regex remap configuration.
+
++-----------------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|      Name             |    Filename   | Default |                                                                                    Description                                                                                    |
++=======================+===============+=========+===================================================================================================================================================================================+
+| psel.qstring_handling | parent.config | -       | Sets qstring handling without the use of regex remap for a delivery service when assigned to a delivery service profile, and overrides qstring handling for all delivery services |
+|                       |               |         | for associated servers when assigned to a server profile. Value must be "consider" or "ignore".                                                                                   |
++-----------------------+---------------+---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. _rl-multi-site-origin:
+
+Multi Site Origin
++++++++++++++++++
+
+.. Note:: The configuration of this feature changed significantly between ATS version 5 and >= 6. Some configuration in Traffic Control is different as well. This documentation assumes ATS 6 or higher. See :ref:`rl-multi-site-origin-qht-ats5` for the ATS version 5.x configuration details.
+
+Normally, the mid servers are not aware of any redundancy at the origin layer. With Multi Site Origin enabled this changes - Traffic Server (and Traffic Ops) are now made aware of the fact there are multiple origins, and can be configured to do more advanced failover and loadbalancing actions. A prerequisite for MSO to work is that the multiple origin sites serve identical content with identical paths, and both are configured to serve the same origin hostname as is configured in the deliveryservice `Origin Server Base URL` field. See the `Apache Traffic Server docs <https://docs.trafficserver.apache.org/en/latest/admin-guide/files/parent.config.en.html>`_ for more information on that cache's implementation.
+
+With This feature enabled, origin servers (or origin server VIP names for a site) are going to be entered as servers in to the Traiffic Ops UI. Server type is "ORG".
+
+Parameters in the mid profile that influence this feature:
+
++--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
+|                                   Name                                   |    Filename    |  Default   |                                            Description                                             |
++==========================================================================+================+============+====================================================================================================+
+| CONFIG proxy.config. http.parent_proxy_routing_enable                    | records.config | INT 1      | enable parent selection.  This is a required setting.                                              |
++--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
+| CONFIG proxy.config. url_remap.remap_required                            | records.config | INT 1      | required for parent selection.                                                                     |
++--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
+
+
+Parameters in the deliveryservice profile that influence this feature:
+
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+|                                   Name      |    Filename    |  Default        |                                                                         Description                                             |
++=============================================+================+=================+=================================================================================================================================+
+| mso.parent_retry                            | parent.config  | \-              | Either ``simple_retry``, ``dead_server_retry`` or ``both``.                                                                     |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.algorithm                               | parent.config  | consistent_hash | The algorithm to use. ``consisten_hash``, ``strict``, ``true``, ``false``, or ``latched``.                                      |
+|                                             |                |                 |                                                                                                                                 |
+|                                             |                |                 | - ``consisten_hash`` - spreads requests across multiple parents simultaneously based on hash of content URL.                    |
+|                                             |                |                 | - ``strict`` - strict Round Robin spreads requests across multiple parents simultaneously based on order of requests.           |
+|                                             |                |                 | - ``true`` - same as strict, but ensures that requests from the same IP always go to the same parent if available.              |
+|                                             |                |                 | - ``false`` - uses only a single parent at any given time and switches to a new parent only if the current parent fails.        |
+|                                             |                |                 | - ``latched`` - same as false, but now, a failed parent will not be retried.                                                    |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.unavailable_server_retry_response_codes | parent.config  | "503"           | Quoted, comma separated list of HTTP status codes that count as a unavailable_server_retry_response_code.                       |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.max_unavailable_server_retries          | parent.config  | 1               | How many times an unavailable server will be retried.                                                                           |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.simple_retry_response_codes             | parent.config  | "404"           | Quoted, comma separated list of HTTP status codes that count as a simple retry response code.                                   |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.max_simple_retries                      | parent.config  | 1               | How many times a simple retry will be done.                                                                                     |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+
+
+see :ref:`rl-multi-site-origin-qht` for a *quick how to* on this feature.
+
+.. _rl-ccr-profile:
+
+Traffic Router Profile
+++++++++++++++++++++++
+
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+|                   Name                  |      Config_file       |                                                                                                Description                                                                                                |
++=========================================+========================+===========================================================================================================================================================================================================+
+| location                                | dns.zone               | Location to store the DNS zone files in the local file system of Traffic Router.                                                                                                                          |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| location                                | http-log4j.properties  | Location to find the log4j.properties file for Traffic Router.                                                                                                                                            |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| location                                | dns-log4j.properties   | Location to find the dns-log4j.properties file for Traffic Router.                                                                                                                                        |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| location                                | geolocation.properties | Location to find the log4j.properties file for Traffic Router.                                                                                                                                            |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| CDN_name                                | rascal-config.txt      | The human readable name of the CDN for this profile.                                                                                                                                                      |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| CoverageZoneJsonURL                     | CRConfig.xml           | The location (URL) to retrieve the coverage zone map file in JSON format from.                                                                                                                            |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| geolocation.polling.url                 | CRConfig.json          | The location (URL) to retrieve the geo database file from.                                                                                                                                                |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| geolocation.polling.interval            | CRConfig.json          | How often to refresh the coverage geo location database  in ms                                                                                                                                            |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| coveragezone.polling.interval           | CRConfig.json          | How often to refresh the coverage zone map in ms                                                                                                                                                          |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| coveragezone.polling.url                | CRConfig.json          | The location (URL) to retrieve the coverage zone map file in XML format from.                                                                                                                             |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.soa.expire                          | CRConfig.json          | The value for the expire field the Traffic Router DNS Server will respond with on Start of Authority (SOA) records.                                                                                       |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.soa.minimum                         | CRConfig.json          | The value for the minimum field the Traffic Router DNS Server will respond with on SOA records.                                                                                                           |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.soa.admin                           | CRConfig.json          | The DNS Start of Authority admin.  Should be a valid support email address for support if DNS is not working correctly.                                                                                   |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.soa.retry                           | CRConfig.json          | The value for the retry field the Traffic Router DNS Server will respond with on SOA records.                                                                                                             |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.soa.refresh                         | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on A records.                                                                                                                                     |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.NS                             | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on NS records.                                                                                                                                    |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.SOA                            | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on SOA records.                                                                                                                                   |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.AAAA                           | CRConfig.json          | The Time To Live (TTL) the Traffic Router DNS Server will respond with on AAAA records.                                                                                                                   |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.A                              | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on A records.                                                                                                                                     |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.DNSKEY                         | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on DNSKEY records.                                                                                                                                |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| tld.ttls.DS                             | CRConfig.json          | The TTL the Traffic Router DNS Server will respond with on DS records.                                                                                                                                    |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| api.port                                | server.xml             | The TCP port Traffic Router listens on for API (REST) access.                                                                                                                                             |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| api.cache-control.max-age               | CRConfig.json          | The value of the ``Cache-Control: max-age=`` header in the API responses of Traffic Router.                                                                                                               |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| api.auth.url                            | CRConfig.json          | The API authentication URL (https://${tmHostname}/api/1.1/user/login); ${tmHostname} is a search and replace token used by Traffic Router to construct the correct URL)                                   |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| consistent.dns.routing                  | CRConfig.json          | Control whether DNS Delivery Services use consistent hashing on the edge FQDN to select caches for answers. May improve performance if set to true; defaults to false                                     |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dnssec.enabled                          | CRConfig.json          | Whether DNSSEC is enabled; this parameter is updated via the DNSSEC administration user interface.                                                                                                        |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dnssec.allow.expired.keys               | CRConfig.json          | Allow Traffic Router to use expired DNSSEC keys to sign zones; default is true. This helps prevent DNSSEC related outages due to failed Traffic Control components or connectivity issues.                |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dynamic.cache.primer.enabled            | CRConfig.json          | Allow Traffic Router to attempt to prime the dynamic zone cache; defaults to true                                                                                                                         |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| dynamic.cache.primer.limit              | CRConfig.json          | Limit the number of permutations to prime when dynamic zone cache priming is enabled; defaults to 500                                                                                                     |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| keystore.maintenance.interval           | CRConfig.json          | The interval in seconds which Traffic Router will check the keystore API for new DNSSEC keys                                                                                                              |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| keystore.api.url                        | CRConfig.json          | The keystore API URL (https://${tmHostname}/api/1.1/cdns/name/${cdnName}/dnsseckeys.json; ${tmHostname} and ${cdnName} are search and replace tokens used by Traffic Router to construct the correct URL) |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| keystore.fetch.timeout                  | CRConfig.json          | The timeout in milliseconds for requests to the keystore API                                                                                                                                              |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| keystore.fetch.retries                  | CRConfig.json          | The number of times Traffic Router will attempt to load keys before giving up; defaults to 5                                                                                                              |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| keystore.fetch.wait                     | CRConfig.json          | The number of milliseconds Traffic Router will wait before a retry                                                                                                                                        |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| signaturemanager.expiration.multiplier  | CRConfig.json          | Multiplier used in conjunction with a zone's maximum TTL to calculate DNSSEC signature durations; defaults to 5                                                                                           |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| zonemanager.threadpool.scale            | CRConfig.json          | Multiplier used to determine the number of cores to use for zone signing operations; defaults to 0.75                                                                                                     |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| zonemanager.cache.maintenance.interval  | CRConfig.json          | The interval in seconds which Traffic Router will check for zones that need to be resigned or if dynamic zones need to be expired from cache                                                              |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| zonemanager.dynamic.response.expiration | CRConfig.json          | A string (e.g.: 300s) that defines how long a dynamic zone                                                                                                                                                |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DNSKEY.generation.multiplier            | CRConfig.json          | Used to deteremine when new keys need to be regenerated. Keys are regenerated if expiration is less than the generation multiplier * the TTL.  If the parameter does not exist, the default is 10.        |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| DNSKEY.effective.multiplier             | CRConfig.json          | Used when creating an effective date for a new key set.  New keys are generated with an effective date of old key expiration - (effective multiplier * TTL).  Default is 2.                               |
++-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+
+.. index::
+  Regex Remap Expression
+
+.. _rl-regex-remap:
+
+Regex Remap Expression
+++++++++++++++++++++++
+The regex remap expression allows to to use a regex and resulting match group(s) in order to modify the request URIs that are sent to origin. For example: ::
+
+  ^/original/(.*) http://origin.example.com/remapped/$1
+
+.. Note:: If **Query String Handling** is set to ``2 Drop at edge``, then you will not be allowed to save a regex remap expression, as dropping query strings actually relies on a regex remap of its own. However, if there is a need to both drop query strings **and** remap request URIs, this can be accomplished by setting **Query String Handling** to ``1 Do not use in cache key, but pass up to origin``, and then using a custom regex remap expression to do the necessary remapping, while simultaneously dropping query strings. The following example will capture the original request URI up to, but not including, the query string and then forward to a remapped URI: ::
+
+  ^/([^?]*).* http://origin.example.com/remapped/$1
+
+..   index::
+  HOST_REGEXP
+  PATH_REGEXP
+  HEADER_REGEXP
+  Delivery Service regexp
+
+.. _rl-ds-regexp:
+
+Delivery Service Regexp
++++++++++++++++++++++++
+This table defines how requests are matched to the delivery service. There are 3 type of entries possible here:
+
++---------------+----------------------------------------------------------------------+--------------+-----------+
+|      Name     |                             Description                              |   DS Type    |   Status  |
++===============+======================================================================+==============+===========+
+| HOST_REGEXP   | This is the regular expresion to match the host part of the URL.     | DNS and HTTP | Supported |
++---------------+----------------------------------------------------------------------+--------------+-----------+
+| PATH_REGEXP   | This is the regular expresion to match the path part of the URL.     | HTTP         | Beta      |
++---------------+----------------------------------------------------------------------+--------------+-----------+
+| HEADER_REGEXP | This is the regular expresion to match on any header in the request. | HTTP         | Beta      |
++---------------+----------------------------------------------------------------------+--------------+-----------+
+
+The **Order** entry defines the order in which the regular expressions get evaluated. To support ``CNAMES`` from domains outside of the Traffic Control top level DNS domain, enter multiple ``HOST_REGEXP`` lines.
+
+Example:
+  Example foo.
+
+.. Note:: In most cases is is sufficient to have just one entry in this table that has a ``HOST_REGEXP`` Type, and Order ``0``. For the *movies* delivery service in the Kabletown CDN, the entry is simply single ``HOST_REGEXP`` set to ``.*\.movies\..*``. This will match every url that has a hostname that ends with ``movies.cdn1.kabletown.net``, since ``cdn1.kabletown.net`` is the Kabletown CDN's DNS domain.
+
+.. index::
+  Static DNS Entries
+
+.. _rl-static-dns:
+
+Static DNS Entries
+++++++++++++++++++
+Static DNS entries allow you to create other names *under* the delivery service domain. You can enter any valid hostname, and create a CNAME, A or AAAA record for it by clicking the **Static DNS** button at the bottom of the delivery service details screen.
+
+.. index::
+  Server Assignments
+
+.. _rl-assign-edges:
+
+Server Assignments
+++++++++++++++++++
+Click the **Server Assignments** button at the bottom of the screen to assign servers to this delivery service.  Servers can be selected by drilling down in a tree, starting at the profile, then the cache group, and then the individual servers. Traffic Router will only route traffic for this delivery service to servers that are assigned to it.
+
+
+.. _rl-asn-czf:
+
+The Coverage Zone File and ASN Table
+++++++++++++++++++++++++++++++++++++
+The Coverage Zone File (CZF) should contain a cachegroup name to network prefix mapping in the form: ::
+
+  {
+    "coverageZones": {
+      "cache-group-01": {
+        "network6": [
+          "1234:5678::\/64",
+          "1234:5679::\/64"
+        ],
+        "network": [
+          "192.168.8.0\/24",
+          "192.168.9.0\/24"
+        ]
+      }
+      "cache-group-02": {
+        "network6": [
+          "1234:567a::\/64",
+          "1234:567b::\/64"
+        ],
+        "network": [
+          "192.168.4.0\/24",
+          "192.168.5.0\/24"
+        ]
+      }
+    }
+  }
+
+The CZF is an input to the Traffic Control CDN, and as such does not get generated by Traffic Ops, but rather, it gets consumed by Traffic Router. Some popular IP management systems output a very similar file to the CZF but in stead of a cachegroup an ASN will be listed. Traffic Ops has the "Networks (ASNs)" view to aid with the conversion of files like that to a Traffic Control CZF file; this table is not used anywhere in Traffic Ops, but can be used to script the conversion using the API.
+
+The script that generates the CZF file is not part of Traffic Control, since it is different for each situation.
+
+.. _rl-working-with-profiles:
+
+Parameters and Profiles
+=======================
+Parameters are shared between profiles if the set of ``{ name, config_file, value }`` is the same. To change a value in one profile but not in others, the parameter has to be removed from the profile you want to change it in, and a new parameter entry has to be created (**Add Parameter** button at the bottom of the Parameters view), and assigned to that profile. It is easy to create new profiles from the **Misc > Profiles** view - just use the **Add/Copy Profile** button at the bottom of the profile view to copy an existing profile to a new one. Profiles can be exported from one system and imported to another using the profile view as well. It makes no sense for a parameter to not be assigned to a single profile - in that case it really has no function. To find parameters like that use the **Parameters > Orphaned Parameters** view. It is easy to create orphaned parameters by removing all profiles, or not assigning a profile directly after creating the parameter.
+
+.. seealso:: :ref:`rl-param-prof` in the *Configuring Traffic Ops* section.
+
+
+
+Tools
+=====
+
+.. index::
+  ISO
+  Generate ISO
+
+.. _rl-generate-iso:
+
+Generate ISO
+++++++++++++
+
+Generate ISO is a tool for building custom ISOs for building caches on remote hosts. Currently it only supports Centos 6, but if you're brave and pure of heart you MIGHT be able to get it to work with other unix-like OS's.
+
+The interface is *mostly* self explainatory as it's got hints.
+
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Field                         |  Explaination                                                                                                                   |
++===============================+=================================================================================================================================+
+|Choose a server from list:     | This option gets all the server names currently in the Traffic Ops database and will autofill known values.                     |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| OS Version:                   | There needs to be an _osversions.cfg_ file in the ISO directory that maps the name of a directory to a name that shows up here. |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Hostname:                     | This is the FQDN of the server to be installed. It is required.                                                                 |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Root password:                | If you don't put anything here it will default to the salted MD5 of "Fred". Whatever put is MD5 hashed and writte to disk.      |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| DHCP:                         | if yes, other IP settings will be ignored                                                                                       |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| IP Address:                   | Required if DHCP=no                                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Netmask:                      | Required if DHCP=no                                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Gateway:                      | Required if DHCP=no                                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| IPV6 Address:                 | Optional. /64 is assumed if prefix is omitted                                                                                   |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| IPV6 Gateway:                 | Ignored if an IPV4 gateway is specified                                                                                         |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Network Device:               | Optional. Typical values are bond0, eth4, etc. Note: if you enter bond0, a LACP bonding config will be written                  |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| MTU:                          | If unsure, set to 1500                                                                                                          |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+| Specify disk for OS install:  | Optional. Typical values are "sda".                                                                                             |
++-------------------------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+
+When you click the **Download ISO** button the folling occurs (all paths relative to the top level of the directory specified in _osversions.cfg_):
+
+#. Reads /etc/resolv.conf to get a list of nameservers. This is a rather ugly hack that is in place until we get a way of configuring it in the interface.
+#. Writes a file in the ks_scripts/state.out that contains directory from _osversions.cfg_ and the mkisofs string that we'll call later.
+#. Writes a file in the ks_scripts/network.cfg that is a bunch of key=value pairs that set up networking.
+#. Creates an MD5 hash of the password you specify and writes it to ks_scripts/password.cfg. Note that if you do not specify a password "Fred" is used. Also note that we have experienced some issues with webbrowsers autofilling that field.
+#. Writes out a disk configuration file to ks_scripts/disk.cfg.
+#. mkisofs is called against the directory configured in _osversions.cfg_ and an ISO is generated in memory and delivered to your webbrowser.
+
+You now have a customized ISO that can be used to install Red Hat and derivative Linux installations with some modifications to your ks.cfg file.
+
+Kickstart/Anaconda will mount the ISO at /mnt/stage2 during the install process (at least with 6).
+
+You can directly include the password file anywhere in your ks.cfg file (usually in the top) by doing %include /mnt/stage2/ks_scripts/password.cfg
+
+What we currently do is have 2 scripts, one to do hard drive configuration and one to do network configuration. Both are relatively specific to the environment they were created in, and both are *probably* wrong for other organizations, however they are currently living in the "misc" directory as examples of how to do things.
+
+We trigger those in a %pre section in ks.cfg and they will write config files to /tmp. We will then include those files in the appropriate places using  %pre.
+
+For example this is a section of our ks.cfg file: ::
+
+  %include /mnt/stage2/ks_scripts/packages.txt
+
+  %pre
+    python /mnt/stage2/ks_scripts/create_network_line.py
+    bash /mnt/stage2/ks_scripts/drive_config.sh
+  %end
+
+These two scripts will then run _before_ anaconda sets up it's internal structures, then a bit further up in the ks.cfg file (outside of the %pre %end block) we do an ::
+
+    %include /mnt/stage2/ks_scripts/password.cfg
+    ...
+    %include /tmp/network_line
+
+    %include /tmp/drive_config
+    ...
+
+This snarfs up the contents and inlines them.
+
+If you only have one kind of hardware on your CDN it is probably best to just put the drive config right in the ks.cfg.
+
+If you have simple networking needs (we use bonded interfaces in most, but not all locations and we have several types of hardware meaning different ethernet interface names at the OS level etc.) then something like this: ::
+
+  #!/bin/bash
+  source /mnt/stage2/ks_scripts/network.cfg
+  echo "network --bootproto=static --activate --ipv6=$IPV6ADDR --ip=$IPADDR --netmask=$NETMASK --gateway=$GATEWAY --ipv6gateway=$GATEWAY --nameserver=$NAMESERVER --mtu=$MTU --hostname=$HOSTNAME" >> /tmp/network.cfg
+  # Note that this is an example and may not work at all.
+
+
+You could also put this in the %pre section. Lots of ways to solve it.
+
+We have included the two scripts we use in the "misc" directory of the git repo:
+
+* kickstart_create_network_line.py
+* kickstart_drive_config.sh
+
+These scripts were written to support a very narrow set of expectations and environment and are almost certainly not suitable to just drop in, but they might provide a good starting point.
+
+.. _rl-queue-updates:
+
+Queue Updates and Snapshot CRConfig
++++++++++++++++++++++++++++++++++++
+When changing delivery services special care has to be taken so that Traffic Router will not send traffic to caches for delivery services that the cache doesn't know about yet. In general, when adding delivery services, or adding servers to a delivery service, it is best to update the caches before updating Traffic Router and Traffic Monitor. When deleting delivery services, or deleting server assignments to delivery services, it is best to update Traffic Router and Traffic Monitor first and then the caches. Updating the cache configuration is done through the *Queue Updates* menu, and updating Traffic Monitor and  Traffic Router config is done through the *Snapshot CRConfig* menu.
+
+.. index::
+  Cache Updates
+  Queue Updates
+
+Queue Updates
+^^^^^^^^^^^^^
+Every 15 minutes the caches should run a *syncds* to get all changes needed from Traffic Ops. The files that will be updated by the syncds job are:
+
+- records.config
+- remap.config
+- parent.config
+- cache.config
+- hosting.config
+- url\_sig\_(.*)\.config
+- hdr\_rw\_(.*)\.config
+- regex_revalidate.config
+- ip_allow.config
+
+A cache will only get updated when the update flag is set for it. To set the update flag, use the *Queue Updates* menu - here you can schedule updates for a whole CDN or a cache group:
+
+  #. Click **Tools > Queue Updates**.
+  #. Select the CDN to queueu uodates for, or All.
+  #. Select the cache group to queue updates for, or All
+  #. Click the **Queue Updates** button.
+  #. When the Queue Updates for this Server? (all) window opens, click **OK**.
+
+To schedule updates for just one cache, use the "Server Checks" page, and click the |checkmark| in the *UPD* column. The UPD column of Server Checks page will change show a |clock| when updates are pending for that cache.
+
+
+.. index::
+  Snapshot CRConfig
+
+.. _rl-snapshot-crconfig:
+
+Snapshot CRConfig
+^^^^^^^^^^^^^^^^^
+
+Every 60 seconds Traffic Monitor will check with Traffic Ops to see if a new CRConfig snapshot exists; Traffic Monitor polls Traffic Ops for a new CRConfig, and Traffic Router polls Traffic Monitor for the same file. This is necessary to ensure that Traffic Monitor sees configuration changes first, which helps to ensure that the health and state of caches and delivery services propagates properly to Traffic Router. See :ref:`rl-ccr-profile` for more information on the CRConfig file.
+
+To create a new snapshot, use the *Tools > Snapshot CRConfig* menu:
+
+  #. Click **Tools > Snapshot CRConfig**.
+  #. Verify the selection of the correct CDN from the Choose CDN drop down and click **Diff CRConfig**.
+     On initial selection of this, the CRConfig Diff window says the following:
+
+     There is no existing CRConfig for [cdn] to diff against... Is this the first snapshot???
+     If you are not sure why you are getting this message, please do not proceed!
+     To proceed writing the snapshot anyway click the 'Write CRConfig' button below.
+
+     If there is an older version of the CRConfig, a window will pop up showing the differences
+     between the active CRConfig and the CRConfig about to be written.
+
+  #. Click **Write CRConfig**.
+  #. When the This will push out a new CRConfig.json. Are you sure? window opens, click **OK**.
+  #. The Successfully wrote CRConfig.json! window opens, click **OK**.
+
+
+.. index::
+  Invalidate Content
+  Purge
+
+.. _rl-purge:
+
+Invalidate Content
+==================
+Invalidating content on the CDN is sometimes necessary when the origin was mis-configured and something is cached in the CDN  that needs to be removed. Given the size of a typical Traffic Control CDN and the amount of content that can be cached in it, removing the content from all the caches may take a long time. To speed up content invalidation, Traffic Ops will not try to remove the content from the caches, but it makes the content inaccessible using the *regex_revalidate* ATS plugin. This forces a *revalidation* of the content, rather than a new get.
+
+.. Note:: This method forces a HTTP *revalidation* of the content, and not a new *GET* - the origin needs to support revalidation according to the HTTP/1.1 specification, and send a ``200 OK`` or ``304 Not Modified`` as applicable.
+
+To invalidate content:
+
+  1. Click **Tools > Invalidate Content**
+  2. Fill out the form fields:
+
+    - Select the **Delivery Service**
+    - Enter the **Path Regex** - this should be a `PCRE <http://www.pcre.org/>`_ compatible regular expression for the path to match for forcing the revalidation. Be careful to only match on the content you need to remove - revalidation is an expensive operation for many origins, and a simple ``/.*`` can cause an overload condition of the origin.
+    - Enter the **Time To Live** - this is how long the revalidation rule will be active for. It usually makes sense to make this the same as the ``Cache-Control`` header from the origin which sets the object time to live in cache (by ``max-age`` or ``Expires``). Entering a longer TTL here will make the caches do unnecessary work.
+    - Enter the **Start Time** - this is the start time when the revalidation rule will be made active. It is pre-populated with the current time, leave as is to schedule ASAP.
+
+  3. Click the **Submit** button.
+
+
+Manage DNSSEC Keys
+====================
+
+In order to support `DNSSEC <https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions>`_ in Traffic Router, Traffic Ops provides some actions for managing DNSSEC keys for a CDN and associated Delivery Services.  DNSSEC Keys consist of a Key Signing Keys (KSK) which are used to sign other DNSKEY records as well as Zone Signing Keys (ZSK) which are used to sign other records.  DNSSEC Keys are stored in `Traffic Vault <../overview/traffic_vault.html>`_ and should only be accessible to Traffic Ops.  Other applications needing access to this data, such as Traffic Router, must use the Traffic Ops `DNSSEC APIs <../development/traffic_ops_api/v12/cdn.html#dnssec-keys>`_ to retrieve this information.
+
+To Manage DNSSEC Keys:
+  1. Click **Tools -> Manage DNSSEC Keys**
+  2. Choose a CDN and click **Manage DNSSEC Keys**
+
+    - If keys have not yet been generated for a CDN, this screen will be mostly blank with just the **CDN** and **DNSSEC Active?** fields being populated.
+    - If keys have been generated for the CDN, the Manage DNSSEC Keys screen will show the TTL and Top Level Domain (TLD) KSK Expiration for the CDN as well as DS Record information which will need to be added to the parent zone of the TLD in order for DNSSEC to work.
+
+The Manage DNSSEC Keys screen also allows a user to perform the following actions:
+
+**Activate/Deactivate DNSSEC for a CDN**
+
+Fairly straight forward, this button set the **dnssec.enabled** param to either **true** or **false** on the Traffic Router profile for the CDN.  The Activate/Deactivate option is only available if DNSSEC keys exist for CDN.  In order to active DNSSEC for a CDN a user must first generate keys and then click the **Active DNSSEC** button.
+
+**Generate Keys**
+
+Generate Keys will generate DNSSEC keys for the CDN TLD as well as for each Delivery Service in the CDN.  It is important to note that this button will create a new KSK for the TLD and, therefore, a new DS Record.  Any time a new DS Record is created, it will need to be added to the parent zone of the TLD in order for DNSSEC to work properly.  When a user clicks the **Generate Keys** button, they will be presented with a screen with the following fields:
+
+  - **CDN:** This is not editable and displays the CDN for which keys will be generated
+  - **ZSK Expiration (Days):**  Sets how long (in days) the Zone Signing Key will be valid for the CDN and associated Delivery Services. The default is 30 days.
+  - **KSK Expiration (Days):**  Sets how long (in days) the Key Signing Key will be valid for the CDN and associated Delivery Services. The default is 365 days.
+  - **Effective Date (GMT):** The time from which the new keys will be active.  Traffic Router will use this value to determine when to start signing with the new keys and stop signing with the old keys.
+
+Once these fields have been correctly entered, a user can click Generate Keys.  The user will be presented with a confirmation screen to help them understand the impact of generating the keys.  If a user confirms, the keys will be generated and stored in Traffic Vault.
+
+**Regenerate KSK**
+
+Regenerate KSK will create a new Key Signing Key for the CDN TLD. A new DS Record will also be generated and need to be put into the parent zone in order for DNSSEC to work correctly. The **Regenerate KSK** button is only available if keys have already been generated for a CDN.  The intent of the button is to provide a mechanism for generating a new KSK when a previous one expires or if necessary for other reasons such as a security breach.  When a user goes to generate a new KSK they are presented with a screen with the following options:
+
+  - **CDN:** This is not editable and displays the CDN for which keys will be generated
+  - **KSK Expiration (Days):**  Sets how long (in days) the Key Signing Key will be valid for the CDN and associated Delivery Services. The default is 365 days.
+  - **Effective Date (GMT):** The time from which the new KSK and DS Record will be active.  Since generating a new KSK will generate a new DS Record that needs to be added to the parent zone, it is very important to make sure that an effective date is chosen that allows for time to get the DS Record into the parent zone.  Failure to get the new DS Record into the parent zone in time could result in DNSSEC errors when Traffic Router tries to sign responses.
+
+Once these fields have been correctly entered, a user can click Generate KSK.  The user will be presented with a confirmation screen to help them understand the impact of generating the KSK.  If a user confirms, the KSK will be generated and stored in Traffic Vault.
+
+Additionally, Traffic Ops also performs some systematic management of DNSSEC keys.  This management is necessary to help keep keys in sync for Delivery Services in a CDN as well as to make sure keys do not expire without human intervention.
+
+**Generation of keys for new Delivery Services**
+
+If a new Delivery Service is created and added to a CDN that has DNSSEC enabled, Traffic Ops will create DNSSEC keys for the Delivery Service and store them in Traffic Vault.
+
+**Regeneration of expiring keys for a Delivery Service**
+
+Traffic Ops has a process, controlled by cron, to check for expired or expiring keys and re-generate them.  The process runs at 5 minute intervals to check and see if keys are expired or close to expiring (withing 10 minutes by default).  If keys are expired for a Delivery Service, traffic ops will regenerate new keys and store them in Traffic Vault.  This process is the same for the CDN TLD ZSK, however Traffic Ops will not re-generate the CDN TLD KSK systematically.  The reason is that when a KSK is regenerated for the CDN TLD then a new DS Record will also be created.  The new DS Record needs to be added to the parent zone before Traffic Router attempts to sign with the new KSK in order for DNSSEC to work correctly.  Therefore, management of the KSK needs to be a manual process.
+
+
+
+
+
diff --git a/docs/latest/_sources/admin/traffic_ops_config.txt b/docs/latest/_sources/admin/traffic_ops_config.txt
index 90c0c1c..b17d57e 100644
--- a/docs/latest/_sources/admin/traffic_ops_config.txt
+++ b/docs/latest/_sources/admin/traffic_ops_config.txt
@@ -29,7 +29,7 @@
 
 Profile Parameters
 ======================
-Many of the settings for the different servers in a Traffic Control CDN are controlled by parameters in the parameter view of Traffic Ops. Parameters are grouped in profiles and profiles are assigned to a server. For a typical cache there are hundreds of configuration settings to apply. The Traffic Ops parameter view contains the defined settings. To make life easier, Traffic Ops allows for duplication, comparison, import and export of Profiles. Traffic Ops also has a "Global profile" - the parameters in this profile are going to be applied to all servers in the Traffic Ops instance, or apply to Traffic Ops themselves. These parameters are:
+Many of the settings for the different servers in a Traffic Control CDN are controlled by parameters in the parameter view of Traffic Ops. Parameters are grouped in profiles and profiles are assigned to a server or a deliveryservice. For a typical cache there are hundreds of configuration settings to apply. The Traffic Ops parameter view contains the defined settings. To make life easier, Traffic Ops allows for duplication, comparison, import and export of Profiles. Traffic Ops also has a "Global profile" - the parameters in this profile are going to be applied to all servers in the Traffic Ops instance, or apply to Traffic Ops themselves. These parameters are:
 
 
 .. index::
@@ -40,6 +40,8 @@
 +==========================+===============+=======================================================================================================================================+
 | tm.url                   | global        | The URL where this Traffic Ops instance is being served from.                                                                         |
 +--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
+| tm.cache.url             | global        | Not required. The URL where the Traffic Ops Config file cache instance is being served from.  Requires Traffic Ops 2.1 and above.     |
++--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
 | tm.toolname              | global        | The name of the Traffic Ops tool. Usually "Traffic Ops". Used in the About screen and in the comments headers of the files generated. |
 +--------------------------+---------------+---------------------------------------------------------------------------------------------------------------------------------------+
 | tm.infourl               | global        | This is the "for more information go here" URL, which is visible in the About page.                                                   |
@@ -90,12 +92,20 @@
 | allow_ip6                | astats.config     | This is a comma separated  list of IPv6 CIDR blocks that will have access to the astats statistics on the caches.       |
 |                          |                   | The Traffic Monitor IP addresses have to be included in this, if they are using IPv6 to monitor the caches.             |
 +--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
-| Drive_Prefix             | storage.config    | JvD/Jeff to supply blurb                                                                                                |
+| Drive_Prefix             | storage.config    | The device path start of the disks. For example, if you have ``/dev/sda`` through ``/dev/sdf`` set this to ``/dev/sd``  |
 +--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
-| Drive_Letters            | storage.config    | JvD/Jeff to supply blurb                                                                                                |
+| Drive_Letters            | storage.config    | The letter part of the disks, in the same example as above set this to ``a,b,c,d,e,f``                                  |
 +--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
 | purge_allow_ip           | ip_allow.config   | The IP address range that is allowed to execute the PURGE method on the caches (not related to :ref:`rl-purge`)         |
 +--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v4	   | ip_allow.config   | The masklen to use when coalescing v4 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_number_v4 	   | ip_allow.config   | The number to use when coalescing v4 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm  |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v6	   | ip_allow.config   | The masklen to use when coalescing v6 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
+| coalesce_masklen_v6	   | ip_allow.config   | The masklen to use when coalescing v6 networks into one line using http://search.cpan.org/~miker/NetAddr-IP-4.078/IP.pm |
++--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
 | health.threshold.loadavg | rascal.properties | The Unix load average at which Traffic Router will stop sending traffic to this cache                                   |
 +--------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------+
 | health.threshold.\\      | rascal.properties | The amount of bandwidth that Traffic Router will try to keep available on the cache.                                    |
@@ -143,6 +153,11 @@
 | regex_revalidate     | plugin.config           | The config to be used for regex_revalidate.      | `regex_revalidate <https://docs.trafficserver.apache.org/en/5.3.x/reference/plugins/regex_remap.en.html>`_                                              |
 |                      |                         | For example: --config regex_revalidate.config    |                                                                                                                                                         |
 +----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+| use_reval_pending    | global                  | Configures Traffic Ops to use separate           | When this flag is in use ORT will check for a new regex_revalidate.config every 60 seconds in syncds mode during the dispersal timer. This will         |
+|                      |                         | reval_pending flag for each cache.               | also allow ORT to be run in revalidate mode, which will check for and clear the reval_pending flag.  This can be set to run via cron task.              |
+|                      |                         |                                                  | This value is set to 0 by default.  Enable with a value of 1.  Use of this feature requires Traffic Ops 2.1 and above.                                  |
++----------------------+-------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
+
 
 Note that the TTL the adminstrator enters in the purge request should be longer than the TTL of the content to ensure the bad content will not be used. If the CDN is serving content of unknown, or unlimited TTL, the administrator should consider using `proxy-config-http-cache-guaranteed-min-lifetime <https://docs.trafficserver.apache.org/en/latest/admin-guide/files/records.config.en.html#proxy-config-http-cache-guaranteed-min-lifetime>`_ to limit the maximum time an object can be in the cache before it is considered stale, and set that to the same value as `maxRevalDurationDays` (Note that the former is in seconds and the latter is in days, so convert appropriately).
 
diff --git a/docs/latest/_sources/admin/traffic_ops_install.txt b/docs/latest/_sources/admin/traffic_ops_install.txt
index ca49461..d0caaf8 100644
--- a/docs/latest/_sources/admin/traffic_ops_install.txt
+++ b/docs/latest/_sources/admin/traffic_ops_install.txt
@@ -379,3 +379,106 @@
 2. Enter the following command:``yum upgrade traffic_ops``
 3. See :ref:`rl-ps` to run postinstall.
 4. Enter the following command:``service traffic_ops start``
+
+Manually Generating and Installing the SSL Certificate
+------------------------------------------------------
+
+.. Note:: This section is valid for traffic-control 2.0.0 and later.
+
+Self-signed Certificate (Development)
+=====================================
+
+    Example Procedure::
+
+      $ openssl genrsa -des3 -passout pass:x -out localhost.pass.key 2048
+      Generating RSA private key, 2048 bit long modulus
+      ...
+      $ openssl rsa -passin pass:x -in localhost.pass.key -out localhost.key
+      writing RSA key
+      $ rm localhost.pass.key
+
+      $ openssl req -new -key localhost.key -out localhost.csr
+      You are about to be asked to enter information that will be incorporated
+      into your certificate request.
+      What you are about to enter is what is called a Distinguished Name or a DN.
+      There are quite a few fields but you can leave some blank
+      For some fields there will be a default value,
+      If you enter '.', the field will be left blank.
+      -----
+      Country Name (2 letter code) [XX]:US<enter>
+      State or Province Name (full name) []:CO<enter>
+      Locality Name (eg, city) [Default City]:Denver<enter>
+      Organization Name (eg, company) [Default Company Ltd]: <enter>
+      Organizational Unit Name (eg, section) []: <enter>
+      Common Name (eg, your name or your server's hostname) []: <enter>
+      Email Address []: <enter>
+
+      Please enter the following 'extra' attributes
+      to be sent with your certificate request
+      A challenge password []: pass<enter>
+      An optional company name []: <enter>
+      $ openssl x509 -req -sha256 -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
+      Signature ok
+      subject=/C=US/ST=CO/L=Denver/O=Default Company Ltd
+      Getting Private key
+      $ sudo cp localhost.crt /etc/pki/tls/certs
+      $ sudo cp localhost.key /etc/pki/tls/private
+      $ sudo chown trafops:trafops /etc/pki/tls/certs/localhost.crt
+      $ sudo chown trafops:trafops /etc/pki/tls/private/localhost.key
+
+Certificate from Certificate Authority (Production)
+===================================================
+
+.. Note:: You will need to know the appropriate answers when generating the certificate request file `trafficopss.csr` below.
+
+    Example Procedure::
+
+      $ openssl genrsa -des3 -passout pass:x -out trafficops.pass.key 2048
+      Generating RSA private key, 2048 bit long modulus
+      ...
+      $ openssl rsa -passin pass:x -in trafficops.pass.key -out trafficops.key
+      writing RSA key
+      $ rm localhost.pass.key
+
+      Generate the Certificate Signing Request (CSR) file needed for Certificate Authority (CA) request.
+
+      $ openssl req -new -key trafficops.key -out trafficops.csr
+      You are about to be asked to enter information that will be incorporated
+      into your certificate request.
+      What you are about to enter is what is called a Distinguished Name or a DN.
+      There are quite a few fields but you can leave some blank
+      For some fields there will be a default value,
+      If you enter '.', the field will be left blank.
+      -----
+      Country Name (2 letter code) [XX]: <enter country code>
+      State or Province Name (full name) []: <enter state or province>
+      Locality Name (eg, city) [Default City]: <enter locality name>
+      Organization Name (eg, company) [Default Company Ltd]: <enter organization name>
+      Organizational Unit Name (eg, section) []: <enter organizational unit name>
+      Common Name (eg, your name or your server's hostname) []: <enter server's hostname name>
+      Email Address []: <enter e-mail address>
+
+      Please enter the following 'extra' attributes
+      to be sent with your certificate request
+      A challenge password []: <enter challenge password>
+      An optional company name []: <enter>
+      $ sudo cp trafficops.key /etc/pki/tls/private
+      $ sudo chown trafops:trafops /etc/pki/tls/private/trafficops.key
+
+      You must then take the output file trafficops.csr and submit a request to your Certificate Authority (CA).
+      Once you get approved and receive your trafficops.crt file:
+
+      $ sudo cp trafficops.crt /etc/pki/tls/certs
+      $ sudo chown trafops:trafops /etc/pki/tls/certs/trafficops.crt
+
+      If necessary, install the CA certificates .pem and .crt in /etc/pki/tls/certs.
+
+      You will need to update the file /opt/traffic_ops/app/conf/cdn.conf with the following changes:
+            ...
+            e.g. given trafficops.crt and trafficops.key
+            'hypnotoad' => ...
+                'listen' => 'https://[::]:443?cert=/etc/pki/tls/certs/trafficops.crt&key=/etc/pki/tls/private/trafficops.key&ca=/etc/pki/tls/certs/localhost.ca&verify=0x00&ciphers=AES128-GCM-SHA256:HIGH:!RC4:!MD5:!aNULL:!EDH:!ED'
+             ...
+
+
+
diff --git a/docs/latest/_sources/admin/traffic_ops_using.txt b/docs/latest/_sources/admin/traffic_ops_using.txt
index eb3d0ee..c62704c 100644
--- a/docs/latest/_sources/admin/traffic_ops_using.txt
+++ b/docs/latest/_sources/admin/traffic_ops_using.txt
@@ -122,6 +122,8 @@
   +--------------------+-------------------------------------------------------------------------------------------+
   |       Option       |                                        Description                                        |
   +====================+===========================================================================================+
+  | CDNs               | Create/Read/Update/Delete CDNs                                                            |
+  +--------------------+-------------------------------------------------------------------------------------------+
   | Cache Groups       | Create/Read/Update/Delete cache groups                                                    |
   +--------------------+-------------------------------------------------------------------------------------------+
   | Users              | Create/Read/Update/Delete users                                                           |
@@ -255,7 +257,7 @@
 +---------------+---------------------------------------------+
 | ORG           | Origin                                      |
 +---------------+---------------------------------------------+
-| CCR           | Comcast Content Router                      |
+| CCR           | Traffic Router                              |
 +---------------+---------------------------------------------+
 | RASCAL        | Rascal health polling & reporting           |
 +---------------+---------------------------------------------+
@@ -278,7 +280,7 @@
 
 Bulk Upload Server
 ++++++++++++++++++
-
+TBD
 
 
 Delivery Service
@@ -309,6 +311,8 @@
 |                                                  | - 0 use in cache key and hand up to origin -this means each unique query string Is treated as a unique URL.                                                                                                         |
 |                                                  | - 1 Do not use in cache key, but pass up to origin - this means a 2 URLs that are the same except for the query string will match, and cache HIT, while the origin still sees original query string in the request. |
 |                                                  | - 2 Drop at edge - this means a 2 URLs that are the same except for  the query string will match, and cache HIT, while the origin will not see original query string in the request.                                |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | **Note:** Choosing to drop query strings at the edge will preclude the use of a Regex Remap Expression. See :ref:`rl-regex-remap`.                                                                                  |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Geo Limit?                                       | Some services are intended to be limited by geography. The possible settings are are:                                                                                                                               |
 |                                                  |                                                                                                                                                                                                                     |
@@ -339,12 +343,7 @@
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Use Multi Site Origin Feature                    | Enable the Multi Site Origin feature for this delivery service. See :ref:`rl-multi-site-origin`                                                                                                                     |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| Multi Site Origin Algorithm                      | - 1 Consistent Hash spreads requests across multiple parents simultaneously based on hash of content URL.                                                                                                           |
-|                                                  | - 2 Strict Round Robin spreads requests across multiple parents simultaneously based on order of requests.                                                                                                          |
-|                                                  | - 3 IP Based Round Robin spreads requests across multiple parents simultaneously based on order of requests, but ensures that requests from the same IP always go to the same parent if available.                  |
-|                                                  | - 4 Latched uses only a single parent at any given time and switches to a new parent only if the current parent fails.                                                                                              |
-+--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| CCR profile                                      | The Traffic Router  profile for this delivery service. See :ref:`rl-ccr-profile`.                                                                                                                                   |
+| Profile                                          | The profile for this delivery service.                                                                                                                                                                              |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Maximum Bits per Second allowed globally         | The maximum bits per second this delivery service can serve across all EDGE caches before traffic will be diverted to the bypass destination. For a DNS delivery service, the Bypass Ipv4 or Ipv6  will be used     |
 |                                                  | (depending on whether this was a A or AAAA request), and for HTTP delivery services the Bypass FQDN will be used.                                                                                                   |
@@ -361,6 +360,8 @@
 | Mid Header Rewrite Rules                         | Header Rewrite rules to apply for this delivery service at the MID tier. See :ref:`rl-header-rewrite`. [1]_                                                                                                         |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Regex Remap Expression                           | Regex Remap rule to apply to this delivery service at the Edge tier. See `ATS documentation on regex_remap <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/regex_remap.en.html>`_. [1]_        |
+|                                                  |                                                                                                                                                                                                                     |
+|                                                  | **Note:** you will not be able to save a Regex Remap Expression if you have Query String Handling set to drop query strings at the edge. See :ref:`rl-regex-remap`.                                                 |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Cache URL expression                             | Cache URL rule to apply to this delivery service. See `ATS documentation on cacheurl <https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/cacheurl.en.html>`_. [1]_                                 |
 +--------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -594,14 +595,14 @@
 
 Multi Site Origin
 +++++++++++++++++
-.. Note:: The Multi Site Origin feature is based upon a feature n ATS that has yet to be submitted to Traffic Server upstream, until it is, set this to 0, or use the ATS rpm supplied on the trafficcontrol.apache.org website.
 
-Normally, the mid servers are not aware of any redundancy at the origin layer. With Multi Site Origin enabled this changes - Traffic Server (and Traffic Ops) are now made aware of the fact there are multiple origins, and can be configured to do more advanced failover and loadbalancing actions.
+.. Note:: The configuration of this feature changed significantly between ATS version 5 and >= 6. Some configuration in Traffic Control is different as well. This documentation assumes ATS 6 or higher. See :ref:`rl-multi-site-origin-qht-ats5` for the ATS version 5.x configuration details.
 
-With This feature enabled, origin servers (or origin server VIP names for a site) are going to be entered as servers in to the Traiffic Ops UI. Server type is ""
+Normally, the mid servers are not aware of any redundancy at the origin layer. With Multi Site Origin enabled this changes - Traffic Server (and Traffic Ops) are now made aware of the fact there are multiple origins, and can be configured to do more advanced failover and loadbalancing actions. A prerequisite for MSO to work is that the multiple origin sites serve identical content with identical paths, and both are configured to serve the same origin hostname as is configured in the deliveryservice `Origin Server Base URL` field. See the `Apache Traffic Server docs <https://docs.trafficserver.apache.org/en/latest/admin-guide/files/parent.config.en.html>`_ for more information on that cache's implementation.
 
+With This feature enabled, origin servers (or origin server VIP names for a site) are going to be entered as servers in to the Traiffic Ops UI. Server type is "ORG".
 
-Parameters in the Origin profile that influence this feature:
+Parameters in the mid profile that influence this feature:
 
 +--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
 |                                   Name                                   |    Filename    |  Default   |                                            Description                                             |
@@ -610,27 +611,40 @@
 +--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
 | CONFIG proxy.config. url_remap.remap_required                            | records.config | INT 1      | required for parent selection.                                                                     |
 +--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_proxy.per_parent_connect_attempts       | records.config | INT 5      | maximum of 5 connection attempts per parent (parent.config list) within a transaction.             |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_proxy.total_connect_attempts            | records.config | INT 10     | maximum of 10 total connection attempts within a transaction.                                      |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_origin.simple_retry_enabled             | records.config | INT 1      | enables simple retry.                                                                              |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_origin.simple_retry_response_codes      | records.config | STRING 404 | the response code that invokes simple retry.  May be a comman separated list of response codes.    |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_origin.dead_server_retry_response_codes | records.config | STRING 503 | the response code that invokes dead server retry.  May be a comma separated list of response codes |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. http.parent_origin.dead_server_retry_enabled        | records.config | INT 1      | enables dead server retry.                                                                         |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
-| CONFIG proxy.config. diags.debug.enabled                                 | records.config | INT 1      | enable debugging for testing only                                                                  |
-+--------------------------------------------------------------------------+----------------+------------+----------------------------------------------------------------------------------------------------+
+
+
+Parameters in the deliveryservice profile that influence this feature:
+
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+|                                   Name      |    Filename    |  Default        |                                                                         Description                                             |
++=============================================+================+=================+=================================================================================================================================+
+| mso.parent_retry                            | parent.config  | \-              | Either ``simple_retry``, ``dead_server_retry`` or ``both``.                                                                     |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.algorithm                               | parent.config  | consistent_hash | The algorithm to use. ``consisten_hash``, ``strict``, ``true``, ``false``, or ``latched``.                                      |
+|                                             |                |                 |                                                                                                                                 |
+|                                             |                |                 | - ``consisten_hash`` - spreads requests across multiple parents simultaneously based on hash of content URL.                    |
+|                                             |                |                 | - ``strict`` - strict Round Robin spreads requests across multiple parents simultaneously based on order of requests.           |
+|                                             |                |                 | - ``true`` - same as strict, but ensures that requests from the same IP always go to the same parent if available.              |
+|                                             |                |                 | - ``false`` - uses only a single parent at any given time and switches to a new parent only if the current parent fails.        |
+|                                             |                |                 | - ``latched`` - same as false, but now, a failed parent will not be retried.                                                    |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.unavailable_server_retry_response_codes | parent.config  | "503"           | Quoted, comma separated list of HTTP status codes that count as a unavailable_server_retry_response_code.                       |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.max_unavailable_server_retries          | parent.config  | 1               | How many times an unavailable server will be retried.                                                                           |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.simple_retry_response_codes             | parent.config  | "404"           | Quoted, comma separated list of HTTP status codes that count as a simple retry response code.                                   |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+| mso.max_simple_retries                      | parent.config  | 1               | How many times a simple retry will be done.                                                                                     |
++---------------------------------------------+----------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------+
+
+
 
 see :ref:`rl-multi-site-origin-qht` for a *quick how to* on this feature.
 
 .. _rl-ccr-profile:
 
-CCR Profile or Traffic Router Profile
-+++++++++++++++++++++++++++++++++++++
+Traffic Router Profile
+++++++++++++++++++++++
 
 +-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 |                   Name                  |      Config_file       |                                                                                                Description                                                                                                |
@@ -655,8 +669,6 @@
 +-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | coveragezone.polling.url                | CRConfig.json          | The location (URL) to retrieve the coverage zone map file in XML format from.                                                                                                                             |
 +-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| domain_name                             | CRConfig.json          | The top level domain of this Traffic Router instance.                                                                                                                                                     |
-+-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | tld.soa.expire                          | CRConfig.json          | The value for the expire field the Traffic Router DNS Server will respond with on Start of Authority (SOA) records.                                                                                       |
 +-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | tld.soa.minimum                         | CRConfig.json          | The value for the minimum field the Traffic Router DNS Server will respond with on SOA records.                                                                                                           |
@@ -719,6 +731,21 @@
 +-----------------------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
+.. index::
+  Regex Remap Expression
+
+.. _rl-regex-remap:
+
+Regex Remap Expression
+++++++++++++++++++++++
+The regex remap expression allows to to use a regex and resulting match group(s) in order to modify the request URIs that are sent to origin. For example: ::
+
+  ^/original/(.*) http://origin.example.com/remapped/$1
+
+.. Note:: If **Query String Handling** is set to ``2 Drop at edge``, then you will not be allowed to save a regex remap expression, as dropping query strings actually relies on a regex remap of its own. However, if there is a need to both drop query strings **and** remap request URIs, this can be accomplished by setting **Query String Handling** to ``1 Do not use in cache key, but pass up to origin``, and then using a custom regex remap expression to do the necessary remapping, while simultaneously dropping query strings. The following example will capture the original request URI up to, but not including, the query string and then forward to a remapped URI: ::
+
+  ^/([^?]*).* http://origin.example.com/remapped/$1
+
 ..   index::
   HOST_REGEXP
   PATH_REGEXP
diff --git a/docs/latest/_sources/admin/traffic_router.txt b/docs/latest/_sources/admin/traffic_router.txt
index 4fe4759..33ba4ee 100644
--- a/docs/latest/_sources/admin/traffic_router.txt
+++ b/docs/latest/_sources/admin/traffic_router.txt
@@ -47,6 +47,8 @@
 
 
 6. Start Tomcat: ``sudo service tomcat start``, and test lookups with dig and curl against that server.
+	To restart, ``sudo service tomcat stop``, kill the traffic router process, and ``sudo service tomcat start``
+	Also, crconfig previously recieved will be cached, and needs to be removed manually to actually be reloaded /opt/traffic_router/db/cr-config.json
 7. Snapshot CRConfig; See :ref:`rl-snapshot-crconfig`
 
 ..  Note:: Once the CRConfig is snapshotted, live traffic will be sent to the new Traffic Routers provided that their status is set to ``ONLINE``.
diff --git a/docs/latest/_sources/admin/traffic_server.txt b/docs/latest/_sources/admin/traffic_server.txt
index 1b99ce0..9283708 100644
--- a/docs/latest/_sources/admin/traffic_server.txt
+++ b/docs/latest/_sources/admin/traffic_server.txt
@@ -18,26 +18,53 @@
 *****************************
 Installing Traffic Server
 =========================
-1. Select **Servers** in the Traffic Ops web interface.
-2. Scroll to the bottom of the page and click **Add Server**.
-3. Complete the *Required Info*: section.
-4. Click **Submit**.
-5. Click **Save**.
 
-.. 6. Click **Online Server**.
-.. 7. From the Set status of this machine to ONLINE? screen, click **OK**.
+#.  Get the Traffic Server RPM and the astats RPM.
+
+    Sample command: ::
+
+        wget http://traffic-control-cdn.net/downloads/1.7.0/RELEASE-1.7.0/trafficserver-5.3.2-759.ee14bbe.el6.x86_64.rpm
+        wget http://traffic-control-cdn.net/downloads/1.6.1/RELEASE-1.6.1/astats_over_http-1.2-8.el6.x86_64.rpm
+
+    (astats was not released as part of 1.7, so in this examples 1.6.1 was used)
+#.  Install Traffic Server and astats: ::
+
+        sudo yum -y install trafficserver-*.rpm astats_over_http*.rpm
+
+#.  Add the server using the Traffic Ops web interface:
+
+    #. Select **Servers**.
+    #. Scroll to the bottom of the page and click **Add Server**.
+    #. Complete the "Required Info:" section:
+        * Set 'Interface Name' to the name of the interface from which traffic server delivers content. 
+        * Set 'Type' to 'MID' or 'EDGE'.
+
+    #. Click **Submit**.
+    #. Click **Save**.
+    #. Click **Online Server**. 
+    #. Verify that the server status is now listed as **Reported**
+
+#.  Install the ORT script and run it in 'badass' mode to create the initial configuration, see :ref:`reference-traffic-ops-ort` 
+
+#.  Start the service: ``sudo service trafficserver start``
+
+#.  Configure traffic server to start automatically: ``sudo chkconfig trafficserver on``
+
+#.  Verify that the installation is good:
+
+    #. Make sure that the service is running: ``sudo service trafficserver status``
+
+    #. Assuming a traffic monitor is already installed, browse to it, and verify that the traffic server appears in the "Cahce States" table, in white.
+
 
 .. _reference-traffic-ops-ort:
 
 Configuring Traffic Server
 ==========================
 All of the Traffic Server application configuration files are generated by Traffic Ops and installed by way of the traffic_ops_ort.pl script. 
+The traffic_ops_ort.pl should be installed on all caches (by puppet or other non Traffic Ops means), usually in /opt/ort. It is used to do the initial install of the config files when the cache is being deployed, and to keep the config files up to date when the cache is already in service.  The usage message of the script is shown below: ::
 
-
-**traffic_ops_ort.pl**
-  The traffic_ops_ort.pl should be installed on all caches (by puppet or other non Traffic Ops means), usually in /opt/ort. It is used to do initial install of the config files when the cache is being deployed, and to keep the config files up to date when the cache is already in service.  The usage message of the script is shown below: ::
-
-    $ sudo ./traffic_ops_ort.pl syncds warn https://to.cdn.kabletown.net
+    $ sudo /opt/ort/traffic_ops_ort.pl
     Thu May 26 15:52:11 UTC 2016
     ====-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-====
     Usage: ./traffic_ops_ort.pl <Mode> <Log_Level> <Traffic_Ops_URL> <Traffic_Ops_Login> [optional flags]
@@ -59,13 +86,58 @@
     ====-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-====
     $
 
+Installing the ORT script
+--------------------------
 
-  For initial configuration or when major changes (like a Profile change) need to be made, run the script in "badass mode". All required rpm packages will be installed, all Traffic Server config files will be fetched and installed, and (if needed) the Traffic Server application will be restarted.  Example run below: ::
+#.  The ORT script is not a part of the traffic server distribution. In this sample session, we get it manually from github: ::
 
-    run here 
+        sudo mkdir /opt/ort
+        sudo wget -P /opt/ort https://raw.githubusercontent.com/apache/incubator-trafficcontrol/1.7.x/traffic_ops/bin/traffic_ops_ort.pl
+        sudo chmod +x /opt/ort/traffic_ops_ort.pl
 
-  For "every day changes" such as adding deliveryservices or changing records.config parameters caches should run the script in "syncds" mode out of cron. Example crontab entry: :: 
+#.  Install modules required by ORT: ``sudo yum -y install perl-JSON perl-Crypt-SSLeay``
 
-  		*/15 * * * * /opt/ort/traffic_ops_ort.pl syncds warn https://traffops.kabletown.net admin:password > /tmp/ort/syncds.log 2>&1
+#.  For initial configuration or when major changes (like a Profile change) need to be made, run the script in "badass mode". All required rpm packages 
+    will be installed, all Traffic Server config files will be fetched and installed, and (if needed) the Traffic Server application will be restarted.  
 
-  .. Note:: <disclaimer on what is "hot changeable" here>
+    Example run below: ::
+
+        $ sudo /opt/ort/traffic_ops_ort.pl --dispersion=0 badass warn https://ops.$tcDomain admin:admin123
+
+    .. Note:: First run gives a lot of state errors that are expected. The "badass" mode fixes these issue s. Run it a second time, this should be cleaner.
+       Also, note that many ERROR messages emitted by ORT are actually information messages. Do not panic.
+
+#.  Create a cron entry for running ort in 'syncds' mode every 15 minutes. 
+    This makes traffic control check periodically if 'Queue Updates' was run on Traffic Ops, and it so, get the updated configuration.
+
+    Run ``sudo crontab -e`` and add the following line :: 
+
+  	  	*/15 * * * * /opt/ort/traffic_ops_ort.pl syncds warn https://traffops.kabletown.net admin:password --login_dispersion=30 --dispersion=180 > /tmp/ort/syncds.log 2>&1
+
+    Changing ``https://traffops.kabletown.net``, ``admin``, and ``password`` to your CDN URL and credentials.
+
+    .. Note:: By default, running ort on an edge traffic server waits for it's parent (mid) servers to download their configuration before 
+       it downloads it's own configuration. Because of this, scheduling ort for running every 15 minutes (with 5 minutes default dispersion) means 
+       that it might take up to ~35 minutes for a "Queue Updates" operation to affect all traffic servers.  To customize this dispersion time, use 
+       the command line option --dispersion=x where x is the number of seconds for the dispersion period.  Servers will select a random number from
+       within this dispersion period to being pulling down configuration files from Traffic Ops.  Another option, --login_dispersion=x can be used.
+       This option creates a dispersion period after the job begins during which ORT will wait before logging in and checking Traffic Ops for updates
+       to the server.  This defaults to 0.  If use_reval_pending, a.k.a. Rapid Revalidate is enabled, edges will NOT wait for their parents to download
+       their configuration before downloading their own.
+
+    .. Note:: In 'syncds' mode, the ort script updates only configurations that might be changed as part of normal operations, such as:
+
+        * Delivery Services
+        * SSL certificates
+        * Traffic Monitor IP addresses
+        * Logging configuration
+        * Revalidation requests (By default. If Rapid Revalidate is enabled, this will only be checked by using a separate revalidate command in ORT.)
+
+
+#.  If Rapid Revalidate is enabled in Traffic Ops, create a second cron job for revalidation checks.  ORT will not check revalidation files if Rapid Revalidate
+    is enabled. This setting allows for a separate check to be performed every 60 seconds to verify if a revalidation update has been made.
+
+    Run ``sudo crontab -e`` and add the following line :: 
+
+        */1 * * * * /opt/ort/traffic_ops_ort.pl revalidate warn https://traffops.kabletown.net admin:password --login_dispersion=30 > /tmp/ort/syncds.log 2>&1
+
diff --git a/docs/latest/_sources/admin/traffic_stats.txt b/docs/latest/_sources/admin/traffic_stats.txt
index df720ae..2355202 100644
--- a/docs/latest/_sources/admin/traffic_stats.txt
+++ b/docs/latest/_sources/admin/traffic_stats.txt
@@ -24,9 +24,10 @@
 
 **Installing Traffic Stats:**
 
-	- Download the Traffic Stats RPM from the traffic control `downloads <https://trafficcontrol.apache.org/downloads/index.html>`_ page.
-	- Copy the Traffic Stats RPM to your server
-	- sudo rpm -ivh <traffic_stats rpm>
+	- See the `downloads <https://trafficcontrol.apache.org/downloads/index.html>`_ page for Traffic Control to get the lastest release.
+	- Follow our build `intructions <https://github.com/apache/incubator-trafficcontrol/tree/master/build>`_ to generate an RPM.
+	- Copy the RPM to your server
+	- perform the following command: ``sudo rpm -ivh <traffic_stats rpm>``
 
 **Installing InfluxDB:**
 
@@ -128,30 +129,30 @@
 Under the Traffic Stats source directory there is a directory called influxdb_tools.  These tools are meant to be used as one-off scripts to help a user quickly get new databases and continuous queries setup in influxdb.
 They are specific for traffic stats and are not meant to be generic to influxdb.  Below is an brief description of each script along with how to use it.
 
-**create_ts_databases**
+**create/create_ts_databases.go**
 	This script creates all `databases <https://docs.influxdata.com/influxdb/latest/concepts/key_concepts/#database>`_, `retention policies <https://docs.influxdata.com/influxdb/latest/concepts/key_concepts/#retention-policy>`_, and `continuous queries <https://docs.influxdata.com/influxdb/v0.11/query_language/continuous_queries/>`_ required by traffic stats.
 
 	**How to use create_ts_databases:**
 
 	Pre-Requisites:
 
-		1. Go 1.4 or later
+		1. Go 1.7 or later
 		2. configured $GOPATH (e.g. export GOPATH=~/go)
 
 	Using create_ts_databases.go
 
-		1. go get github.com/influxdata/influxdb
+		1. go to the traffic_stats/influxdb_tools/create directory
 
-		2. go build create_ts_databases.go
+		2. build it by running ``go build create_ts_databases.go`` or simply ``go build``
 
 		3. Run it:
-			- ./create_ts_databases -help
+			- ``./create_ts_databases -help`` or ``./create -help``
 			- optional flags:
 				- url -  The influxdb url and port
 				- replication -  The number of nodes in the cluster
 				- user - The user to use
 				- password - The password to use
-			- example: ./create_ts_databases -url=localhost:8086 -replication=3 -user=joe -password=mysecret
+			- example: ``./create_ts_databases -url=localhost:8086 -replication=3 -user=joe -password=mysecret`` or ``./create -url=localhost:8086 -replication=3 -user=joe -password=mysecret``
 
 **sync_ts_databases**
 	This script is used to sync one influxdb environment to another.  Only data from continuous queries is synced as it is downsampled data and much smaller in size than syncing raw data.  Possible use cases are syncing from Production to Development or Syncing a new cluster once brought online.
@@ -160,28 +161,28 @@
 
 	Pre-Requisites:
 
-		1. Go 1.4 or later
+		1. Go 1.7 or later
 		2. configured $GOPATH (e.g. export GOPATH=~/go)
 
 	Using sync_ts_databases.go:
 
-		1. go get github.com/influxdata/influxdb
+		1. go to the traffic_stats/influxdb_tools/create directory
 
-		2. go build sync_ts_databases.go
+		2. build it by running ``go build sync_ts_databases.go`` or simply ``go build``
 
 		3. Run it
-			- ./sync_ts_databases -help
+			- ``./sync_ts_databases -help`` or ``./sync -help``
 			- required flags:
-				- sourceUrl - The URL of the source database
-				- targetUrl - The URL of the target database
+				- source-url - The URL of the source database
+				- target-url - The URL of the target database
 
 			-optional flags:
 				- database - The database to sync (default = sync all databases)
 				- days - Days in the past to sync (default = sync all data)
-				- sourceUser - The user of the source database
-				- sourcePass - The password for the source database
-				- targetUser - The user of the target database
-				- targetPass - The password for the target database
+				- source-user - The user of the source database
+				- source-pass - The password for the source database
+				- target-user - The user of the target database
+				- target-pass - The password for the target database
 
-			- example: ./sync_ts_databases -sourceUrl=http://influxdb-production-01.kabletown.net:8086 -targetUrl=http://influxdb-dev-01.kabletown.net:8086 -database=cache_stats -days=7 -sourceUser=joe sourcePass=mysecret
+			- example: `./sync -source-url=http://idb-01.foo.net:8086 -target-url=http://idb-01.foo.net:8086 -database=cache_stats -days=7 -source-user=admin source-pass=mysecret`
 
diff --git a/docs/latest/_sources/development/building.txt b/docs/latest/_sources/development/building.txt
new file mode 100644
index 0000000..87e68e9
--- /dev/null
+++ b/docs/latest/_sources/development/building.txt
@@ -0,0 +1,94 @@
+.. 
+.. 
+.. 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.
+.. 
+
+.. _dev-building:
+
+Building Traffic Control
+========================
+
+
+Build using pkg
+---------------
+
+This is the easiest way to build all the components of Traffic Control;
+all requirements are automatically loaded into the image used to build
+each component.
+
+Requirements
+~~~~~~~~~~~~
+
+-  ``docker`` (https://docs.docker.com/engine/installation/)
+-  ``docker-compose`` (https://docs.docker.com/compose/install/)
+   (optional, but recommended)
+
+If ``docker-compose`` is not available, the ``pkg`` script will
+automatically download and run it in a container. This is noticeably
+slower than running it natively.
+
+Usage
+~~~~~
+
+::
+
+    $ ./pkg -?
+    Usage: ./pkg [options] [projects]
+        -q      Quiet mode. Supresses output.
+        -v      Verbose mode. Lists all build output.
+        -l      List available projects.
+
+        If no projects are listed, all projects will be packaged.
+        Valid projects:
+                - traffic_portal_build
+                - traffic_router_build
+                - traffic_monitor_build
+                - source
+                - traffic_ops_build
+                - traffic_stats_build
+
+
+If any project names are provided on the command line, only those will be built.
+Otherwise, all projects are built.
+
+All artifacts (rpms, logs, source tar ball) are copied to ``dist`` at the top level of the
+``incubator-trafficcontrol`` directory.
+
+Example
+~~~~~~~
+
+::
+
+    $ ./pkg -v source traffic_ops_build
+    Building source.
+    Building traffic_ops_build.
+
+Build using docker-compose
+--------------------------
+
+If the ``pkg`` script fails, ``docker-compose`` can still be used directly.
+
+Usage
+~~~~~
+
+::
+
+    $ docker-compose -f ./infrastructure/docker/build/docker-compose.yml down -v
+    $ docker-compose -f ./infrastructure/docker/build/docker-compose.yml up --build source traffic_ops_build
+    $ ls -1 dist/
+    build-traffic_ops.log
+    traffic_ops-2.1.0-6396.07033d6d.el7.src.rpm
+    traffic_ops-2.1.0-6396.07033d6d.el7.x86_64.rpm
+    traffic_ops_ort-2.1.0-6396.07033d6d.el7.src.rpm
+    traffic_ops_ort-2.1.0-6396.07033d6d.el7.x86_64.rpm
+    trafficcontrol-incubating-2.1.0.tar.gz
diff --git a/docs/latest/_sources/development/index.txt b/docs/latest/_sources/development/index.txt
index 851e463..ecabe1d 100644
--- a/docs/latest/_sources/development/index.txt
+++ b/docs/latest/_sources/development/index.txt
@@ -20,10 +20,12 @@
 .. toctree::
   :maxdepth: 2
 
+  building
   traffic_ops
   traffic_portal
   traffic_router
   traffic_monitor
+  traffic_monitor_golang
   traffic_stats
   traffic_server
 
diff --git a/docs/latest/_sources/development/traffic_monitor_golang.txt b/docs/latest/_sources/development/traffic_monitor_golang.txt
new file mode 100644
index 0000000..118a623
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_monitor_golang.txt
@@ -0,0 +1,295 @@
+.. 
+.. 
+.. 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.
+.. 
+
+Traffic Monitor Golang
+**********************
+Introduction
+============
+The next major version of Traffic Monitor has been completely rewritten in Golang. Currently, this version is functionally equivalent, and should be considered "beta." It is recommended that new CDN deployments continue to use the existing Java version, until the new version is completely moved over in the source and binary distributions. However, developers and administrators are encouraged to test the Golang version, to prepare for operational differences and look for bugs.
+
+Traffic Monitor is an HTTP service application that monitors caches, provides health state information to Traffic Router, and collects statistics for use in tools such as Traffic Ops and Traffic Stats. The health state provided by Traffic Monitor is used by Traffic Router to control which caches are available on the CDN.
+
+Software Requirements
+=====================
+To work on Traffic Monitor you need a \*nix (MacOS and Linux are most commonly used) environment that has the following installed:
+
+* Golang
+
+Project Tree Overview
+=====================================
+
+* ``traffic_control/traffic_monitor/`` - base directory for Traffic Monitor.
+
+* ``cache/`` - Handler for processing cache results.
+* ``config/`` - Application configuration; in-memory objects from ``traffic_monitor.cfg``.
+* ``crconfig/`` - struct for deserlializing the CRConfig from JSON.
+* ``deliveryservice/`` - aggregates delivery service data from cache results.
+* ``deliveryservicedata/`` - deliveryservice structs. This exists separate from ``deliveryservice`` to avoid circular dependencies.
+* ``enum/`` - enumerations and name alias types.
+* ``health/`` - functions for calculating cache health, and creating health event objects.
+* ``manager/`` - manager goroutines (microthreads).
+	* ``health.go`` - Health request manager. Processes health results, from the health poller -> fetcher -> manager. The health poll is the "heartbeat" containing a small amount of stats, primarily to determine whether a cache is reachable as quickly as possible. Data is aggregated and inserted into shared threadsafe objects.
+	* ``manager.go`` - Contains ``Start`` function to start all pollers, handlers, and managers.
+	* ``monitorconfig.go`` - Monitor config manager. Gets data from the monitor config poller, which polls Traffic Ops for changes to which caches are monitored and how.
+	* ``opsconfig.go`` - Ops config manager. Gets data from the ops config poller, which polls Traffic Ops for changes to monitoring settings.
+	* ``peer.go`` - Peer manager. Gets data from the peer poller -> fetcher -> handler and aggregates it into the shared threadsafe objects.
+	* ``stat.go`` - Stat request manager. Processes stat results, from the stat poller -> fetcher -> manager. The stat poll is the large statistics poll, containing all stats (such as HTTP codes, transactions, delivery service statistics, and more). Data is aggregated and inserted into shared threadsafe objects.
+	* ``statecombiner.go`` - Manager for combining local and peer states, into a single combined states threadsafe object, for serving the CrStates endpoint.
+* ``datareq/`` - HTTP routing, which has threadsafe health and stat objects populated by stat and health managers.
+* ``peer/`` - Manager for getting and populating peer data from other Traffic Monitors
+* ``srvhttp/`` - HTTP service. Given a map of endpoint functions, which are lambda closures containing aggregated data objects.
+* ``static/`` - Web GUI HTML and javascript files
+* ``threadsafe/`` - Threadsafe objects for storing aggregated data needed by multiple goroutines (typically the aggregator and HTTP server)
+* ``trafficopsdata/`` - Struct for fetching and storing Traffic Ops data needed from the CRConfig. This is primarily mappings, such as delivery service servers, and server types.
+* ``trafficopswrapper/`` - Threadsafe wrapper around the Traffic Ops client. The client used to not be threadsafe, however, it mostly (possibly entirely) is now. But, the wrapper also serves to overwrite the Traffic Ops ``monitoring.json`` values, which are live, with snapshotted CRConfig values.
+
+Architecture
+============
+At the highest level, Traffic Monitor polls caches, aggregates their data and availability, and serves it at HTTP JSON endpoints.
+
+In the code, the data flows thru microthread (goroutine) pipelines. All stages of the pipeline are independent running microthreads:sup:`1`. The pipelines are:
+
+* **stat poll** - polls caches for all statistics data. This should be a slower poll, which gets a lot of data.
+* **health poll** - polls caches for a tiny amount of data, typically system information. This poll is designed to be a heartbeat, determining quickly whether the cache is reachable. Since it's a small amount of data, it should poll more frequently.
+* **peer poll** - polls Traffic Monitor peers for their availability data, and aggregates it with its own availability results and that of all other peers.
+* **monitor config** - polls Traffic Ops for the list of Traffic Monitors and their info.
+* **ops config** - polls for changes to the ops config file ``traffic_ops.cfg``, and sends updates to other pollers when the config file has changed.
+
+  * The ops config manager also updates the shared Traffic Ops client, since it's the actor which becomes notified of config changes requiring a new client.
+
+  * The ops config manager also manages, creates, and recreates the HTTP server, since ops config changes necessitate restarting the HTTP server.
+
+All microthreads in the pipeline are started by ``manager/manager.go:Start()``.
+
+::
+
+  --------------------     --------------------     --------------------
+  | ops config poller |-->| ops config handler |-->| ops config manager |-->-restart HTTP server-------------------------
+   -------------------     --------------------     -------------------- |                                              |
+                                                                         -->-ops config change subscriber-------------  |
+                                                                         |                                           |  |
+                                                                         -->-Traffic Ops client change subscriber--  |  |
+                                                                                                                  |  |  |
+      -------------------------------------------------------------------------------------------------------------  |  |
+      |                                                                                                              |  |
+      |   ------------------------------------------------------------------------------------------------------------  |
+      |   |                                                                                                             |
+      \/  \/                                                                                                            |
+     -----------------------     ------------------------                                                               |
+    | monitor config poller |-->| monitor config manager |-->-stat subscriber--------             -----------------------
+     -----------------------     ------------------------ |                         |             |
+                                                          |->-health subscriber---  |             \/                           _
+                                                          |                      |  |       -------------                    _( )._
+                                                          -->-peer subscriber--  |  |      | HTTP server |->-HTTP request-> (____)_)
+                                                                              |  |  |       -------------
+  -----------------------------------------------------------------------------  |  |              ^
+  |                                                                              |  |              |
+  |  -----------------------------------------------------------------------------  |              ------------------------
+  |  |                                                                              |                                     |
+  |  |  -----------------------------------------------------------------------------                                     |
+  |  |  |                                                                                                                 ^
+  |  |  |   -------------     --------------     --------------     --------------                            -----------------------
+  |  |  -->| stat poller |-->| stat fetcher |-->| stat handler |-->| stat manager |->--------set shared data->| shared data         |
+  |  |      ------------- |   --------------     --------------  |  --------------                            -----------------------
+  |  |                    |   --------------     --------------  |                                            | events              |
+  |  |                    |->| stat fetcher |-->| stat handler |-|                                            | toData              |
+  |  |                    |   --------------     --------------  |                                            | errorCount          |
+  |  |                    ...                                    ...                                          | healthIteration     |
+  |  |                                                                                                        | fetchCount          |
+  |  |     ---------------     ----------------     ----------------     ----------------                     | localStates         |
+  |  ---->| health poller |-->| health fetcher |-->| health handler |-->| health manager |->-set shared data->| toSession           |
+  |        --------------- |   ----------------     ----------------  |  ----------------                     | peerStates          |
+  |                        |   ----------------     ----------------  |                                       | monitorConfig       |
+  |                        |->| health fetcher |-->| health handler |-|                                       | combinedStates      |
+  |                        |   ----------------     ----------------  |                                       | statInfoHistory     |
+  |                        ...                                        ...                                     | statResultHistory   |
+  |                                                                                                           | statMaxKbpses       |
+  |       -------------     --------------     --------------     --------------                              | lastKbpsStats       |
+  ------>| peer poller |-->| peer fetcher |-->| peer handler |-->| peer manager |->----------set shared data->| dsStats             |
+          ------------- |   --------------     --------------  |  --------------                              | localCacheStatus    |
+                        |   --------------     --------------  |                                              | lastHealthDurations |
+                        |->| peer fetcher |-->| peer handler |-|                                              | healthHistory       |
+                        |   --------------     --------------  |                                              -----------------------
+                        ...                                    ...
+
+:sup:`1`Technically, some stages which are one-to-one simply call the next stage as a function. For example, the Fetcher calls the Handler as a function in the same microthread. But this isn't architecturally significant.
+
+
+Stat Pipeline
+-------------
+
+::
+
+  ---------     ---------     ---------     ---------
+  | poller |-->| fetcher |-->| handler |-->| manager |
+   -------- |   ---------     ---------  |  ---------
+            |   ---------     ---------  |
+            |->| fetcher |-->| handler |-|
+            |   ---------     ---------  |
+            ...                          ...
+
+* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Listens for config changes (from the ops config manager), and starts its own internal microthreads, one for each cache to poll. These internal microthreads call the Fetcher at each cache's poll interval.
+
+* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Fetches the given URL, and passes the returned data to the Handler, along with any errors.
+
+
+* **handler** - ``traffic_monitor/cache/cache.go:Handler.Handle()``. Takes the given result and does all data computation possible with the single result. Currently, this computation primarily involves processing the denormalized ATS data into Go structs, and processing System data into OutBytes, Kbps, etc. Precomputed data is then passed to its result channel, which is picked up by the Manager.
+
+* **manager** - ``traffic_monitor/manager/stat.go:StartStatHistoryManager()``. Takes preprocessed results, and aggregates them. Aggregated results are then placed in shared data structures. The major data aggregated are delivery service statistics, and cache availability data. See :ref:`Aggregated Stat Data` and :ref:`Aggregated Availability Data`.
+
+
+Health Pipeline
+---------------
+
+::
+
+  ---------     ---------     ---------     ---------
+  | poller |-->| fetcher |-->| handler |-->| manager |
+   -------- |   ---------     ---------  |  ---------
+            |   ---------     ---------  |
+            |->| fetcher |-->| handler |-|
+            |   ---------     ---------  |
+            ...                          ...
+
+* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat Poller pipeline, with a different handler object.
+
+* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat Poller pipeline, with a different handler object.
+
+* **handler** - ``traffic_monitor/cache/cache.go:Handler.Handle()``. Same handler type as the Stat Poller pipeline, but constructed with a flag to not precompute. The health endpoint is of the same form as the stat endpoint, but doesn't return all stat data. So, it doesn't precompute like the Stat Handler, but only processes the system data, and passes the processed result to its result channel, which is picked up by the Manager.
+
+* **manager** - ``traffic_monitor/manager/health.go:StartHealthResultManager()``. Takes preprocessed results, and aggregates them. For the Health pipeline, only health availability data is aggregated. Aggregated results are then placed in shared data structures (lastHealthDurationsThreadsafe, lastHealthEndTimes, etc). See :ref:`Aggregated Availability Data`.
+
+
+Peer Pipeline
+-------------
+
+::
+
+  ---------     ---------     ---------     ---------
+  | poller |-->| fetcher |-->| handler |-->| manager |
+   -------- |   ---------     ---------  |  ---------
+            |   ---------     ---------  |
+            |->| fetcher |-->| handler |-|
+            |   ---------     ---------  |
+            ...                          ...
+
+* **poller** - ``common/poller/poller.go:HttpPoller.Poll()``. Same poller type as the Stat and Health Poller pipelines, with a different handler object. Its config changes come from the Monitor Config Manager, and it starts an internal microthread for each peer to poll.
+
+* **fetcher** - ``common/fetcher/fetcher.go:HttpFetcher.Fetch()``. Same fetcher type as the Stat and Health Poller pipeline, with a different handler object.
+
+* **handler** - ``traffic_monitor/cache/peer.go:Handler.Handle()``. Decodes the JSON result into an object, and without further processing passes to its result channel, which is picked up by the Manager.
+
+* **manager** - ``traffic_monitor/manager/peer.go:StartPeerManager()``. Takes JSON peer Traffic Monitor results, and aggregates them. The availability of the Peer Traffic Monitor itself, as well as all cache availability from the given peer result, is stored in the shared ``peerStates`` object. Results are then aggregated via a call to the ``combineState()`` lambda, which signals the State Combiner microthread (which stores the combined availability in the shared object ``combinedStates``; See :ref:`State Combiner`).
+
+
+Monitor Config Pipeline
+-----------------------
+
+::
+
+  ---------     ---------
+  | poller |-->| manager |--> stat subscriber (Stat pipeline Poller)
+   --------     --------- |
+                          |-> health subscriber (Health pipeline Poller)
+                          |
+                          --> peer subscriber (Peer pipeline Poller)
+
+* **poller** - ``common/poller/poller.go:MonitorConfigPoller.Poll()``. The Monitor Config poller, on its interval, polls Traffic Ops for the Monitor configuration, and writes the polled value to its result channel, which is read by the Manager.
+
+* **manager** - ``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for results from the poller, and processes them. Cache changes are written to channels read by the Health, Stat, and Peer pollers. In the Shared Data objects, this also sets the list of new delivery services and removes ones which no longer exist, and sets the list of peer Traffic Monitors.
+
+
+Ops Config Pipeline
+-------------------
+::
+
+  ---------     ---------     ---------
+  | poller |-->| handler |-->| manager |--> ops config change subscriber (Monitor Config Poller)
+   --------     ---------     --------- |
+                                        --> Traffic ops client change subscriber (Monitor Config Poller)
+
+* **poller** - ``common/poller/poller.go:FilePoller.Poll()``. Polls for changes to the Traffic Ops config file ``traffic_ops.cfg``, and writes the changed config to its result channel, which is read by the Handler.
+
+* **handler** - ``common/handler/handler.go:OpsConfigFileHandler.Listen()``. Takes the given raw config, unmarshalls the JSON into an object, and writes the object to its channel, which is read by the Manager, along with any error.
+
+* **manager** - ``traffic_monitor/manager/monitorconfig.go:StartMonitorConfigManager()``. Listens for new configs, and processes them. When a new config is received, a new HTTP dispatch map is created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``, and the HTTP server is restarted with the new dispatch map. The Traffic Ops client is also recreated, and stored in its shared data object. The Ops Config change subscribers and Traffic Ops Client change subscribers (the Monitor Config poller) are also passed the new ops config and new Traffic Ops client.
+
+
+Events
+------
+The ``events`` shared data object is passed to each pipeline microthread which needs to signal events. Most of them do. Events are then logged, and visible in the UI as well as an HTTP JSON endpoint. Most events are caches becoming available or unavailable, but include other things such as peer availability changes.
+
+
+State Combiner
+--------------
+The State Combiner is a microthread started in ``traffic_monitor/manager/manager.go:Start()`` via ``traffic_monitor/manager/statecombiner.go:StartStateCombiner()``, which listens for signals to combine states. It should be signaled by any pipeline which updates the local or peer availability shared data objects, ``localStates`` and ``peerStates``. It holds the threadsafe shared data objects for local states and peer states, so no data is passed or returned, only a signal.
+
+When a signal is received, it combines the local and peer states optimistically. That is, if a cache is marked available locally or by any peer, that cache is marked available in the combined states. There exists a variable to combine pessimistically, which may be set at compile time (it's unusual for a CDN to operate well with pessimistic cache availability). Combined data is stored in the threadsafe shared data object ``combinedStates``.
+
+
+Aggregated Stat Data
+--------------------
+The Stat pipeline Manager is responsible for aggregating stats from all caches, into delivery services statistics. This is done via a call to ``traffic_monitor/deliveryservice/stat.go:CreateStats()``.
+
+
+Aggregated Availability Data
+----------------------------
+Both the Stat and Health pipelines aggregate availability data received from caches. This is done via a call to ``traffic_monitor/deliveryservice/health.go:CalcAvailability()`` followed by a call to ``combineState()``. The ``CalcAvailability`` function calculates the availability of each cache from the result of polling it, that is, local availability. The ``combineState()`` function is a lambda passed to the Manager, which signals the State Combiner microthread, which will combine the local and peer Traffic Monitor availability data, and insert it into the shared data ``combinedStates`` object.
+
+
+HTTP Data Requests
+------------------
+Data is provided to HTTP requests via the threadsafe shared data objects (see :ref:`Shared Data`). These objects are closed in lambdas created via ``traffic_monitor/datareq/datareq.go:MakeDispatchMap()``. This is called by the Ops Config Manager when it recreates the HTTP server.
+
+Each HTTP endpoint is mapped to a function which closes around the shared data objects it needs, and takes the request data it needs (such as query parameters). Each endpoint function resides in its own file in ``traffic_monitor/datareq/``. Because each Go HTTP routing function must be a ``http.HandlerFunc``, wrapper functions take the endpoint functions and return ``http.HandlerFunc`` functions which call them, and which are stored in the dispatch map, to be registered with the HTTP server.
+
+
+Shared Data
+-----------
+Processed and aggregated data must be shared between the end of the stat and health processing pipelines, and HTTP requests. The CSP paradigm of idiomatic Go does not work efficiently with storing and sharing state. While not idiomatic Go, shared mutexed data structures are faster and simpler than CSP manager microthreads for each data object.
+
+Traffic Monitor has many threadsafe shared data types and objects. All shared data objects can be seen in ``manager/manager.go:Start()``, where they are created and passed to the various pipeline stage microthreads that need them. Their respective types all include the word ``Threadsafe``, and can be found in ``traffic_monitor/threadsafe/`` as well as, for dependency reasons, various appropriate directories.
+
+Currently, all Threadsafe shared data types use mutexes. In the future, these could be changed to lock-free or wait-free structures, if the performance needs outweighed the readability and correctness costs. They could also easily be changed to internally be manager microthreads and channels, if being idiomatic were deemed more important than readability or performance.
+
+
+
+Formatting Conventions
+===========================
+Go code should be formatted with ``gofmt``. See also ``CONTRIBUTING.md``.
+
+Installing The Developer Environment
+====================================
+To install the Traffic Monitor Developer environment:
+
+1. Install `go` version 1.7 or greater, from https://golang.org/doc/install and https://golang.org/doc/code.html
+2. Clone the traffic_control repository using Git, into ``$GOPATH/src/github.com/apache/incubator-trafficcontrol``
+3. Change directories into ``$GOPATH/src/github.com/apache/incubator-trafficcontrol/traffic_monitor_golang/traffic_monitor``
+4. Run ``./build.sh``
+
+Test Cases
+==========
+Tests can be executed by running ``go test ./...`` at the root of the ``traffic_monitor_golang`` project.
+
+API
+===
+
+:ref:`reference-tm-api`
+
+.. toctree:: 
+  :hidden:
+  :maxdepth: 1
+
+  traffic_monitor/traffic_monitor_api
diff --git a/docs/latest/_sources/development/traffic_ops.txt b/docs/latest/_sources/development/traffic_ops.txt
index 9e30148..b18bc26 100644
--- a/docs/latest/_sources/development/traffic_ops.txt
+++ b/docs/latest/_sources/development/traffic_ops.txt
@@ -597,22 +597,28 @@
   traffic_ops_api/v11/type
   traffic_ops_api/v11/user
 
-API 1.2 Reference 
+API 1.2 Reference
 -----------------
 
 .. toctree:: 
   :maxdepth: 1
 
+  traffic_ops_api/v12/api_capability
   traffic_ops_api/v12/asn
   traffic_ops_api/v12/cachegroup
+  traffic_ops_api/v12/cachegroup_parameter
   traffic_ops_api/v12/cache_stats
+  traffic_ops_api/v12/capability
   traffic_ops_api/v12/cdn
   traffic_ops_api/v12/changelog
+  traffic_ops_api/v12/configfiles_ats
   traffic_ops_api/v12/deliveryservice
+  traffic_ops_api/v12/deliveryservice_regex
   traffic_ops_api/v12/deliveryservice_stats
   traffic_ops_api/v12/division
   traffic_ops_api/v12/federation
   traffic_ops_api/v12/hwinfo
+  traffic_ops_api/v12/job
   traffic_ops_api/v12/parameter
   traffic_ops_api/v12/phys_location
   traffic_ops_api/v12/profile
@@ -623,7 +629,9 @@
   traffic_ops_api/v12/server
   traffic_ops_api/v12/static_dns
   traffic_ops_api/v12/status
+  traffic_ops_api/v12/steering_target
   traffic_ops_api/v12/system
+  traffic_ops_api/v12/tenant
   traffic_ops_api/v12/to_extension
   traffic_ops_api/v12/type
   traffic_ops_api/v12/user
diff --git a/docs/latest/_sources/development/traffic_ops_api/routes.txt b/docs/latest/_sources/development/traffic_ops_api/routes.txt
index ec90963..1c849b3 100644
--- a/docs/latest/_sources/development/traffic_ops_api/routes.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/routes.txt
@@ -114,3 +114,5 @@
 +------------------------------------+----------------------------------------------------+----------------------------------------------------+
 | /datauser/orderby/:field           |   :ref:`to-api-v11-users-route`                    |   :ref:`to-api-v12-users-route`                    |
 +------------------------------------+----------------------------------------------------+----------------------------------------------------+
+| *Not Implemented*                  |   *Not Implemented*                                |   :ref:`to-api-v12-configfiles_ats-route`          |
++------------------------------------+----------------------------------------------------+----------------------------------------------------+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v11/redis.txt b/docs/latest/_sources/development/traffic_ops_api/v11/redis.txt
deleted file mode 100644
index 795be7f..0000000
--- a/docs/latest/_sources/development/traffic_ops_api/v11/redis.txt
+++ /dev/null
@@ -1,431 +0,0 @@
-.. 
-.. 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-redis:
-
-Redis
-=====
-
-.. Note:: The redis documentation needs a thorough review!
-
-.. _to-api-v11-redis-route:
-
-/api/1.1/redis
-++++++++++++++
-
-**GET /api/1.1/traffic_monitor/stats.json**
-
-Authentication Required: Yes
-
-Role(s) Required: None
-
-**Response Properties**
-
-+----------------------+--------+------------------------------------------------+
-| Parameter            | Type   | Description                                    |
-+======================+========+================================================+
-| ``aaData``           | array  |                                                |
-+----------------------+--------+------------------------------------------------+
-
-**Response Example**
-::
-
-  {
-   "aaData": [
-      [
-         "0",
-         "ALL",
-         "ALL",
-         "ALL",
-         "true",
-         "ALL",
-         "142035",
-         "172365661.85"
-      ],
-      [
-         1,
-         "EDGE1_TOP_421_PSPP",
-         "odol-atsec-atl-03",
-         "us-ga-atlanta",
-         "1",
-         "REPORTED",
-         "596",
-         "923510.04",
-         "69.241.82.126"
-      ]
-   ],
-  }
-
-|
-
-**GET /api/1.1/redis/stats.json**
-
-Authentication Required: Yes
-
-Role(s) Required: None
-
-**Response Properties**
-
-+----------------------+--------+------------------------------------------------+
-| Parameter            | Type   | Description                                    |
-+======================+========+================================================+
-|``number``            | array  |                                                |
-+----------------------+--------+------------------------------------------------+
-|``what``              | string |                                                |
-+----------------------+--------+------------------------------------------------+
-|``which``             | string |                                                |
-+----------------------+--------+------------------------------------------------+
-|``interval``          | string |                                                |
-+----------------------+--------+------------------------------------------------+
-|``elapsed``           | string |                                                |
-+----------------------+--------+------------------------------------------------+
-|``end``               | string |                                                |
-+----------------------+--------+------------------------------------------------+
-|``start``             | string |                                                |
-+----------------------+--------+------------------------------------------------+
-
-**Response Example**
-::
-
-  {
-   "number": -1,
-   "what": null,
-   "which": null,
-   "interval": " 10 seconds ",
-   "elapsed": "0.11271 (0.112065) ",
-   "end": "Thu Jan  1 00:00:00 1970",
-   "start": "Thu Jan  1 00:00:00 1970"
-  }
-
-|
-
-**GET /api/1.1/redis/info/:host_name.json**
-
-Authentication Required: Yes
-
-Role(s) Required: None
-
-**Request Route Parameters**
-
-+--------------------------+--------+--------------------------------------------+
-| Parameter                | Type   | Description                                |
-+==========================+========+============================================+
-|``host_name``             | string |                                            |
-+--------------------------+--------+--------------------------------------------+
-
-**Response Properties**
-
-+-------------------------------------+--------+-------------+
-|              Parameter              |  Type  | Description |
-+=====================================+========+=============+
-| ``Server``                          | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>redis_build_id``                 | string |             |
-+-------------------------------------+--------+-------------+
-| ``>config_file``                    | string |             |
-+-------------------------------------+--------+-------------+
-| ``>uptime_in_seconds``              | string |             |
-+-------------------------------------+--------+-------------+
-| ``>hz``                             | string |             |
-+-------------------------------------+--------+-------------+
-| ``>os``                             | string |             |
-+-------------------------------------+--------+-------------+
-| ``>redis_git_sha1``                 | string |             |
-+-------------------------------------+--------+-------------+
-| ``>redis_version``                  | string |             |
-+-------------------------------------+--------+-------------+
-| ``>tcp_port``                       | string |             |
-+-------------------------------------+--------+-------------+
-| ``>redis_git_dirty``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>redis_mode``                     | string |             |
-+-------------------------------------+--------+-------------+
-| ``>run_id``                         | string |             |
-+-------------------------------------+--------+-------------+
-| ``>uptime_in_days``                 | string |             |
-+-------------------------------------+--------+-------------+
-| ``>gcc_version``                    | string |             |
-+-------------------------------------+--------+-------------+
-| ``>arch_bits``                      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>lru_clock``                      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>multiplexing_api``               | string |             |
-+-------------------------------------+--------+-------------+
-| ``Keyspace``                        | string |             |
-+-------------------------------------+--------+-------------+
-| ``>db0``                            | string |             |
-+-------------------------------------+--------+-------------+
-| ``slowlog``                         | array  |             |
-+-------------------------------------+--------+-------------+
-| ``Persistence``                     | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_bgsave_in_progress``         | string |             |
-+-------------------------------------+--------+-------------+
-| ``>loading``                        | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_current_bgsave_time_sec``    | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_enabled``                    | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_last_bgsave_time_sec``       | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_last_rewrite_time_sec``      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_last_write_status``          | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_last_bgsave_status``         | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_last_bgrewrite_status``      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_current_rewrite_time_sec``   | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_rewrite_scheduled``          | string |             |
-+-------------------------------------+--------+-------------+
-| ``>aof_rewrite_in_progress``        | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_last_save_time``             | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rdb_changes_since_last_save``    | string |             |
-+-------------------------------------+--------+-------------+
-| ``slowlen``                         | int    |             |
-+-------------------------------------+--------+-------------+
-| ``CPU``                             | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>used_cpu_user``                  | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_cpu_sys``                   | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_cpu_user_children``         | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_cpu_sys_children``          | string |             |
-+-------------------------------------+--------+-------------+
-| ``Memory``                          | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory_lua``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>mem_allocator``                  | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory_human``              | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory_peak_human``         | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory_peak``               | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory_rss``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>mem_fragmentation_ratio``        | string |             |
-+-------------------------------------+--------+-------------+
-| ``>used_memory``                    | string |             |
-+-------------------------------------+--------+-------------+
-| ``Replication``                     | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>repl_backlog_first_byte_offset`` | string |             |
-+-------------------------------------+--------+-------------+
-| ``>repl_backlog_active``            | string |             |
-+-------------------------------------+--------+-------------+
-| ``>repl_backlog_histlen``           | string |             |
-+-------------------------------------+--------+-------------+
-| ``>repl_backlog_size``              | string |             |
-+-------------------------------------+--------+-------------+
-| ``>role``                           | string |             |
-+-------------------------------------+--------+-------------+
-| ``>master_repl_offset``             | string |             |
-+-------------------------------------+--------+-------------+
-| ``>connected_slaves``               | string |             |
-+-------------------------------------+--------+-------------+
-| ``Clients``                         | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>client_biggest_input_buf``       | string |             |
-+-------------------------------------+--------+-------------+
-| ``>client_longest_output_list``     | string |             |
-+-------------------------------------+--------+-------------+
-| ``>blocked_clients``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>connected_clients``              | string |             |
-+-------------------------------------+--------+-------------+
-| ``Stats``                           | hash   |             |
-+-------------------------------------+--------+-------------+
-| ``>latest_fork_usec``               | string |             |
-+-------------------------------------+--------+-------------+
-| ``>rejected_connections``           | string |             |
-+-------------------------------------+--------+-------------+
-| ``>sync_partial_ok``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>pubsub_channels``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>instantaneous_ops_per_sec``      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>total_connections_received``     | string |             |
-+-------------------------------------+--------+-------------+
-| ``>pubsub_patterns``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>sync_full``                      | string |             |
-+-------------------------------------+--------+-------------+
-| ``>keyspace_hits``                  | string |             |
-+-------------------------------------+--------+-------------+
-| ``>keyspace_misses``                | string |             |
-+-------------------------------------+--------+-------------+
-| ``>total_commands_processed``       | string |             |
-+-------------------------------------+--------+-------------+
-| ``>expired_keys``                   | string |             |
-+-------------------------------------+--------+-------------+
-| ``>sync_partial_err``               | string |             |
-+-------------------------------------+--------+-------------+
-
-**Response Example**
-::
-
-  {
-   "Server": {
-      "redis_build_id": "606641459177bc09",
-      "config_file": "\/etc\/redis\/redis.conf",
-      "uptime_in_seconds": "1113787",
-      "hz": "10",
-      "os": "Linux 2.6.32-220.el6.x86_64 x86_64",
-      "redis_git_sha1": "00000000",
-      "redis_version": "2.8.15",
-      "process_id": "14607",
-      "tcp_port": "6379",
-      "redis_git_dirty": "0",
-      "redis_mode": "standalone",
-      "run_id": "43c5d003453b96e38ad3eae54026d8e1b078a7fd",
-      "uptime_in_days": "12",
-      "gcc_version": "4.4.6",
-      "arch_bits": "64",
-      "lru_clock": "16050046",
-      "multiplexing_api": "epoll"
-   },
-   "Keyspace": {
-      "db0": "keys=26319,expires=0,avg_ttl=0"
-   },
-   "slowlog": [
-      [
-         "32656",
-         "1425336191",
-         "18539",
-         [
-            "keys",
-            "*"
-         ]
-      ]
-   ],
-   "Persistence": {
-      "rdb_bgsave_in_progress": "0",
-      "loading": "0",
-      "rdb_current_bgsave_time_sec": "-1",
-      "aof_enabled": "0",
-      "rdb_last_bgsave_time_sec": "-1",
-      "aof_last_rewrite_time_sec": "-1",
-      "aof_last_write_status": "ok",
-      "rdb_last_bgsave_status": "ok",
-      "aof_last_bgrewrite_status": "ok",
-      "aof_current_rewrite_time_sec": "-1",
-      "aof_rewrite_scheduled": "0",
-      "aof_rewrite_in_progress": "0",
-      "rdb_last_save_time": "1424222403",
-      "rdb_changes_since_last_save": "2595831724"
-   },
-   "slowlen": 128,
-   "CPU": {
-      "used_cpu_user": "45252.98",
-      "used_cpu_sys": "154718.84",
-      "used_cpu_user_children": "0.00",
-      "used_cpu_sys_children": "0.00"
-   },
-   "Memory": {
-      "used_memory_lua": "33792",
-      "mem_allocator": "jemalloc-3.6.0",
-      "used_memory_human": "5.25G",
-      "used_memory_peak_human": "8.08G",
-      "used_memory_peak": "8675798632",
-      "used_memory_rss": "8870088704",
-      "mem_fragmentation_ratio": "1.57",
-      "used_memory": "5633381640"
-   },
-   "Replication": {
-      "repl_backlog_first_byte_offset": "0",
-      "repl_backlog_active": "0",
-      "repl_backlog_histlen": "0",
-      "repl_backlog_size": "1048576",
-      "role": "master",
-      "master_repl_offset": "0",
-      "connected_slaves": "0"
-   },
-   "Clients": {
-      "client_biggest_input_buf": "0",
-      "client_longest_output_list": "0",
-      "blocked_clients": "0",
-      "connected_clients": "16"
-   },
-   "Stats": {
-      "latest_fork_usec": "0",
-      "rejected_connections": "0",
-      "sync_partial_ok": "0",
-      "pubsub_channels": "0",
-      "instantaneous_ops_per_sec": "2238",
-      "total_connections_received": "2502657",
-      "evicted_keys": "0",
-      "pubsub_patterns": "0",
-      "sync_full": "0",
-      "keyspace_hits": "49388626",
-      "keyspace_misses": "780",
-      "total_commands_processed": "2645272238",
-      "expired_keys": "0",
-      "sync_partial_err": "0"
-   }
-  }
-
-|
-
-**GET /api/1.1/redis/match/#match/start_date/:start_date/end_date/:end_date/interval/:interval.json**
-
-Authentication Required: Yes
-
-Role(s) Required: None
-
-**Request Route Parameters**
-
-+--------------------------+--------+--------------------------------------------+
-| Parameter                | Type   | Description                                |
-+==========================+========+============================================+
-|``start_date``            | string |                                            |
-+--------------------------+--------+--------------------------------------------+
-|``end_date``              | string |                                            |
-+--------------------------+--------+--------------------------------------------+
-|``interval``              | string |                                            |
-+--------------------------+--------+--------------------------------------------+
-
-**Response Properties**
-
-+-------------+--------+-------------+
-|  Parameter  |  Type  | Description |
-+=============+========+=============+
-| ``alerts``  | array  |             |
-+-------------+--------+-------------+
-| ``>level``  | string |             |
-+-------------+--------+-------------+
-| ``>text``   | string |             |
-+-------------+--------+-------------+
-| ``version`` | string |             |
-+-------------+--------+-------------+
-
-**Response Example**
-
-TBD
-
-
-
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/ConfigFiles-ApacheTrafficServer.txt b/docs/latest/_sources/development/traffic_ops_api/v12/ConfigFiles-ApacheTrafficServer.txt
new file mode 100644
index 0000000..3a6d109
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/ConfigFiles-ApacheTrafficServer.txt
@@ -0,0 +1,212 @@
+.. 
+.. 
+.. 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-v12-configfiles:
+
+Config Files and Config File Metadata
+===
+
+.. _to-api-v12-configfiles-route:
+
+/api/1.2/servers/:hostname/configfiles/ats
+/api/1.2/servers/:host_id/configfiles/ats
++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats**
+**GET /api/1.2/servers/:host_id/configfiles/ats**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  +======================================================================================================+
+  |                                        Info Section                                                  |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``profileId``     | string | The ID of the profile assigned to the cache.                            |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``profileName``   | string | The name of the profile assigned to the cache.                          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toRevProxyUrl`` | string | The configured reverse proxy cache for configfile requests.             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toURL``         | string | The configured URL for Traffic Ops.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverIpv4``    | string | The configured IP address of the cache.                                 |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverName``    | string | The cache's short form hostname.                                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverId``      | string | The cache's Traffic Ops ID.                                             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnId``         | string | The ID of the cache's assigned CDN.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnName``       | string | The name of the cache's assigned CDN.                                   |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +======================================================================================================+
+  |                                    configFiles Section                                               |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``fnameOnDisk``   | string | The filename of the configuration file as stored on the cache.          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``location``      | string | The directory location of the configuration file as stored on the cache.|
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``apiUri``        | string | The path to generate the configuration file from Traffic Ops.           |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``scope``         | string | The scope of the configuration file.                                    |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  
+
+  **Response Example** ::
+
+  {
+    "info": {
+      "profileId": 278,
+      "toRevProxyUrl": "https://to.example.com:81",
+      "toUrl": "https://to.example.com/",
+      "serverIpv4": "192.168.1.5",
+      "serverTcpPort": 80,
+      "serverName": "cache-ats-01",
+      "cdnId": 1,
+      "cdnName": "CDN_1",
+      "serverId": 21,
+      "profileName": "EDGE_CDN_1_EXAMPLE"
+    },
+    "configFiles": [
+      {
+        "fnameOnDisk": "remap.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/profiles/EDGE_CDN_1_EXAMPLE/configfiles/ats/remap.config",
+        "scope": "profiles"
+      },
+      {
+        "fnameOnDisk": "ssl_multicert.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/cdns/CDN_1/configfiles/ats/ssl_multicert.config",
+        "scope": "cdns"
+      },
+      {
+        "fnameOnDisk": "parent.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/servers/cache-ats-01/configfiles/ats/parent.config"
+      }
+    ]
+  }
+
+
+/api/1.2/servers/:hostname/configfiles/ats/:configfile
+/api/1.2/servers/:host_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats/:configfile**
+**GET /api/1.2/servers/:host_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the profiles route."
+      }
+    ]
+  }
+
+
+/api/1.2/profiles/:profile_name/configfiles/ats/:configfile
+/api/1.2/profiles/:profile_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/profiles/:profile_name/configfiles/ats/:configfile**
+**GET /api/1.2/profiles/:profile_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the cdns route."
+      }
+    ]
+  }
+
+
+/api/1.2/cdns/:cdn_name/configfiles/ats/:configfile
+/api/1.2/cdns/:cdn_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/cdns/:cdn_name/configfiles/ats/:configfile**
+**GET /api/1.2/cdns/:cdn_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the servers route."
+      }
+    ]
+  }
+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/api_capability.txt b/docs/latest/_sources/development/traffic_ops_api/v12/api_capability.txt
new file mode 100644
index 0000000..794dd4f
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/api_capability.txt
@@ -0,0 +1,320 @@
+..
+..
+.. 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-v12-api_capability:
+
+API-Capabilities
+================
+
+.. _to-api-v12-api-capability-route:
+
+/api/1.2/api_capabilities
++++++++++++++++++++++++++
+
+**GET /api/1.2/api_capabilities**
+
+  Get all API-capability mappings.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Query Parameters**
+
+  +----------------+----------+--------+------------------------------------+
+  |    Name        | Required | Type   |         Description                |
+  +================+==========+========+====================================+
+  | ``capability`` |   no     | string | Capability name.                   |
+  +----------------+----------+--------+------------------------------------+
+
+  **Response Properties**
+
+  +-------------------+--------+--------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                    |
+  +===================+========+==================================================+
+  | ``id``            | int    | Mapping id.                                      |
+  +-------------------+--------+--------------------------------------------------+
+  | ``httpMethod``    | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +-------------------+--------+--------------------------------------------------+
+  | ``route``         | string | API route.                                       |
+  +-------------------+--------+--------------------------------------------------+
+  | ``capability``    | string | Capability name.                                 |
+  +-------------------+--------+--------------------------------------------------+
+  | ``lastUpdated``   | string |                                                  |
+  +-------------------+--------+--------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+           {
+              "id": "6",
+              "httpMethod": "GET",
+              "route": "/api/*/asns",
+              "capability": "asn-read",
+              "lastUpdated": "2017-04-02 08:22:43"
+           },
+           {
+              "id": "7",
+              "httpMethod": "GET",
+              "route": "/api/*/asns/*",
+              "capability": "asn-read",
+              "lastUpdated": "2017-04-02 08:22:43"
+           }
+        ]
+    }
+
+|
+
+**GET /api/1.2/api_capabilities/:id**
+
+  Get an API-capability mapping by id.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-------------+----------+-------+-------------------------------------+
+  |    Name     | Required |  Type |         Description                 |
+  +=============+==========+=======+=====================================+
+  |   ``id``    |   yes    | int   | Mapping id.                         |
+  +-------------+----------+-------+-------------------------------------+
+
+  **Response Properties**
+
+  +-------------------+--------+--------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                    |
+  +===================+========+==================================================+
+  | ``id``            | int    | Mapping id.                                      |
+  +-------------------+--------+--------------------------------------------------+
+  | ``httpMethod``    | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +-------------------+--------+--------------------------------------------------+
+  | ``route``         | string | API route.                                       |
+  +-------------------+--------+--------------------------------------------------+
+  | ``capability``    | string | Capability name.                                 |
+  +-------------------+--------+--------------------------------------------------+
+  | ``lastUpdated``   | string |                                                  |
+  +-------------------+--------+--------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+           {
+              "id": "6",
+              "httpMethod": "GET",
+              "route": "/api/*/asns",
+              "capability": "asn-read",
+              "lastUpdated": "2017-04-02 08:22:43"
+           }
+        ]
+    }
+
+|
+
+**POST /api/1.2/api_capabilities**
+
+  Create an API-capability mapping.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Properties**
+
+  +----------------+----------+--------+--------------------------------------------------+
+  |    Name        | Required | Type   |                Description                       |
+  +================+==========+========+==================================================+
+  | ``httpMethod`` | yes      | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +----------------+----------+--------+--------------------------------------------------+
+  | ``route``      | yes      | string | API route.                                       |
+  +----------------+----------+--------+--------------------------------------------------+
+  | ``capability`` | yes      | string | Capability name                                  |
+  +----------------+----------+--------+--------------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "httpMethod": "POST",
+        "route": "/api/*/cdns",
+        "capability": "cdn-write"
+    }
+
+  **Response Properties**
+
+  +--------------------+--------+--------------------------------------------------+
+  |    Parameter       |  Type  |                   Description                    |
+  +====================+========+==================================================+
+  | ``response``       |  hash  | The details of the creation, if success.         |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>id``            | int    | Mapping id.                                      |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>httpMethod``    | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>route``         | string | API route.                                       |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>capability``    | string | Capability name                                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>lastUpdated``   | string |                                                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``alerts``         | array  | A collection of alert messages.                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>level``         | string | Success, info, warning or error.                 |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>text``          | string | Alert message.                                   |
+  +--------------------+--------+--------------------------------------------------+
+
+
+  **Response Example** ::
+
+    {
+        "response":{
+              "id": "6",
+              "httpMethod": "POST",
+              "route": "/api/*/cdns",
+              "capability": "cdn-write",
+              "lastUpdated": "2017-04-02 08:22:43"
+        },
+        "alerts":[
+            {
+                "level": "success",
+                "text": "API-capability mapping was created."
+            }
+        ]
+    }
+
+|
+
+**PUT /api/1.2/api_capabilities/{:id}**
+
+  Edit an API-capability mapping.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Route Parameters**
+
+  +-------------------+----------+--------+---------------------------------------+
+  | Name              | Required | Type   |           Description                 |
+  +===================+==========+========+=======================================+
+  |   ``id``          |   yes    | string | Mapping id.                           |
+  +-------------------+----------+--------+---------------------------------------+
+
+  **Request Properties**
+
+  +-------------------+--------+--------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                    |
+  +===================+========+==================================================+
+  | ``httpMethod``    | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +-------------------+--------+--------------------------------------------------+
+  | ``route``         | string | API route.                                       |
+  +-------------------+--------+--------------------------------------------------+
+  | ``capability``    | string | Capability name                                  |
+  +-------------------+--------+--------------------------------------------------+
+
+
+  **Request Example** ::
+
+    {
+        "httpMethod": "GET",
+        "route": "/api/*/cdns",
+        "capability": "cdn-read"
+    }
+
+  **Response Properties**
+
+  +--------------------+--------+--------------------------------------------------+
+  |    Parameter       |  Type  |                   Description                    |
+  +====================+========+==================================================+
+  | ``response``       |  hash  | The details of the creation, if success.         |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>id``            | int    | Mapping id.                                      |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>httpMethod``    | enum   | One of: 'GET', 'POST', 'PUT', 'PATCH', 'DELETE'. |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>route``         | string | API route.                                       |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>capability``    | string | Capability name                                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>lastUpdated``   | string |                                                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``alerts``         | array  | A collection of alert messages.                  |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>level``         | string | Success, info, warning or error.                 |
+  +--------------------+--------+--------------------------------------------------+
+  | ``>text``          | string | Alert message.                                   |
+  +--------------------+--------+--------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+        "response":{
+              "id": "6",
+              "httpMethod": "GET",
+              "route": "/api/*/cdns",
+              "capability": "cdn-read",
+              "lastUpdated": "2017-04-02 08:22:43"
+        },
+        "alerts":[
+            {
+                "level": "success",
+                "text": "API-capability mapping was updated."
+            }
+        ]
+    }
+
+|
+
+**DELETE /api/1.2/api_capabilities/{:id}**
+
+  Delete a capability.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Route Parameters**
+
+  +-------------------+----------+--------+---------------------------------------+
+  | Name              | Required | Type   |           Description                 |
+  +===================+==========+========+=======================================+
+  |   ``id``          |   yes    | string | Mapping id.                           |
+  +-------------------+----------+--------+---------------------------------------+
+
+  **Response Properties**
+
+  +-----------------+----------+------------------------------------------------+
+  |  Parameter      |  Type    |           Description                          |
+  +=================+==========+================================================+
+  |  ``alerts``     |  array   |  A collection of alert messages.               |
+  +-----------------+----------+------------------------------------------------+
+  |  ``>level``     |  string  |  success, info, warning or error.              |
+  +-----------------+----------+------------------------------------------------+
+  |  ``>text``      |  string  |  Alert message.                                |
+  +-----------------+----------+------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+          "alerts": [
+                    {
+                            "level": "success",
+                            "text": "API-capability mapping deleted."
+                    }
+            ],
+    }
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup.txt b/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup.txt
index 391c278..1831f49 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup.txt
@@ -234,6 +234,61 @@
 
 |
 
+**GET /api/1.2/cachegroups/:id/unassigned_parameters**
+
+  Retrieves all parameters NOT assigned to the cache group.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +------------------+----------+-----------------------+
+  |       Name       | Required | Description           |
+  +==================+==========+=======================+
+  | ``id``           | yes      | Cache group id        |
+  +------------------+----------+-----------------------+
+
+  **Response Properties**
+
+  +------------------+---------+--------------------------------------------------------------------------------+
+  |    Parameter     |  Type   |                    Description                                                 |
+  +==================+=========+================================================================================+
+  | ``last_updated`` | string  | The Time / Date this server entry was last updated                             |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``secure``       | boolean | When true, the parameter is accessible only by admin users. Defaults to false. |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``value``        | string  | The parameter value, only visible to admin if secure is true                   |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``name``         | string  | The parameter name                                                             |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``config_file``  | string  | The parameter config_file                                                      |
+  +------------------+---------+--------------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "last_updated": "2012-09-17 21:41:22",
+           "secure": false,
+           "value": "0,1,2,3,4,5,6",
+           "name": "Drive_Letters",
+           "config_file": "storage.config"
+        },
+        {
+           "last_updated": "2012-09-17 21:41:22",
+           "secure": true,
+           "value": "STRING __HOSTNAME__",
+           "name": "CONFIG proxy.config.proxy_name",
+           "config_file": "records.config"
+        }
+     ],
+    }
+
+|
+
 **GET /api/1.2/cachegroup/:parameter_id/parameter**
 
   Authentication Required: Yes
@@ -391,7 +446,7 @@
   +---------------------------------+----------+-------------------------------------------------------------------+
   | ``secondaryParentCachegroup``   | no       | Name of Secondary Parent Cache Group entry.                       |
   +---------------------------------+----------+-------------------------------------------------------------------+
-  | ``typeName``                    | yes      | The type of Cache Group entry, "EDGE_LOC", "MID_LOC" or "ORG_LOC" |
+  | ``typeId``                      | yes      | The type of Cache Group entry, "EDGE_LOC", "MID_LOC" or "ORG_LOC" |
   +---------------------------------+----------+-------------------------------------------------------------------+
 
   **Request Example** ::
@@ -402,7 +457,7 @@
         "latitude": 12,
         "longitude": 45,
         "parentCachegroup": "cache_group_mid",
-        "typeName": "EDGE_LOC"
+        "typeId": 6
     }
 
   **Response Properties**
@@ -636,7 +691,9 @@
   +==============+=========+===============================================+
   | action       | string  | queue or dequeue                              |
   +--------------+---------+-----------------------------------------------+
-  | cdn          | string  | cdn name                                      |
+  | cdn          | string  | cdn name or cdn ID is required                |
+  +--------------+---------+-----------------------------------------------+
+  | cdnId        | string  | cdn ID or cdn name is required                |
   +--------------+---------+-----------------------------------------------+
 
   **Response Properties**
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup_parameter.txt b/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup_parameter.txt
new file mode 100644
index 0000000..1872c51
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/cachegroup_parameter.txt
@@ -0,0 +1,177 @@
+..
+..
+.. 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-v12-cachegroupparameters:
+
+
+Cache Group parameters
+======================
+
+.. _to-api-v12-cachegroupparameters-route:
+
+/api/1.2/cachegroupparameters
++++++++++++++++++++++++++++++
+
+**POST /api/1.2/cachegroupparameters**
+
+	Assign parameter(s) to cache group(s).
+
+	Authentication Required: Yes
+
+	Role(s) Required:  Admin or Operations
+
+	**Request Properties**
+
+	Two formats are acceptable.
+
+	Single cachegroup-parameter format:
+
+	+------------------+----------+----------------------------------------------------+
+	| Parameter        | Required | Description                                        |
+	+==================+==========+====================================================+
+	| ``cacheGroupId`` | yes      | cache group id.                                    |
+	+------------------+----------+----------------------------------------------------+
+	| ``parameterId``  | yes      | parameter id.                                      |
+	+------------------+----------+----------------------------------------------------+
+
+	Profile-parameter array format:
+
+	+-----------------------+----------+----------------------------------------------------+
+	| Parameter             | Required | Description                                        |
+	+=======================+==========+====================================================+
+	|                       | yes      | cachegroup-parameter array.                        |
+	+-----------------------+----------+----------------------------------------------------+
+	| ``>cacheGroupId``     | yes      | cache group id.                                    |
+	+-----------------------+----------+----------------------------------------------------+
+	| ``>parameterId``      | yes      | parameter id.                                      |
+	+-----------------------+----------+----------------------------------------------------+
+
+  **Request Example** ::
+
+    Single cachegroup-parameter format:
+
+    {
+      "cacheGroupId": 2,
+      "parameterId": 6
+    }
+
+    Cachegroup-parameter array format:
+
+    [
+        {
+          "cacheGroupId": 2,
+          "parameterId": 6
+        },
+        {
+          "cacheGroupId": 2,
+          "parameterId": 7
+        },
+        {
+          "cacheGroupId": 3,
+          "parameterId": 6
+        }
+    ]
+
+ 	**Response Properties**
+
+	+-------------------+---------+-----------------------------------------------------+
+	|  Parameter        |  Type   |           Description                               |
+	+===================+=========+=====================================================+
+	| ``response``      | array   | Cache group-parameter associations.                 |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``>cacheGroupId`` | string  | Cache Group id.                                     |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``>parameterId``  | string  | Parameter id.                                       |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``alerts``        | array   | A collection of alert messages.                     |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``>level``        | string  | success, info, warning or error.                    |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``>text``         | string  | Alert message.                                      |
+	+-------------------+---------+-----------------------------------------------------+
+	| ``version``       | string  |                                                     |
+	+-------------------+---------+-----------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response":[
+        {
+          "cacheGroupId": "2",
+          "parameterId": "6"
+        },
+        {
+          "cacheGroupId": "2",
+          "parameterId": "7"
+        },
+        {
+          "cacheGroupId": "3",
+          "parameterId": "6"
+        }
+      ]
+      "alerts":[
+        {
+          "level": "success",
+          "text": "Cache group parameter associations were created."
+        }
+      ]
+    }
+
+|
+
+**DELETE /api/1.2/cachegroupparameters/{:cachegroup_id}/{:parameter_id}**
+
+    Delete a cache group parameter association.
+
+	Authentication Required: Yes
+
+	Role(s) Required:  Admin or Operations
+
+	**Request Route Parameters**
+
+	+------------------+----------+----------------------------------------------------+
+	| Name             | Required | Description                                        |
+	+==================+==========+====================================================+
+	| ``cachegroup_id``| yes      | cache group id.                                    |
+	+------------------+----------+----------------------------------------------------+
+	| ``parameter_id`` | yes      | parameter id.                                      |
+	+------------------+----------+----------------------------------------------------+
+
+ 	**Response Properties**
+
+	+-------------------+--------+-----------------------------------------------------+
+	|  Parameter        |  Type  |           Description                               |
+	+===================+========+=====================================================+
+	| ``alerts``        | array  | A collection of alert messages.                     |
+	+-------------------+--------+-----------------------------------------------------+
+	| ``>level``        | string | success, info, warning or error.                    |
+	+-------------------+--------+-----------------------------------------------------+
+	| ``>text``         | string | Alert message.                                      |
+	+-------------------+--------+-----------------------------------------------------+
+	| ``version``       | string |                                                     |
+	+-------------------+--------+-----------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "alerts":[
+        {
+          "level": "success",
+          "text": "Cache group parameter association was deleted."
+        }
+      ]
+    }
+
+|
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/capability.txt b/docs/latest/_sources/development/traffic_ops_api/v12/capability.txt
new file mode 100644
index 0000000..570a811
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/capability.txt
@@ -0,0 +1,271 @@
+..
+..
+.. 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-v12-capability:
+
+Capabilities
+============
+
+.. _to-api-v12-capability-route:
+
+/api/1.2/capabilities
++++++++++++++++++++++
+
+**GET /api/1.2/capabilities**
+
+  Get all capabilities.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Response Properties**
+
+  +-------------------+--------+-------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                   |
+  +===================+========+=================================================+
+  | ``name``          | string | Capability name.                                |
+  +-------------------+--------+-------------------------------------------------+
+  | ``description``   | string | Describing the APIs covered by the capability.  |
+  +-------------------+--------+-------------------------------------------------+
+  | ``lastUpdated``   | string |                                                 |
+  +-------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+           {
+              "name": "cdn-read",
+              "description": "View CDN configuration",
+              "lastUpdated": "2017-04-02 08:22:43"
+           },
+           {
+              "name": "cdn-write",
+              "description": "Create, edit or delete CDN configuration",
+              "lastUpdated": "2017-04-02 08:22:43"
+           }
+        ]
+    }
+
+|
+
+**GET /api/1.2/capabilities/:name**
+
+  Get a capability by name.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-------------+----------+--------+------------------------------------+
+  |    Name     | Required | Type   |          Description               |
+  +=============+==========+========+====================================+
+  |   ``name``  |   yes    | string | Capability name.                   |
+  +-------------+----------+--------+------------------------------------+
+
+  **Response Properties**
+
+  +-------------------+--------+-------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                   |
+  +===================+========+=================================================+
+  | ``name``          | string | Capability name.                                |
+  +-------------------+--------+-------------------------------------------------+
+  | ``description``   | string | Describing the APIs covered by the capability.  |
+  +-------------------+--------+-------------------------------------------------+
+  | ``lastUpdated``   | string |                                                 |
+  +-------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+           {
+              "name": "cdn-read",
+              "description": "View CDN configuration",
+              "lastUpdated": "2017-04-02 08:22:43"
+           }
+        ]
+    }
+
+|
+
+**POST /api/1.2/capabilities**
+
+  Create a capability.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Parameters**
+
+  +-----------------+----------+--------+-------------------------------------------------+
+  |      Name       | Required | Type   |          Description                            |
+  +=================+==========+========+=================================================+
+  |   ``name``      | yes      | string | Capability name.                                |
+  +-----------------+----------+--------+-------------------------------------------------+
+  | ``description`` | yes      | string | Describing the APIs covered by the capability.  |
+  +-----------------+----------+--------+-------------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "name": "cdn-write",
+        "description": "Create, edit or delete CDN configuration"
+    }
+
+  **Response Properties**
+
+  +--------------------+--------+-------------------------------------------------+
+  |    Parameter       |  Type  |                   Description                   |
+  +====================+========+=================================================+
+  | ``response``       |  hash  | The details of the creation, if success.        |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>name``          | string | Capability name.                                |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>description``   | string | Describing the APIs covered by the capability.  |
+  +--------------------+--------+-------------------------------------------------+
+  | ``alerts``         | array  | A collection of alert messages.                 |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>level``         | string | Success, info, warning or error.                |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>text``          | string | Alert message.                                  |
+  +--------------------+--------+-------------------------------------------------+
+
+
+  **Response Example** ::
+
+    {
+        "response":{
+            "name": "cdn-write",
+            "description": "Create, edit or delete CDN configuration"
+        },
+        "alerts":[
+            {
+                "level": "success",
+                "text": "Capability was created."
+            }
+        ]
+    }
+
+|
+
+**PUT /api/1.2/capabilities/{:name}**
+
+  Edit a capability.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Route Parameters**
+
+  +-------------------+----------+------------------------------------------------+
+  | Name              |   Type   |                 Description                    |
+  +===================+==========+================================================+
+  | ``name``          | int      | Capability name.                               |
+  +-------------------+----------+------------------------------------------------+
+
+  **Request Properties**
+
+  +-------------------+--------+-------------------------------------------------+
+  |    Parameter      |  Type  |                   Description                   |
+  +===================+========+=================================================+
+  | ``description``   | string | Describing the APIs covered by the capability.  |
+  +-------------------+--------+-------------------------------------------------+
+
+
+  **Request Example** ::
+
+    {
+        "description": "View CDN configuration"
+    }
+
+  **Response Properties**
+
+  +--------------------+--------+-------------------------------------------------+
+  |    Parameter       |  Type  |                   Description                   |
+  +====================+========+=================================================+
+  | ``response``       |  hash  | The details of the update, if success.          |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>name``          | string | Capability name.                                |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>description``   |  int   | Describing the APIs covered by the capability.  |
+  +--------------------+--------+-------------------------------------------------+
+  | ``alerts``         | array  | A collection of alert messages.                 |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>level``         | string | Success, info, warning or error.                |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>text``          | string | Alert message.                                  |
+  +--------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+        "response":{
+            "name": "cdn-read",
+            "description": "View CDN configuration"
+        },
+        "alerts":[
+            {
+                "level": "success",
+                "text": "Capability was updated."
+            }
+        ]
+    }
+
+|
+
+**DELETE /api/1.2/capabilities/{:name}**
+
+  Delete a capability.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  admin or oper
+
+  **Request Route Parameters**
+
+  +-----------------+----------+------------------------------------------------+
+  | Name            | Required | Description                                    |
+  +=================+==========+================================================+
+  | ``name``        | yes      | Capability name.                               |
+  +-----------------+----------+------------------------------------------------+
+
+  **Response Properties**
+
+  +-----------------+----------+------------------------------------------------+
+  |  Parameter      |  Type    |           Description                          |
+  +=================+==========+================================================+
+  |  ``alerts``     |  array   |  A collection of alert messages.               |
+  +-----------------+----------+------------------------------------------------+
+  |  ``>level``     |  string  |  success, info, warning or error.              |
+  +-----------------+----------+------------------------------------------------+
+  |  ``>text``      |  string  |  Alert message.                                |
+  +-----------------+----------+------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+          "alerts": [
+                    {
+                            "level": "success",
+                            "text": "Capability deleted."
+                    }
+            ],
+    }
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/cdn.txt b/docs/latest/_sources/development/traffic_ops_api/v12/cdn.txt
index d7e3c3c..650b0a9 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/cdn.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/cdn.txt
@@ -38,6 +38,8 @@
   +-------------------+--------+-------------------------------------------------+
   | ``name``          | string | CDN name.                                       |
   +-------------------+--------+-------------------------------------------------+
+  | ``domainName``    | string | TLD of the CDN.                                 |
+  +-------------------+--------+-------------------------------------------------+
   | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
   +-------------------+--------+-------------------------------------------------+
   | ``lastUpdated``   | string |                                                 |
@@ -49,13 +51,15 @@
      "response": [
            {
               "id": "1"
-              "name": "over-the-top",
+              "name": "cdn1",
+              "domainName": "cdn1.foo.com",
               "dnssecEnabled": false,
               "lastUpdated": "2014-10-02 08:22:43"
            },
            {
               "id": "2"
               "name": "cdn2",
+              "domainName": "cdn2.foo.com",
               "dnssecEnabled": true,
               "lastUpdated": "2014-10-02 08:22:43"
            }
@@ -87,6 +91,8 @@
   +-------------------+--------+-------------------------------------------------+
   | ``name``          | string | CDN name.                                       |
   +-------------------+--------+-------------------------------------------------+
+  | ``domainName``    | string | TLD of the CDN.                                 |
+  +-------------------+--------+-------------------------------------------------+
   | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
   +-------------------+--------+-------------------------------------------------+
   | ``lastUpdated``   | string |                                                 |
@@ -99,6 +105,7 @@
            {
               "id": "2"
               "name": "cdn2",
+              "domainName": "cdn2.foo.com",
               "dnssecEnabled": false,
               "lastUpdated": "2014-10-02 08:22:43"
            }
@@ -130,6 +137,8 @@
   +-------------------+--------+-------------------------------------------------+
   | ``name``          | string | CDN name.                                       |
   +-------------------+--------+-------------------------------------------------+
+  | ``domainName``    | string | TLD of the CDN.                                 |
+  +-------------------+--------+-------------------------------------------------+
   | ``dnssecEnabled`` |  bool  | DNSSEC enabled.                                 |
   +-------------------+--------+-------------------------------------------------+
   | ``lastUpdated``   | string |                                                 |
@@ -142,6 +151,7 @@
            {
               "id": "2"
               "name": "cdn2",
+              "domainName": "cdn2.foo.com",
               "dnssecEnabled": false,
               "lastUpdated": "2014-10-02 08:22:43"
            }
@@ -165,16 +175,19 @@
   +===================+========+=================================================+
   | ``name``          | string | CDN name.                                       |
   +-------------------+--------+-------------------------------------------------+
-  | ``dnssecEnabled`` |  int   | Whether dnssec is enabled.                      |
-  |                   |        | - 0: disabled                                   |
-  |                   |        | - 1: enabled                                    |
+  | ``domainName``    | string | TLD of the CDN.                                 |
+  +-------------------+--------+-------------------------------------------------+
+  | ``dnssecEnabled`` |  bool  | Whether dnssec is enabled.                      |
+  |                   |        | - false: disabled                               |
+  |                   |        | - true: enabled                                 |
   +-------------------+--------+-------------------------------------------------+
 
   **Request Example** ::
 
     {
         "name": "cdn_test",
-        "dnssecEnabled": 0
+        "domainName": "cdn3.foo.com",
+        "dnssecEnabled": true
     }
 
   **Response Properties**
@@ -184,12 +197,14 @@
   +====================+========+=================================================+
   | ``response``       |  hash  | The details of the creation, if success.        |
   +--------------------+--------+-------------------------------------------------+
-  | ``>name``          | string | CDN name.                                       |
-  +--------------------+--------+-------------------------------------------------+
   | ``>id``            |  int   | CDN id.                                         |
   +--------------------+--------+-------------------------------------------------+
+  | ``>name``          | string | CDN name.                                       |
+  +--------------------+--------+-------------------------------------------------+
   | ``>dnssecEnabled`` | string | Whether dnssec is enabled.                      |
   +--------------------+--------+-------------------------------------------------+
+  | ``>domainName``    | string | TLD of the CDN.                                 |
+  +--------------------+--------+-------------------------------------------------+
   | ``alerts``         | array  | A collection of alert messages.                 |
   +--------------------+--------+-------------------------------------------------+
   | ``>level``         | string | Success, info, warning or error.                |
@@ -202,9 +217,10 @@
 
     {
         "response":{
-            "name": "cdn_test",
             "id": 3
-            "dnssecEnabled": 0
+            "name": "cdn_test",
+            "domainName": "cdn3.foo.com",
+            "dnssecEnabled": true
         },
         "alerts":[
             {
@@ -239,9 +255,11 @@
   +===================+========+=================================================+
   | ``name``          | string | CDN name.                                       |
   +-------------------+--------+-------------------------------------------------+
-  | ``dnssecEnabled`` | int    | Whether dnssec is enabled.                      |
-  |                   |        | - 0: disabled                                   |
-  |                   |        | - 1: enabled                                    |
+  | ``domainName``    | string | TLD of the CDN.                                 |
+  +-------------------+--------+-------------------------------------------------+
+  | ``dnssecEnabled`` |  bool  | Whether dnssec is enabled.                      |
+  |                   |        | - false: disabled                               |
+  |                   |        | - true: enabled                                 |
   +-------------------+--------+-------------------------------------------------+
 
 
@@ -249,7 +267,8 @@
 
     {
         "name": "cdn_test2",
-        "dnssecEnabled": 0
+        "domainName": "cdn3.foo.com",
+        "dnssecEnabled": false
     }
 
   **Response Properties**
@@ -263,7 +282,9 @@
   +--------------------+--------+-------------------------------------------------+
   | ``>id``            |  int   | CDN id.                                         |
   +--------------------+--------+-------------------------------------------------+
-  | ``>dnssecEnabled`` | string | Whether dnssec is enabled.                      |
+  | ``>domainName``    | string | TLD of the CDN.                                 |
+  +--------------------+--------+-------------------------------------------------+
+  | ``>dnssecEnabled`` |  bool  | Whether dnssec is enabled.                      |
   +--------------------+--------+-------------------------------------------------+
   | ``alerts``         | array  | A collection of alert messages.                 |
   +--------------------+--------+-------------------------------------------------+
@@ -276,9 +297,10 @@
 
     {
         "response":{
+            "id": 3,
             "name": "cdn_test2",
-            "id": 3
-            "dnssecEnabled": 0
+            "domainName": "cdn3.foo.com",
+            "dnssecEnabled": false
         },
         "alerts":[
             {
@@ -331,6 +353,59 @@
 
 |
 
+**POST /api/1.2/cdns/{:id}/queue_update**
+
+  Queue or dequeue updates for all servers assigned to a specific CDN.
+
+  Authentication Required: Yes
+
+  Role(s) Required: admin or oper
+
+  **Request Route Parameters**
+
+  +-----------------+----------+----------------------+
+  | Name            | Required | Description          |
+  +=================+==========+======================+
+  | id              | yes      | the cdn id.          |
+  +-----------------+----------+----------------------+
+
+  **Request Properties**
+
+  +--------------+---------+-----------------------------------------------+
+  | Name         | Type    | Description                                   |
+  +==============+=========+===============================================+
+  | action       | string  | queue or dequeue                              |
+  +--------------+---------+-----------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "action": "queue"
+    }
+
+
+  **Response Properties**
+
+  +-----------------+---------+----------------------------------------------------+
+  | Name            | Type    | Description                                        |
+  +=================+=========+====================================================+
+  | action          | string  | The action processed, queue or dequeue.            |
+  +-----------------+---------+----------------------------------------------------+
+  | cdnId           | integer | cdn id                                             |
+  +-----------------+---------+----------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response": {
+            "action": "queue",
+            "cdn": 1
+        }
+    }
+
+|
+
+
 Health
 ++++++
 
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/changelog.txt b/docs/latest/_sources/development/traffic_ops_api/v12/changelog.txt
index 5cedbe0..ff0d72d 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/changelog.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/changelog.txt
@@ -24,12 +24,22 @@
 /api/1.2/logs
 +++++++++++++
 
-**GET /api/1.2/logs.json**
+**GET /api/1.2/logs**
 
   Authentication Required: Yes
 
   Role(s) Required: None
 
+  **Request Query Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``days``        | no       | The number of days of change logs to return.      |
+  +-----------------+----------+---------------------------------------------------+
+  | ``limit``       | no       | The number of rows to limit the response to.      |
+  +-----------------+----------+---------------------------------------------------+
+
   **Response Properties**
 
   +-----------------+--------+--------------------------------------------------------------------------+
@@ -73,7 +83,7 @@
 
 |
 
-**GET /api/1.2/logs/:days/days.json**
+**GET /api/1.2/logs/:days/days**
 
   Authentication Required: Yes
 
@@ -130,7 +140,7 @@
 
 |
 
-**GET /api/1.2/logs/newcount.json**
+**GET /api/1.2/logs/newcount**
 
   Authentication Required: Yes
 
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/configfiles-ats.txt b/docs/latest/_sources/development/traffic_ops_api/v12/configfiles-ats.txt
new file mode 100644
index 0000000..1697a5a
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/configfiles-ats.txt
@@ -0,0 +1,212 @@
+.. 
+.. 
+.. 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-v12-configfiles-ats:
+
+Config Files and Config File Metadata
+===
+
+.. _to-api-v12-configfiles-ats-route:
+
+/api/1.2/servers/:hostname/configfiles/ats
+/api/1.2/servers/:host_id/configfiles/ats
++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats**
+**GET /api/1.2/servers/:host_id/configfiles/ats**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  +======================================================================================================+
+  |                                        Info Section                                                  |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``profileId``     | string | The ID of the profile assigned to the cache.                            |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``profileName``   | string | The name of the profile assigned to the cache.                          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toRevProxyUrl`` | string | The configured reverse proxy cache for configfile requests.             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toURL``         | string | The configured URL for Traffic Ops.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverIpv4``    | string | The configured IP address of the cache.                                 |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverName``    | string | The cache's short form hostname.                                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverId``      | string | The cache's Traffic Ops ID.                                             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnId``         | string | The ID of the cache's assigned CDN.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnName``       | string | The name of the cache's assigned CDN.                                   |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` | string | The configured port of the server's used by ATS.                        |
+  +======================================================================================================+
+  |                                    configFiles Section                                               |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``fnameOnDisk``   | string | The filename of the configuration file as stored on the cache.          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``location``      | string | The directory location of the configuration file as stored on the cache.|
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``apiUri``        | string | The path to generate the configuration file from Traffic Ops.           |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``scope``         | string | The scope of the configuration file.                                    |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  
+
+  **Response Example** ::
+
+  {
+    "info": {
+      "profileId": 278,
+      "toRevProxyUrl": "https://to.example.com:81",
+      "toUrl": "https://to.example.com/",
+      "serverIpv4": "192.168.1.5",
+      "serverTcpPort": 80,
+      "serverName": "cache-ats-01",
+      "cdnId": 1,
+      "cdnName": "CDN_1",
+      "serverId": 21,
+      "profileName": "EDGE_CDN_1_EXAMPLE"
+    },
+    "configFiles": [
+      {
+        "fnameOnDisk": "remap.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/profiles/EDGE_CDN_1_EXAMPLE/configfiles/ats/remap.config",
+        "scope": "profiles"
+      },
+      {
+        "fnameOnDisk": "ssl_multicert.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/cdns/CDN_1/configfiles/ats/ssl_multicert.config",
+        "scope": "cdns"
+      },
+      {
+        "fnameOnDisk": "parent.config",
+        "location": "/opt/trafficserver/etc/trafficserver",
+        "apiUri": "/api/1.2/servers/cache-ats-01/configfiles/ats/parent.config"
+      }
+    ]
+  }
+
+
+/api/1.2/servers/:hostname/configfiles/ats/:configfile
+/api/1.2/servers/:host_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats/:configfile**
+**GET /api/1.2/servers/:host_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the profiles route."
+      }
+    ]
+  }
+
+
+/api/1.2/profiles/:profile_name/configfiles/ats/:configfile
+/api/1.2/profiles/:profile_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/profiles/:profile_name/configfiles/ats/:configfile**
+**GET /api/1.2/profiles/:profile_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the cdns route."
+      }
+    ]
+  }
+
+
+/api/1.2/cdns/:cdn_name/configfiles/ats/:configfile
+/api/1.2/cdns/:cdn_id/configfiles/ats/:configfile
++++++++++++++
+
+**GET /api/1.2/cdns/:cdn_name/configfiles/ats/:configfile**
+**GET /api/1.2/cdns/:cdn_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+  {
+    "alerts": [
+      {
+        "level": "error",
+        "text": "Error - incorrect file scope for route used.  Please use the servers route."
+      }
+    ]
+  }
+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/configfiles_ats.txt b/docs/latest/_sources/development/traffic_ops_api/v12/configfiles_ats.txt
new file mode 100644
index 0000000..3bbaa4e
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/configfiles_ats.txt
@@ -0,0 +1,200 @@
+.. 
+.. 
+.. 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-v12-configfiles_ats:
+
+Config Files and Config File Metadata
+===
+
+.. _to-api-v12-configfiles_ats-route:
+
+/api/1.2/servers/:hostname/configfiles/ats
+++++++++++++++++++++++++++++++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats**
+**GET /api/1.2/servers/:host_id/configfiles/ats**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  +======================================================================================================+
+  |                                        Info Section                                                  |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``profileId``     |  int   | The ID of the profile assigned to the cache.                            |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``profileName``   | string | The name of the profile assigned to the cache.                          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toRevProxyUrl`` | string | The configured reverse proxy cache for configfile requests.             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``toURL``         | string | The configured URL for Traffic Ops.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverIpv4``    | string | The configured IP address of the cache.                                 |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverName``    | string | The cache's short form hostname.                                        |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverId``      |  int   | The cache's Traffic Ops ID.                                             |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnId``         |  int   | The ID of the cache's assigned CDN.                                     |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``cdnName``       | string | The name of the cache's assigned CDN.                                   |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``serverTcpPort`` |  int   | The configured port of the server's used by ATS.                        |
+  +======================================================================================================+
+  |                                    configFiles Section                                               |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter      |  Type  |                               Description                               |
+  +===================+========+=========================================================================+
+  | ``fnameOnDisk``   | string | The filename of the configuration file as stored on the cache.          |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``location``      | string | The directory location of the configuration file as stored on the cache.|
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``apiUri``        | string | The path to generate the configuration file from Traffic Ops.           |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  | ``scope``         | string | The scope of the configuration file.                                    |
+  +-------------------+--------+-------------------------------------------------------------------------+
+  
+
+  **Response Example** ::
+
+    {
+      "info": {
+        "profileId": 278,
+        "toRevProxyUrl": "https://to.example.com:81",
+        "toUrl": "https://to.example.com/",
+        "serverIpv4": "192.168.1.5",
+        "serverTcpPort": 80,
+        "serverName": "cache-ats-01",
+        "cdnId": 1,
+        "cdnName": "CDN_1",
+        "serverId": 21,
+        "profileName": "EDGE_CDN_1_EXAMPLE"
+      },
+      "configFiles": [
+        {
+          "fnameOnDisk": "remap.config",
+          "location": "/opt/trafficserver/etc/trafficserver",
+          "apiUri": "/api/1.2/profiles/EDGE_CDN_1_EXAMPLE/configfiles/ats/remap.config",
+          "scope": "profiles"
+        },
+        {
+          "fnameOnDisk": "ssl_multicert.config",
+          "location": "/opt/trafficserver/etc/trafficserver",
+          "apiUri": "/api/1.2/cdns/CDN_1/configfiles/ats/ssl_multicert.config",
+          "scope": "cdns"
+        },
+        {
+          "fnameOnDisk": "parent.config",
+          "location": "/opt/trafficserver/etc/trafficserver",
+          "apiUri": "/api/1.2/servers/cache-ats-01/configfiles/ats/parent.config"
+        }
+      ]
+    }
+
+
+/api/1.2/servers/:hostname/configfiles/ats/:configfile
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+**GET /api/1.2/servers/:hostname/configfiles/ats/:configfile**
+**GET /api/1.2/servers/:host_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+    {
+      "alerts": [
+        {
+          "level": "error",
+          "text": "Error - incorrect file scope for route used.  Please use the profiles route."
+        }
+      ]
+    }
+
+
+/api/1.2/profiles/:profile_name/configfiles/ats/:configfile
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+**GET /api/1.2/profiles/:profile_name/configfiles/ats/:configfile**
+**GET /api/1.2/profiles/:profile_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+    {
+      "alerts": [
+        {
+          "level": "error",
+          "text": "Error - incorrect file scope for route used.  Please use the cdns route."
+        }
+      ]
+    }
+
+
+/api/1.2/cdns/:cdn_name/configfiles/ats/:configfile
++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+**GET /api/1.2/cdns/:cdn_name/configfiles/ats/:configfile**
+**GET /api/1.2/cdns/:cdn_id/configfiles/ats/:configfile**
+
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operator
+
+  **Request Query Parameters**
+
+  **Response Properties**
+
+  Returns the requested configuration file for download.  If scope used is incorrect for the config file requested, returns a 404 with the correct scope.
+
+  **Response Example** ::
+
+    {
+      "alerts": [
+        {
+          "level": "error",
+          "text": "Error - incorrect file scope for route used.  Please use the servers route."
+        }
+      ]
+    }
+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice.txt b/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice.txt
index c1100dd..ecb17bc 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice.txt
@@ -26,7 +26,7 @@
 
 **GET /api/1.2/deliveryservices**
 
-  Retrieves all delivery services. See also `Using Traffic Ops - Delivery Service <http://trafficcontrol.apache.org/docs/latest/admin/traffic_ops_using.html#delivery-service>`_.
+  Retrieves all delivery services (if admin or ops) or all delivery services assigned to user. See also `Using Traffic Ops - Delivery Service <http://trafficcontrol.apache.org/docs/latest/admin/traffic_ops_using.html#delivery-service>`_.
 
   Authentication Required: Yes
 
@@ -39,8 +39,12 @@
   +=================+==========+===================================================+
   | ``cdn``         | no       | Filter delivery services by CDN ID.               |
   +-----------------+----------+---------------------------------------------------+
+  | ``profile``     | no       | Filter delivery services by Profile ID.           |
+  +-----------------+----------+---------------------------------------------------+
   | ``type``        | no       | Filter delivery services by Type ID.              |
   +-----------------+----------+---------------------------------------------------+
+  | ``logsEnabled`` | no       | Filter by logs enabled (true|false).              |
+  +-----------------+----------+---------------------------------------------------+
 
 
   **Response Properties**
@@ -52,9 +56,9 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``cacheurl``             | string | Cache URL rule to apply to this delivery service.                                                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``ccrDnsTtl``            | string | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
+  | ``ccrDnsTtl``            |  int   | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``cdnId``                | string | Id of the CDN to which the delivery service belongs to.                                                                              |
+  | ``cdnId``                |  int   | Id of the CDN to which the delivery service belongs to.                                                                              |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``cdnName``              | string | Name of the CDN to which the delivery service belongs to.                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -62,21 +66,25 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``displayName``          | string | The display name of the delivery service.                                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassCname``       | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``dnsBypassIp``          | string | The IPv4 IP to use for bypass on a DNS deliveryservice  - bypass starts when serving more than the                                   |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``dnsBypassIp6``         | string | The IPv6 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the                                    |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``dnsBypassTtl``         | string | The TTL of the DNS bypass response.                                                                                                  |
+  | ``dnsBypassTtl``         |  int   | The TTL of the DNS bypass response.                                                                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``dscp``                 | string | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
+  | ``dscp``                 |  int   | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``edgeHeaderRewrite``    | string | The EDGE header rewrite actions to perform.                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``exampleURLs``          | array  | Entry points into the CDN for this deliveryservice.                                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``geoLimitRedirectUrl``  | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``geoLimit``             | string | - 0: None - no limitations                                                                                                           |
+  | ``geoLimit``             |  int   | - 0: None - no limitations                                                                                                           |
   |                          |        | - 1: Only route on CZF file hit                                                                                                      |
   |                          |        | - 2: Only route on CZF hit or when from USA                                                                                          |
   |                          |        |                                                                                                                                      |
@@ -85,23 +93,23 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``geoLimitCountries``    | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``geoProvider``          | string |                                                                                                                                      |
+  | ``geoProvider``          |  int   |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``globalMaxMbps``        | string | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
+  | ``globalMaxMbps``        |  int   | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
   |                          |        | dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for HTTP deliveryservices.                                           |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``globalMaxTps``         | string | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
+  | ``globalMaxTps``         |  int   | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
   |                          |        | traffic will be sent to the dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for                                      |
   |                          |        | HTTP deliveryservices                                                                                                                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``httpBypassFqdn``       | string | The HTTP destination to use for bypass on an HTTP deliveryservice - bypass starts when serving more than the                         |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``id``                   | string | The deliveryservice id (database row number).                                                                                        |
+  | ``id``                   |  int   | The deliveryservice id (database row number).                                                                                        |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``infoUrl``              | string | Use this to add a URL that points to more information about that deliveryservice.                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``initialDispersion``    | string |                                                                                                                                      |
+  | ``initialDispersion``    |  int   |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``ipv6RoutingEnabled``   |  bool  | false: send IPv4 address of Traffic Router to client on HTTP type del.                                                               |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -109,31 +117,27 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``logsEnabled``          |  bool  |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``longDesc``             | string | Description field 1.                                                                                                                 |
+  | ``longDesc``             | string | Description field.                                                                                                                   |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``longDesc1``            | string | Description field 2.                                                                                                                 |
+  | ``longDesc1``            | string | Description field 1.                                                                                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``longDesc2``            | string | Description field 2.                                                                                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``>>type``               | string | The type of MatchList (one of :ref:to-api-v11-types use_in_table='regex').                                                           |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``>>setNumber``          | string | The set Number of the matchList.                                                                                                     |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``>>pattern``            | string | The regexp for the matchList.                                                                                                        |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``maxDnsAnswers``        | string | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
+  | ``maxDnsAnswers``        |  int   | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
   |                          |        | available).                                                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``midHeaderRewrite``     | string | The MID header rewrite actions to perform.                                                                                           |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``missLat``              | string | The latitude to use when the client cannot be found in the CZF or the Geo lookup.                                                    |
+  | ``missLat``              | float  | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                 |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. 39.7391500 or null                                                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``missLong``             | string | The longitude to use when the client cannot be found in the CZF or the Geo lookup.                                                   |
+  | ``missLong``             | float  | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. -104.9847000 or null                                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``multiSiteOrigin``      |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``multiSiteOriginAlgor`` |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``orgServerFqdn``        | string | The origin server base URL (FQDN when used in this instance, includes the                                                            |
   |                          |        | protocol (http:// or https://) for use in retrieving content from the origin server.                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -141,19 +145,19 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``profileDescription``   | string | The description of the Traffic Router Profile with which this deliveryservice is associated.                                         |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``profileId``            | string | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
+  | ``profileId``            |  int   | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``profileName``          | string | The name of the Traffic Router Profile with which this deliveryservice is associated.                                                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``protocol``             | string | - 0: serve with http:// at EDGE                                                                                                      |
+  | ``protocol``             |  int   | - 0: serve with http:// at EDGE                                                                                                      |
   |                          |        | - 1: serve with https:// at EDGE                                                                                                     |
   |                          |        | - 2: serve with both http:// and https:// at EDGE                                                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``qstringIgnore``        | string | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
+  | ``qstringIgnore``        |  int   | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
   |                          |        | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                                                       |
   |                          |        | - 2: drop query string at edge, and do not use it in the cache-key.                                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``rangeRequestHandling`` | string | How to treat range requests:                                                                                                         |
+  | ``rangeRequestHandling`` |  int   | How to treat range requests:                                                                                                         |
   |                          |        |                                                                                                                                      |
   |                          |        | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT)                      |
   |                          |        | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/reference/plugins/background_fetch.en.html>`_ plugin. |
@@ -168,15 +172,17 @@
   | ``signed``               |  bool  | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.                                       |
   |                          |        | - true: token based auth is enabled for this deliveryservice.                                                                        |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``sslKeyVersion``        | string |                                                                                                                                      |
+  | ``sslKeyVersion``        |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenant``               | string | Owning tenant name                                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenantId``             | int    | Owning tenant ID                                                                                                                     |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trRequestHeaders``     | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trResponseHeaders``    | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``type``                 | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``typeId``               | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
+  | ``typeId``               |  int   | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``xmlId``                | string | Unique string that describes this deliveryservice.                                                                                   |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -199,7 +205,7 @@
             "dnsBypassTtl": "30",
             "dscp": "40",
             "edgeHeaderRewrite": null,
-            "exampleURLs": [
+      		"exampleURLs": [
                 "http://edge.foo-ds.foo.bar.net"
             ],
             "geoLimit": "0",
@@ -218,19 +224,11 @@
             "longDesc": "",
             "longDesc1": "",
             "longDesc2": "",
-            "matchList": [
-                {
-                    "pattern": ".*\\.foo-ds\\..*",
-                    "setNumber": "0",
-                    "type": "HOST_REGEXP"
-                }
-            ],
             "maxDnsAnswers": "0",
             "midHeaderRewrite": null,
-            "missLat": "41.881944",
-            "missLong": "-87.627778",
+            "missLat": "39.7391500",
+            "missLong": "-104.9847000",
             "multiSiteOrigin": false,
-            "multiSiteOriginAlgorithm": null,
             "orgServerFqdn": "http://baz.boo.net",
             "originShield": null,
             "profileDescription": "Content Router for over-the-top",
@@ -244,6 +242,8 @@
             "remapText": null,
             "signed": false,
             "sslKeyVersion": "0",
+            "tenant": "root",
+            "tenantId": 1,
             "trRequestHeaders": null,
             "trResponseHeaders": "Access-Control-Allow-Origin: *",
             "type": "HTTP",
@@ -260,7 +260,7 @@
 
 **GET /api/1.2/deliveryservices/:id**
 
-  Retrieves a specific delivery service. See also `Using Traffic Ops - Delivery Service <http://trafficcontrol.apache.org/docs/latest/admin/traffic_ops_using.html#delivery-service>`_.
+  Retrieves a specific delivery service. If not admin / ops, delivery service must be assigned to user. See also `Using Traffic Ops - Delivery Service <http://trafficcontrol.apache.org/docs/latest/admin/traffic_ops_using.html#delivery-service>`_.
 
   Authentication Required: Yes
 
@@ -283,9 +283,9 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``cacheurl``             | string | Cache URL rule to apply to this delivery service.                                                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``ccrDnsTtl``            | string | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
+  | ``ccrDnsTtl``            |  int   | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``cdnId``                | string | Id of the CDN to which the delivery service belongs to.                                                                              |
+  | ``cdnId``                |  int   | Id of the CDN to which the delivery service belongs to.                                                                              |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``cdnName``              | string | Name of the CDN to which the delivery service belongs to.                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -293,23 +293,25 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``displayName``          | string | The display name of the delivery service.                                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassCname``       | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``dnsBypassIp``          | string | The IPv4 IP to use for bypass on a DNS deliveryservice  - bypass starts when serving more than the                                   |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``dnsBypassIp6``         | string | The IPv6 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the                                    |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``dnsBypassTtl``         | string | The TTL of the DNS bypass response.                                                                                                  |
+  | ``dnsBypassTtl``         |  int   | The TTL of the DNS bypass response.                                                                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``dscp``                 | string | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
+  | ``dscp``                 |  int   | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``edgeHeaderRewrite``    | string | The EDGE header rewrite actions to perform.                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``exampleURLs``          |  array | Entry points into the CDN for this deliveryservice.                                                                                  |
+  | ``exampleURLs``          | array  | Entry points into the CDN for this deliveryservice.                                                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``geoLimitRedirectUrl``  | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``geoLimit``             | string | - 0: None - no limitations                                                                                                           |
+  | ``geoLimit``             |  int   | - 0: None - no limitations                                                                                                           |
   |                          |        | - 1: Only route on CZF file hit                                                                                                      |
   |                          |        | - 2: Only route on CZF hit or when from USA                                                                                          |
   |                          |        |                                                                                                                                      |
@@ -318,23 +320,23 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``geoLimitCountries``    | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``geoProvider``          | string |                                                                                                                                      |
+  | ``geoProvider``          |  int   |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``globalMaxMbps``        | string | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
+  | ``globalMaxMbps``        |  int   | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
   |                          |        | dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for HTTP deliveryservices.                                           |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``globalMaxTps``         | string | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
+  | ``globalMaxTps``         |  int   | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
   |                          |        | traffic will be sent to the dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for                                      |
   |                          |        | HTTP deliveryservices                                                                                                                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``httpBypassFqdn``       | string | The HTTP destination to use for bypass on an HTTP deliveryservice - bypass starts when serving more than the                         |
   |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``id``                   | string | The deliveryservice id (database row number).                                                                                        |
+  | ``id``                   |  int   | The deliveryservice id (database row number).                                                                                        |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``infoUrl``              | string | Use this to add a URL that points to more information about that deliveryservice.                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``initialDispersion``    | string |                                                                                                                                      |
+  | ``initialDispersion``    |  int   |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``ipv6RoutingEnabled``   |  bool  | false: send IPv4 address of Traffic Router to client on HTTP type del.                                                               |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -342,9 +344,9 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``logsEnabled``          |  bool  |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``longDesc``             | string | Description field 1.                                                                                                                 |
+  | ``longDesc``             | string | Description field.                                                                                                                   |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``longDesc1``            | string | Description field 2.                                                                                                                 |
+  | ``longDesc1``            | string | Description field 1.                                                                                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``longDesc2``            | string | Description field 2.                                                                                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -356,19 +358,21 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``>>pattern``            | string | The regexp for the matchList.                                                                                                        |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``maxDnsAnswers``        | string | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
+  | ``maxDnsAnswers``        |  int   | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
   |                          |        | available).                                                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``midHeaderRewrite``     | string | The MID header rewrite actions to perform.                                                                                           |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``missLat``              | string | The latitude to use when the client cannot be found in the CZF or the Geo lookup.                                                    |
+  | ``missLat``              | float  | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                 |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. 39.7391500 or null                                                                                                            |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``missLong``             | string | The longitude to use when the client cannot be found in the CZF or the Geo lookup.                                                   |
+  | ``missLong``             | float  | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. -104.9847000 or null                                                                                                          |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``multiSiteOrigin``      |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``multiSiteOriginAlgor`` |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``orgServerFqdn``        | string | The origin server base URL (FQDN when used in this instance, includes the                                                            |
   |                          |        | protocol (http:// or https://) for use in retrieving content from the origin server.                                                 |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -376,19 +380,19 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``profileDescription``   | string | The description of the Traffic Router Profile with which this deliveryservice is associated.                                         |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``profileId``            | string | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
+  | ``profileId``            |  int   | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``profileName``          | string | The name of the Traffic Router Profile with which this deliveryservice is associated.                                                |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``protocol``             | string | - 0: serve with http:// at EDGE                                                                                                      |
+  | ``protocol``             |  int   | - 0: serve with http:// at EDGE                                                                                                      |
   |                          |        | - 1: serve with https:// at EDGE                                                                                                     |
   |                          |        | - 2: serve with both http:// and https:// at EDGE                                                                                    |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``qstringIgnore``        | string | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
+  | ``qstringIgnore``        |  int   | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
   |                          |        | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                                                       |
   |                          |        | - 2: drop query string at edge, and do not use it in the cache-key.                                                                  |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``rangeRequestHandling`` | string | How to treat range requests:                                                                                                         |
+  | ``rangeRequestHandling`` |  int   | How to treat range requests:                                                                                                         |
   |                          |        |                                                                                                                                      |
   |                          |        | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT)                      |
   |                          |        | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/reference/plugins/background_fetch.en.html>`_ plugin. |
@@ -403,15 +407,17 @@
   | ``signed``               |  bool  | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.                                       |
   |                          |        | - true: token based auth is enabled for this deliveryservice.                                                                        |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``sslKeyVersion``        | string |                                                                                                                                      |
+  | ``sslKeyVersion``        |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenant``               | string | Owning tenant name                                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenantId``             | int    | Owning tenant ID                                                                                                                     |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trRequestHeaders``     | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trResponseHeaders``    | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``type``                 | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
-  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
-  | ``typeId``               | string | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
+  | ``typeId``               |  int   | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``xmlId``                | string | Unique string that describes this deliveryservice.                                                                                   |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
@@ -462,10 +468,9 @@
             ],
             "maxDnsAnswers": "0",
             "midHeaderRewrite": null,
-            "missLat": "41.881944",
-            "missLong": "-87.627778",
+            "missLat": "39.7391500",
+            "missLong": "-104.9847000",
             "multiSiteOrigin": false,
-            "multiSiteOriginAlgorithm": null,
             "orgServerFqdn": "http://baz.boo.net",
             "originShield": null,
             "profileDescription": "Content Router for over-the-top",
@@ -479,6 +484,8 @@
             "remapText": null,
             "signed": false,
             "sslKeyVersion": "0",
+            "tenant": "root",
+            "tenantId": 1,
             "trRequestHeaders": null,
             "trResponseHeaders": "Access-Control-Allow-Origin: *",
             "type": "HTTP",
@@ -492,11 +499,323 @@
 
 **GET /api/1.2/deliveryservices/:id/servers**
 
-  Retrieves properties of CDN Edge servers assigned to a delivery service.
+  Retrieves properties of CDN EDGE or ORG servers assigned to a delivery service.
 
   Authentication Required: Yes
 
-  Role(s) Required: None
+  Role(s) Required: Admin or Operations or delivery service must be assigned to user.
+
+  **Request Route Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``id``          | yes      | Delivery service ID.                              |
+  +-----------------+----------+---------------------------------------------------+
+
+  **Response Properties**
+
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  |     Parameter      |  Type  |                                                Description                                                 |
+  +====================+========+============================================================================================================+
+  | ``cachegroup``     | string | The cache group name (see :ref:`to-api-v11-cachegroup`).                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cachegroupId``   | string | The cache group id.                                                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cdnId``          | string | Id of the CDN to which the server belongs to.                                                              |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cdnName``        | string | Name of the CDN to which the server belongs to.                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``domainName``     | string | The domain name part of the FQDN of the cache.                                                             |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``guid``           | string | An identifier used to uniquely identify the server.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``hostName``       | string | The host name part of the cache.                                                                           |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``httpsPort``      | string | The HTTPS port on which the main application listens (443 in most cases).                                  |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``id``             | string | The server id (database row number).                                                                       |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpAddress``   | string | The IPv4 address of the lights-out-management port.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpGateway``   | string | The IPv4 gateway address of the lights-out-management port.                                                |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpNetmask``   | string | The IPv4 netmask of the lights-out-management port.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloPassword``    | string | The password of the of the lights-out-management user (displays as ****** unless you are an 'admin' user). |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloUsername``    | string | The user name for lights-out-management.                                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``interfaceMtu``   | string | The Maximum Transmission Unit (MTU) to configure for ``interfaceName``.                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``interfaceName``  | string | The network interface name used for serving traffic.                                                       |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ip6Address``     | string | The IPv6 address/netmask for ``interfaceName``.                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ip6Gateway``     | string | The IPv6 gateway for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipAddress``      | string | The IPv4 address for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipGateway``      | string | The IPv4 gateway for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipNetmask``      | string | The IPv4 netmask for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``lastUpdated``    | string | The Time and Date for the last update for this server.                                                     |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpAddress``  | string | The IPv4 address of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpGateway``  | string | The IPv4 gateway of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpNetmask``  | string | The IPv4 netmask of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``offlineReason``  | string | A user-entered reason why the server is in ADMIN_DOWN or OFFLINE status.                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``physLocation``   | string | The physical location name (see :ref:`to-api-v11-phys-loc`).                                               |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``physLocationId`` | string | The physical location id (see :ref:`to-api-v11-phys-loc`).                                                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profile``        | string | The assigned profile name (see :ref:`to-api-v11-profile`).                                                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profileDesc``    | string | The assigned profile description (see :ref:`to-api-v11-profile`).                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profileId``      | string | The assigned profile Id (see :ref:`to-api-v11-profile`).                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``rack``           | string | A string indicating rack location.                                                                         |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``routerHostName`` | string | The human readable name of the router.                                                                     |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``routerPortName`` | string | The human readable name of the router port.                                                                |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``status``         | string | The Status string (See :ref:`to-api-v11-status`).                                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``statusId``       | string | The Status id (See :ref:`to-api-v11-status`).                                                              |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``tcpPort``        | string | The default TCP port on which the main application listens (80 for a cache in most cases).                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``type``           | string | The name of the type of this server (see :ref:`to-api-v11-type`).                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``typeId``         | string | The id of the type of this server (see :ref:`to-api-v11-type`).                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``updPending``     |  bool  |                                                                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+   {
+      "response": [
+          {
+              "cachegroup": "us-il-chicago",
+              "cachegroupId": "3",
+              "cdnId": "3",
+              "cdnName": "CDN-1",
+              "domainName": "chi.kabletown.net",
+              "guid": null,
+              "hostName": "atsec-chi-00",
+              "id": "19",
+              "iloIpAddress": "172.16.2.6",
+              "iloIpGateway": "172.16.2.1",
+              "iloIpNetmask": "255.255.255.0",
+              "iloPassword": "********",
+              "iloUsername": "",
+              "interfaceMtu": "9000",
+              "interfaceName": "bond0",
+              "ip6Address": "2033:D0D0:3300::2:2/64",
+              "ip6Gateway": "2033:D0D0:3300::2:1",
+              "ipAddress": "10.10.2.2",
+              "ipGateway": "10.10.2.1",
+              "ipNetmask": "255.255.255.0",
+              "lastUpdated": "2015-03-08 15:57:32",
+              "mgmtIpAddress": "",
+              "mgmtIpGateway": "",
+              "mgmtIpNetmask": "",
+              "offlineReason": "N/A",
+              "physLocation": "plocation-chi-1",
+              "physLocationId": "9",
+              "profile": "EDGE1_CDN1_421_SSL",
+              "profileDesc": "EDGE1_CDN1_421_SSL profile",
+              "profileId": "12",
+              "rack": "RR 119.02",
+              "routerHostName": "rtr-chi.kabletown.net",
+              "routerPortName": "2",
+              "status": "ONLINE",
+              "statusId": "6",
+              "tcpPort": "80",
+              "httpsPort": "443",
+              "type": "EDGE",
+              "typeId": "3",
+              "updPending": false
+          },
+          {
+          ... more server data
+          }
+        ]
+    }
+
+|
+
+**GET /api/1.2/deliveryservices/:id/servers/unassigned**
+
+  Retrieves properties of CDN EDGE or ORG servers not assigned to a delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations or delivery service must be assigned to user
+
+  **Request Route Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``id``          | yes      | Delivery service ID.                              |
+  +-----------------+----------+---------------------------------------------------+
+
+  **Response Properties**
+
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  |     Parameter      |  Type  |                                                Description                                                 |
+  +====================+========+============================================================================================================+
+  | ``cachegroup``     | string | The cache group name (see :ref:`to-api-v11-cachegroup`).                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cachegroupId``   | string | The cache group id.                                                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cdnId``          | string | Id of the CDN to which the server belongs to.                                                              |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``cdnName``        | string | Name of the CDN to which the server belongs to.                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``domainName``     | string | The domain name part of the FQDN of the cache.                                                             |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``guid``           | string | An identifier used to uniquely identify the server.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``hostName``       | string | The host name part of the cache.                                                                           |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``httpsPort``      | string | The HTTPS port on which the main application listens (443 in most cases).                                  |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``id``             | string | The server id (database row number).                                                                       |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpAddress``   | string | The IPv4 address of the lights-out-management port.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpGateway``   | string | The IPv4 gateway address of the lights-out-management port.                                                |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloIpNetmask``   | string | The IPv4 netmask of the lights-out-management port.                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloPassword``    | string | The password of the of the lights-out-management user (displays as ****** unless you are an 'admin' user). |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``iloUsername``    | string | The user name for lights-out-management.                                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``interfaceMtu``   | string | The Maximum Transmission Unit (MTU) to configure for ``interfaceName``.                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``interfaceName``  | string | The network interface name used for serving traffic.                                                       |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ip6Address``     | string | The IPv6 address/netmask for ``interfaceName``.                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ip6Gateway``     | string | The IPv6 gateway for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipAddress``      | string | The IPv4 address for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipGateway``      | string | The IPv4 gateway for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``ipNetmask``      | string | The IPv4 netmask for ``interfaceName``.                                                                    |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``lastUpdated``    | string | The Time and Date for the last update for this server.                                                     |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpAddress``  | string | The IPv4 address of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpGateway``  | string | The IPv4 gateway of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``mgmtIpNetmask``  | string | The IPv4 netmask of the management port (optional).                                                        |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``offlineReason``  | string | A user-entered reason why the server is in ADMIN_DOWN or OFFLINE status.                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``physLocation``   | string | The physical location name (see :ref:`to-api-v11-phys-loc`).                                               |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``physLocationId`` | string | The physical location id (see :ref:`to-api-v11-phys-loc`).                                                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profile``        | string | The assigned profile name (see :ref:`to-api-v11-profile`).                                                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profileDesc``    | string | The assigned profile description (see :ref:`to-api-v11-profile`).                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``profileId``      | string | The assigned profile Id (see :ref:`to-api-v11-profile`).                                                   |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``rack``           | string | A string indicating rack location.                                                                         |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``routerHostName`` | string | The human readable name of the router.                                                                     |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``routerPortName`` | string | The human readable name of the router port.                                                                |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``status``         | string | The Status string (See :ref:`to-api-v11-status`).                                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``statusId``       | string | The Status id (See :ref:`to-api-v11-status`).                                                              |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``tcpPort``        | string | The default TCP port on which the main application listens (80 for a cache in most cases).                 |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``type``           | string | The name of the type of this server (see :ref:`to-api-v11-type`).                                          |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``typeId``         | string | The id of the type of this server (see :ref:`to-api-v11-type`).                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+  | ``updPending``     |  bool  |                                                                                                            |
+  +--------------------+--------+------------------------------------------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+   {
+      "response": [
+          {
+              "cachegroup": "us-il-chicago",
+              "cachegroupId": "3",
+              "cdnId": "3",
+              "cdnName": "CDN-1",
+              "domainName": "chi.kabletown.net",
+              "guid": null,
+              "hostName": "atsec-chi-00",
+              "id": "19",
+              "iloIpAddress": "172.16.2.6",
+              "iloIpGateway": "172.16.2.1",
+              "iloIpNetmask": "255.255.255.0",
+              "iloPassword": "********",
+              "iloUsername": "",
+              "interfaceMtu": "9000",
+              "interfaceName": "bond0",
+              "ip6Address": "2033:D0D0:3300::2:2/64",
+              "ip6Gateway": "2033:D0D0:3300::2:1",
+              "ipAddress": "10.10.2.2",
+              "ipGateway": "10.10.2.1",
+              "ipNetmask": "255.255.255.0",
+              "lastUpdated": "2015-03-08 15:57:32",
+              "mgmtIpAddress": "",
+              "mgmtIpGateway": "",
+              "mgmtIpNetmask": "",
+              "offlineReason": "N/A",
+              "physLocation": "plocation-chi-1",
+              "physLocationId": "9",
+              "profile": "EDGE1_CDN1_421_SSL",
+              "profileDesc": "EDGE1_CDN1_421_SSL profile",
+              "profileId": "12",
+              "rack": "RR 119.02",
+              "routerHostName": "rtr-chi.kabletown.net",
+              "routerPortName": "2",
+              "status": "ONLINE",
+              "statusId": "6",
+              "tcpPort": "80",
+              "httpsPort": "443",
+              "type": "EDGE",
+              "typeId": "3",
+              "updPending": false
+          },
+          {
+          ... more server data
+          }
+        ]
+    }
+
+|
+
+**GET /api/1.2/deliveryservices/:id/servers/eligible**
+
+  Retrieves properties of CDN EDGE or ORG servers not eligible for assignment to a delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations or delivery service must be assigned to user
 
   **Request Route Parameters**
 
@@ -654,7 +973,7 @@
 
 **GET /api/1.2/deliveryservices/:id/state**
 
-  Retrieves the failover state for a delivery service.
+  Retrieves the failover state for a delivery service. Delivery service must be assigned to user if user is not admin or operations.
 
   Authentication Required: Yes
 
@@ -703,7 +1022,7 @@
 
 **GET /api/1.2/deliveryservices/:id/health**
 
-  Retrieves the health of all locations (cache groups) for a delivery service.
+  Retrieves the health of all locations (cache groups) for a delivery service. Delivery service must be assigned to user if user is not admin or operations.
 
   Authentication Required: Yes
 
@@ -753,7 +1072,7 @@
 
 **GET /api/1.2/deliveryservices/:id/capacity**
 
-  Retrieves the capacity percentages of a delivery service.
+  Retrieves the capacity percentages of a delivery service. Delivery service must be assigned to user if user is not admin or operations.
 
   Authentication Required: Yes
 
@@ -801,7 +1120,7 @@
 
 **GET /api/1.2/deliveryservices/:id/routing**
 
-  Retrieves the routing method percentages of a delivery service.
+  Retrieves the routing method percentages of a delivery service. Delivery service must be assigned to user if user is not admin or operations.
 
   Authentication Required: Yes
 
@@ -860,11 +1179,13 @@
 
 .. _to-api-v12-ds-server:
 
-Server
-++++++
+Delivery Service Server
++++++++++++++++++++++++
 
 **GET /api/1.2/deliveryserviceserver**
 
+  Retrieves delivery service / server assignments.
+
   Authentication Required: Yes
 
   Role(s) Required: None
@@ -912,7 +1233,188 @@
      "limit": 2
     }
 
+**POST /api/1.2/deliveryserviceserver**
 
+  Create one or more delivery service / server assignments.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations or the delivery service is assigned to the user.
+
+  **Request Parameters**
+
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | Name                            | Required | Description                                                       |
+  +=================================+==========+===================================================================+
+  | ``dsId``                        | yes      | The ID of the delivery service.                                   |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | ``servers``                     | yes      | An array of server IDs.                                           |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | ``replace``                     | no       | Replace existing ds/server assignments? (true|false)              |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "dsId": 246,
+        "servers": [ 2, 3, 4, 5, 6 ],
+        "replace": true
+    }
+
+  **Response Properties**
+
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | Parameter                          | Type   | Description                                                       |
+  +====================================+========+===================================================================+
+  | ``dsId``                           | int    | The ID of the delivery service.                                   |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | ``servers``                        | array  | An array of server IDs.                                           |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | ``replace``                        | array  | Existing ds/server assignments replaced? (true|false).            |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+        "alerts": [
+                  {
+                          "level": "success",
+                          "text": "Server assignments complete."
+                  }
+          ],
+        "response": {
+            "dsId" : 246,
+            "servers" : [ 2, 3, 4, 5, 6 ],
+            "replace" : true
+        }
+    }
+
+|
+
+**DELETE /api/1.2/deliveryservice_server/:dsId/:serverId**
+
+  Removes a server (cache) from a delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Oper (if delivery service is not assigned to user)
+
+  **Request Route Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``dsId``        | yes      | Delivery service ID.                              |
+  +-----------------+----------+---------------------------------------------------+
+  | ``serverId``    | yes      | Server (cache) ID.                                |
+  +-----------------+----------+---------------------------------------------------+
+
+   **Response Example** ::
+
+    {
+           "alerts": [
+                     {
+                             "level": "success",
+                             "text": "Server unlinked from delivery service."
+                     }
+             ],
+    }
+
+|
+
+.. _to-api-v12-ds-user:
+
+Delivery Service User
++++++++++++++++++++++
+
+**POST /api/1.2/deliveryservice_user**
+
+  Create one or more user / delivery service assignments.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations
+
+  **Request Parameters**
+
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | Name                            | Required | Description                                                       |
+  +=================================+==========+===================================================================+
+  | ``userId``                      | yes      | The ID of the user.                                               |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | ``deliveryServices``            | yes      | An array of delivery service IDs.                                 |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+  | ``replace``                     | no       | Replace existing user/ds assignments? (true|false).               |
+  +---------------------------------+----------+-------------------------------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "userId": 50,
+        "deliveryServices": [ 23, 34, 45, 56, 67 ],
+        "replace": true
+    }
+
+  **Response Properties**
+
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | Parameter                          | Type   | Description                                                       |
+  +====================================+========+===================================================================+
+  | ``userId``                         | int    | The ID of the user.                                               |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | ``deliveryServices``               | array  | An array of delivery service IDs.                                 |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+  | ``replace``                        | array  | Existing user/ds assignments replaced? (true|false).              |
+  +------------------------------------+--------+-------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+        "alerts": [
+                  {
+                          "level": "success",
+                          "text": "Delivery service assignments complete."
+                  }
+          ],
+        "response": {
+            "userId" : 50,
+            "deliveryServices": [ 23, 34, 45, 56, 67 ],
+            "replace": true
+        }
+    }
+
+|
+
+**DELETE /api/1.2/deliveryservice_user/:dsId/:userId**
+
+  Removes a delivery service from a user.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations
+
+  **Request Route Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``dsId``        | yes      | Delivery service ID.                              |
+  +-----------------+----------+---------------------------------------------------+
+  | ``userId``      | yes      | User ID.                                          |
+  +-----------------+----------+---------------------------------------------------+
+
+   **Response Example** ::
+
+    {
+           "alerts": [
+                     {
+                             "level": "success",
+                             "text": "User and delivery service were unlinked."
+                     }
+             ],
+    }
+
+|
 
 .. _to-api-v12-ds-sslkeys:
 
@@ -921,6 +1423,8 @@
 
 **GET /api/1.2/deliveryservices/xmlId/:xmlid/sslkeys**
 
+  Retrieves ssl keys for a delivery service.
+
   Authentication Required: Yes
 
   Role(s) Required: Admin
@@ -1383,20 +1887,22 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | Parameter              | Required | Description                                                                                             |
   +========================+==========+=========================================================================================================+
-  | xmlId                  | yes      | Unique string that describes this deliveryservice.                                                      |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | active                 | yes      | true if active, false if inactive.                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | tenantId               | No       | Owning tenant ID                                                                                        |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | cacheurl               | no       | Cache URL rule to apply to this delivery service.                                                       |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | protocol               | yes      | - 0: serve with http:// at EDGE                                                                         |
-  |                        |          | - 1: serve with https:// at EDGE                                                                        |
-  |                        |          | - 2: serve with both http:// and https:// at EDGE                                                       |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | ccrDnsTtl              | no       | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr.host.             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | cdnId                  | yes      | cdn id                                                                                                  |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | checkPath              | no       | The path portion of the URL to check this deliveryservice for health.                                   |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | displayName            | yes      | Display name                                                                                            |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | dnsBypassCname         | no       | Bypass CNAME                                                                                            |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | dnsBypassIp            | no       | The IPv4 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the       |
   |                        |          | globalMaxMbps traffic on this deliveryservice.                                                          |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
@@ -1405,11 +1911,13 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | dnsBypassTtl           | no       | The TTL of the DNS bypass response.                                                                     |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | dscp                   | no       | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE -> customer) traffic. |
+  | dscp                   | yes      | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE -> customer) traffic. |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | edgeHeaderRewrite      | no       | The EDGE header rewrite actions to perform.                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoLimit               | no       | - 0: None - no limitations                                                                              |
+  | geoLimitRedirectURL    | no       | This is the URL Traffic Router will redirect to when Geo Limit Failure.                                 |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | geoLimit               | yes      | - 0: None - no limitations                                                                              |
   |                        |          | - 1: Only route on CZF file hit                                                                         |
   |                        |          | - 2: Only route on CZF hit or when from geo limit countries                                             |
   |                        |          |                                                                                                         |
@@ -1418,9 +1926,7 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | geoLimitCountries      | no       | The geo limit countries.                                                                                |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoLimitRedirectURL    | no       | This is the URL Traffic Router will redirect to when Geo Limit Failure.                                 |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoProvider            | no       | - 0: Maxmind(default)                                                                                   |
+  | geoProvider            | yes      | - 0: Maxmind(default)                                                                                   |
   |                        |          | - 1: Neustar                                                                                            |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | globalMaxMbps          | no       | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the    |
@@ -1435,7 +1941,12 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | infoUrl                | no       | Use this to add a URL that points to more information about that deliveryservice.                       |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | ipv6RoutingEnabled     | no       | false: send IPv4 address of Traffic Router to client on HTTP type del.                                  |
+  | initialDispersion      | yes      | Initial dispersion                                                                                      |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | ipv6RoutingEnabled     | yes      | false: send IPv4 address of Traffic Router to client on HTTP type del.                                  |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | logsEnabled            | yes      | - false: No                                                                                             |
+  |                        |          | - true: Yes                                                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | longDesc               | no       | Description field.                                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
@@ -1443,70 +1954,62 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | longDesc2              | no       | Description field 2.                                                                                    |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | matchList              | yes      | Array of matchList hashes.                                                                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >type                  | yes      | The type of MatchList (one of :ref:to-api-v12-types use_in_table='regex').                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >setNumber             | yes      | The set Number of the matchList.                                                                        |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >pattern               | yes      | The regexp for the matchList.                                                                           |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | maxDnsAnswers          | no       | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all            |
   |                        |          | available).                                                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | missLat                | no       | The latitude to use when the client cannot be found in the CZF or the Geo lookup.                       |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | missLong               | no       | The longitude to use when the client cannot be found in the CZF or the Geo lookup.                      |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | midHeaderRewrite       | no       | The MID header rewrite actions to perform.                                                              |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | missLat                | no       | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.    |
+  |                        |          |                                                                                                         |
+  |                        |          | - e.g. 39.7391500 or null                                                                               |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | missLong               | no       | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.   |
+  |                        |          |                                                                                                         |
+  |                        |          | - e.g. -104.9847000 or null                                                                             |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | multiSiteOrigin        | yes      | 1 if enabled, 0 if disabled.                                                                            |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | orgServerFqdn          | yes      | The origin server base URL (FQDN when used in this instance, includes the                               |
-  |                        |          | protocol (http:// or https://) for use in retrieving content from the origin server.                    |
+  | orgServerFqdn          | yes|no   | The origin server base URL (FQDN when used in this instance, includes the                               |
+  |                        |          | protocol (http:// or https://) for use in retrieving content from the origin server. This field is      |
+  |                        |          | NOT required if type is ANY_MAP, STEERING OR CLIENT_STEERING.                                           |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | profileName            | yes      | Traffic router profile name, for example "CCR_CDN"                                                      |
+  | originShield           | no       | Origin shield                                                                                           |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | qstringIgnore          | no       | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.            |
+  | profileId              | no       | DS profile ID                                                                                           |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | protocol               | yes      | - 0: serve with http:// at EDGE                                                                         |
+  |                        |          | - 1: serve with https:// at EDGE                                                                        |
+  |                        |          | - 2: serve with both http:// and https:// at EDGE                                                       |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | qstringIgnore          | yes      | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.            |
   |                        |          | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                          |
   |                        |          | - 2: drop query string at edge, and do not use it in the cache-key.                                     |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | regexRemap             | no       | Regex Remap rule to apply to this delivery service at the Edge tier.                                    |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | remapText              | no       | Additional raw remap line text.                                                                         |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | signed                 | no       | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.          |
-  |                        |          | - true: token based auth is enabled for this deliveryservice.                                           |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | rangeRequestHandling   | no       | How to treat range requests:                                                                            |
+  | rangeRequestHandling   | yes      | How to treat range requests:                                                                            |
   |                        |          |                                                                                                         |
   |                        |          | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will   |
   |                        |          |   be a HIT)                                                                                             |
   |                        |          | - 1 Use the background_fetch plugin.                                                                    |
   |                        |          | - 2 Use the cache_range_requests plugin.                                                                |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | type                   | yes      | The type of this deliveryservice (one of :ref:to-api-v12-types use_in_table='deliveryservice').         |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | displayName            | yes      | Display name                                                                                            |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | cdnName                | yes      | cdn name                                                                                                |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | dnsBypassCname         | no       | Bypass CNAME                                                                                            |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | trResponseHeaders      | no       | Traffic router additional response headers                                                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | initialDispersion      | no       | Initial dispersion                                                                                      |
+  | regexRemap             | no       | Regex Remap rule to apply to this delivery service at the Edge tier.                                    |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | regionalGeoBlocking    | no       | Is the Regional Geo Blocking feature enabled for this delivery service.                                 |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | sslKeyVersion          | no       | SSL key version                                                                                         |
+  | remapText              | no       | Additional raw remap line text.                                                                         |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | originShield           | no       | Origin shield                                                                                           |
+  | signed                 | no       | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.          |
+  |                        |          | - true: token based auth is enabled for this deliveryservice.                                           |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | sslKeyVersion          | no       | SSL key version                                                                                         |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | trRequestHeaders       | no       | Traffic router log request headers                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | logsEnabled            | no       | - false: No                                                                                             |
-  |                        |          | - true: Yes                                                                                             |
+  | trResponseHeaders      | no       | Traffic router additional response headers                                                              |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | typeId                 | yes      | The type of this deliveryservice (one of :ref:to-api-v12-types use_in_table='deliveryservice').         |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | xmlId                  | yes      | Unique string that describes this deliveryservice.                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
 
 
@@ -1515,97 +2018,242 @@
     {
         "xmlId": "my_ds_1",
         "displayName": "my_ds_displayname_1",
-        "protocol": "1",
+        "tenantId": 1,
+        "protocol": 1,
         "orgServerFqdn": "http://10.75.168.91",
-        "cdnName": "cdn_number_1",
-        "profileName": "CCR_CDN1",
-        "type": "HTTP",
-        "multiSiteOrigin": "0",
-        "active": "false",
-        "matchList": [
-            {
-                "type":  "HOST_REGEXP",
-                "pattern": ".*\\.ds_1\\..*"
-                "setNumber": "0"
-            },
-            {
-                "type":  "HOST_REGEXP",
-                "pattern": ".*\\.my_vod1\\..*"
-                "setNumber": "1"
-            }
-        ]
+        "cdnId": 2,
+        "typeId": 42,
+        "active": false,
+        "dscp": 10,
+        "geoLimit": 0,
+        "geoProvider": 0,
+        "initialDispersion": 1,
+        "ipv6RoutingEnabled": false,
+        "logsEnabled": false,
+        "multiSiteOrigin": false,
+        "missLat": 39.7391500,
+        "missLong": -104.9847000,
+        "qstringIgnore": 0,
+        "rangeRequestHandling": 0,
+        "regionalGeoBlocking": false,
+        "signed": false
     }
 
 
+  **Response Properties**
+
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  |        Parameter         |  Type  |                                                             Description                                                              |
+  +==========================+========+======================================================================================================================================+
+  | ``active``               |  bool  | true if active, false if inactive.                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cacheurl``             | string | Cache URL rule to apply to this delivery service.                                                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``ccrDnsTtl``            |  int   | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cdnId``                |  int   | Id of the CDN to which the delivery service belongs to.                                                                              |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cdnName``              | string | Name of the CDN to which the delivery service belongs to.                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``checkPath``            | string | The path portion of the URL to check this deliveryservice for health.                                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``displayName``          | string | The display name of the delivery service.                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassCname``       | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassIp``          | string | The IPv4 IP to use for bypass on a DNS deliveryservice  - bypass starts when serving more than the                                   |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassIp6``         | string | The IPv6 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the                                    |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassTtl``         |  int   | The TTL of the DNS bypass response.                                                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dscp``                 |  int   | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``edgeHeaderRewrite``    | string | The EDGE header rewrite actions to perform.                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``exampleURLs``          | array  | Entry points into the CDN for this deliveryservice.                                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimitRedirectUrl``  | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimit``             |  int   | - 0: None - no limitations                                                                                                           |
+  |                          |        | - 1: Only route on CZF file hit                                                                                                      |
+  |                          |        | - 2: Only route on CZF hit or when from USA                                                                                          |
+  |                          |        |                                                                                                                                      |
+  |                          |        | Note that this does not prevent access to content or makes content secure; it just prevents                                          |
+  |                          |        | routing to the content by Traffic Router.                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimitCountries``    | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoProvider``          |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``globalMaxMbps``        |  int   | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
+  |                          |        | dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for HTTP deliveryservices.                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``globalMaxTps``         |  int   | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
+  |                          |        | traffic will be sent to the dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for                                      |
+  |                          |        | HTTP deliveryservices                                                                                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``httpBypassFqdn``       | string | The HTTP destination to use for bypass on an HTTP deliveryservice - bypass starts when serving more than the                         |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``id``                   |  int   | The deliveryservice id (database row number).                                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``infoUrl``              | string | Use this to add a URL that points to more information about that deliveryservice.                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``initialDispersion``    |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``ipv6RoutingEnabled``   |  bool  | false: send IPv4 address of Traffic Router to client on HTTP type del.                                                               |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``lastUpdated``          | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``logsEnabled``          |  bool  |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc``             | string | Description field.                                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc1``            | string | Description field 1.                                                                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc2``            | string | Description field 2.                                                                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``matchList``            | array  | Array of matchList hashes.                                                                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>type``               | string | The type of MatchList (one of :ref:to-api-v11-types use_in_table='regex').                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>setNumber``          | string | The set Number of the matchList.                                                                                                     |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>pattern``            | string | The regexp for the matchList.                                                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``maxDnsAnswers``        |  int   | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
+  |                          |        | available).                                                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``midHeaderRewrite``     | string | The MID header rewrite actions to perform.                                                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``missLat``              | float  | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                 |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. 39.7391500 or null                                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``missLong``             | float  | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. -104.9847000 or null                                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``multiSiteOrigin``      |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``orgServerFqdn``        | string | The origin server base URL (FQDN when used in this instance, includes the                                                            |
+  |                          |        | protocol (http:// or https://) for use in retrieving content from the origin server.                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``originShield``         | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileDescription``   | string | The description of the Traffic Router Profile with which this deliveryservice is associated.                                         |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileId``            |  int   | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileName``          | string | The name of the Traffic Router Profile with which this deliveryservice is associated.                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``protocol``             |  int   | - 0: serve with http:// at EDGE                                                                                                      |
+  |                          |        | - 1: serve with https:// at EDGE                                                                                                     |
+  |                          |        | - 2: serve with both http:// and https:// at EDGE                                                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``qstringIgnore``        |  int   | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
+  |                          |        | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                                                       |
+  |                          |        | - 2: drop query string at edge, and do not use it in the cache-key.                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``rangeRequestHandling`` |  int   | How to treat range requests:                                                                                                         |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT)                      |
+  |                          |        | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/reference/plugins/background_fetch.en.html>`_ plugin. |
+  |                          |        | - 2 Use the cache_range_requests plugin.                                                                                             |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``regexRemap``           | string | Regex Remap rule to apply to this delivery service at the Edge tier.                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``regionalGeoBlocking``  |  bool  | Regex Remap rule to apply to this delivery service at the Edge tier.                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``remapText``            | string | Additional raw remap line text.                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``signed``               |  bool  | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.                                       |
+  |                          |        | - true: token based auth is enabled for this deliveryservice.                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``sslKeyVersion``        |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``trRequestHeaders``     | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``trResponseHeaders``    | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``typeId``               |  int   | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``xmlId``                | string | Unique string that describes this deliveryservice.                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+
   **Response Example** ::
 
     {
-        "response":{
-            "xmlId":"my_ds_1",
-            "active":"false",
-            "protocol":"0",
-            "missLong":null,
-            "maxDnsAnswers":"0",
-            "profileName": "CCR_CDN1",
-            "multiSiteOrigin":"0",
-            "dnsBypassIp6":null,
-            "globalMaxTps":"0",
-            "orgServerFqdn":"http:\/\/10.75.168.91",
-            "infoUrl":null,
-            "rangeRequestHandling":null,
-            "id":"311",
-            "trResponseHeaders":null,
-            "ipv6RoutingEnabled":null,
-            "midHeaderRewrite":null,
-            "longDesc":null,
-            "httpBypassFqdn":null,
-            "cdnName":"cdn_number_1",
-            "protocol":"1",
-            "missLat":null,
-            "globalMaxMbps":"0",
-            "initialDispersion":null,
-            "type":"HTTP",
-            "geoLimit":null,
-            "dnsBypassTtl":null,
-            "dnsBypassCname":null,
-            "ccrDnsTtl":null,
-            "longDesc2":null,
-            "remapText":null,
-            "dnsBypassIp":null,
-            "longDesc1":null,
-            "checkPath":null,
-            "qstringIgnore":null,
-            "dscp":"1",
-            "regexRemap":null,
-            "edgeHeaderRewrite":null,
-            "sslKeyVersion":"0",
-            "displayName":"my_ds_displayname_1",
-            "cacheurl":null,
-            "signed":"0",
-            "matchList":[
+      "response": [
+        {
+            "active": true,
+            "cacheurl": null,
+            "ccrDnsTtl": "3600",
+            "cdnId": "2",
+            "cdnName": "over-the-top",
+            "checkPath": "",
+            "displayName": "My Cool Delivery Service",
+            "dnsBypassCname": "",
+            "dnsBypassIp": "",
+            "dnsBypassIp6": "",
+            "dnsBypassTtl": "30",
+            "dscp": "40",
+            "edgeHeaderRewrite": null,
+            "exampleURLs": [
+                "http://edge.foo-ds.foo.bar.net"
+            ],
+            "geoLimit": "0",
+            "geoLimitCountries": null,
+            "geoLimitRedirectURL": null,
+            "geoProvider": "0",
+            "globalMaxMbps": null,
+            "globalMaxTps": "0",
+            "httpBypassFqdn": "",
+            "id": "442",
+            "infoUrl": "",
+            "initialDispersion": "1",
+            "ipv6RoutingEnabled": true,
+            "lastUpdated": "2016-01-26 08:49:35",
+            "logsEnabled": false,
+            "longDesc": "",
+            "longDesc1": "",
+            "longDesc2": "",
+            "matchList": [
                 {
-                    "type":"HOST_REGEXP",
-                    "setNumber":"0",
-                    "pattern":".*\\.ds_1\\..*"
-                },
-                {
-                    "type":"HOST_REGEXP",
-                    "setNumber":"1",
-                    "pattern":".*\\.my_vod1\\..*"
+                    "pattern": ".*\\.foo-ds\\..*",
+                    "setNumber": "0",
+                    "type": "HOST_REGEXP"
                 }
             ],
-            "regionalGeoBlocking":0,
-            "originShield":null,
-            "trRequestHeaders":null,
-            "geoProvider":"0",
-            "logsEnabled":"false",
+            "maxDnsAnswers": "0",
+            "midHeaderRewrite": null,
+            "missLat": "39.7391500",
+            "missLong": "-104.9847000",
+            "multiSiteOrigin": false,
+            "orgServerFqdn": "http://baz.boo.net",
+            "originShield": null,
+            "profileDescription": "Content Router for over-the-top",
+            "profileId": "5",
+            "profileName": "ROUTER_TOP",
+            "protocol": "0",
+            "qstringIgnore": "1",
+            "rangeRequestHandling": "0",
+            "regexRemap": null,
+            "regionalGeoBlocking": false,
+            "remapText": null,
+            "signed": false,
+            "sslKeyVersion": "0",
+            "tenantId": 1,
+            "trRequestHeaders": null,
+            "trResponseHeaders": "Access-Control-Allow-Origin: *",
+            "type": "HTTP",
+            "typeId": "8",
+            "xmlId": "foo-ds"
         }
-        "alerts":[
-            {
-                "level": "success",
-                "text": "Delivery service was created: 312"
-            }
-        ]
+      ]
     }
 
 |
@@ -1631,20 +2279,22 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | Parameter              | Required | Description                                                                                             |
   +========================+==========+=========================================================================================================+
-  | xmlId                  | yes      | Unique string that describes this deliveryservice.                                                      |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | active                 | yes      | true if active, false if inactive.                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | tenantId               | no       | Owning tenant ID                                                                                        |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | cacheurl               | no       | Cache URL rule to apply to this delivery service.                                                       |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | protocol               | yes      | - 0: serve with http:// at EDGE                                                                         |
-  |                        |          | - 1: serve with https:// at EDGE                                                                        |
-  |                        |          | - 2: serve with both http:// and https:// at EDGE                                                       |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | ccrDnsTtl              | no       | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr.host.             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | cdnId                  | yes      | cdn id                                                                                                  |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | checkPath              | no       | The path portion of the URL to check this deliveryservice for health.                                   |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | displayName            | yes      | Display name                                                                                            |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | dnsBypassCname         | no       | Bypass CNAME                                                                                            |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | dnsBypassIp            | no       | The IPv4 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the       |
   |                        |          | globalMaxMbps traffic on this deliveryservice.                                                          |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
@@ -1653,11 +2303,13 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | dnsBypassTtl           | no       | The TTL of the DNS bypass response.                                                                     |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | dscp                   | no       | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE -> customer) traffic. |
+  | dscp                   | yes      | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE -> customer) traffic. |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | edgeHeaderRewrite      | no       | The EDGE header rewrite actions to perform.                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoLimit               | no       | - 0: None - no limitations                                                                              |
+  | geoLimitRedirectURL    | no       | This is the URL Traffic Router will redirect to when Geo Limit Failure.                                 |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | geoLimit               | yes      | - 0: None - no limitations                                                                              |
   |                        |          | - 1: Only route on CZF file hit                                                                         |
   |                        |          | - 2: Only route on CZF hit or when from geo limit countries                                             |
   |                        |          |                                                                                                         |
@@ -1666,9 +2318,7 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | geoLimitCountries      | no       | The geo limit countries.                                                                                |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoLimitRedirectURL    | no       | This is the URL Traffic Router will redirect to when Geo Limit Failure.                                 |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | geoProvider            | no       | - 0: Maxmind(default)                                                                                   |
+  | geoProvider            | yes      | - 0: Maxmind(default)                                                                                   |
   |                        |          | - 1: Neustar                                                                                            |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | globalMaxMbps          | no       | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the    |
@@ -1683,7 +2333,12 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | infoUrl                | no       | Use this to add a URL that points to more information about that deliveryservice.                       |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | ipv6RoutingEnabled     | no       | false: send IPv4 address of Traffic Router to client on HTTP type del.                                  |
+  | initialDispersion      | yes      | Initial dispersion                                                                                      |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | ipv6RoutingEnabled     | yes      | false: send IPv4 address of Traffic Router to client on HTTP type del.                                  |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | logsEnabled            | yes      | - false: No                                                                                             |
+  |                        |          | - true: Yes                                                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | longDesc               | no       | Description field.                                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
@@ -1691,169 +2346,305 @@
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | longDesc2              | no       | Description field 2.                                                                                    |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | matchList              | yes      | Array of matchList hashes.                                                                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >type                  | yes      | The type of MatchList (one of :ref:to-api-v12-types use_in_table='regex').                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >setNumber             | yes      | The set Number of the matchList.                                                                        |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | >pattern               | yes      | The regexp for the matchList.                                                                           |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | maxDnsAnswers          | no       | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all            |
   |                        |          | available).                                                                                             |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | missLat                | no       | The latitude to use when the client cannot be found in the CZF or the Geo lookup.                       |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | missLong               | no       | The longitude to use when the client cannot be found in the CZF or the Geo lookup.                      |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | midHeaderRewrite       | no       | The MID header rewrite actions to perform.                                                              |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | missLat                | no       | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.    |
+  |                        |          |                                                                                                         |
+  |                        |          | - e.g. 39.7391500 or null                                                                               |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | missLong               | no       | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.   |
+  |                        |          |                                                                                                         |
+  |                        |          | - e.g. -104.9847000 or null                                                                             |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | multiSiteOrigin        | yes      | 1 if enabled, 0 if disabled.                                                                            |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | orgServerFqdn          | yes      | The origin server base URL (FQDN when used in this instance, includes the                               |
   |                        |          | protocol (http:// or https://) for use in retrieving content from the origin server.                    |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | profileName            | yes      | Traffic router profile name, for example "CCR_CDN"                                                      |
+  | originShield           | no       | Origin shield                                                                                           |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | qstringIgnore          | no       | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.            |
+  | profileId              | no       | DS profile ID                                                                                           |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | protocol               | yes      | - 0: serve with http:// at EDGE                                                                         |
+  |                        |          | - 1: serve with https:// at EDGE                                                                        |
+  |                        |          | - 2: serve with both http:// and https:// at EDGE                                                       |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | qstringIgnore          | yes      | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.            |
   |                        |          | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                          |
   |                        |          | - 2: drop query string at edge, and do not use it in the cache-key.                                     |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | regexRemap             | no       | Regex Remap rule to apply to this delivery service at the Edge tier.                                    |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | remapText              | no       | Additional raw remap line text.                                                                         |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | signed                 | no       | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.          |
-  |                        |          | - true: token based auth is enabled for this deliveryservice.                                           |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | rangeRequestHandling   | no       | How to treat range requests:                                                                            |
+  | rangeRequestHandling   | yes      | How to treat range requests:                                                                            |
   |                        |          |                                                                                                         |
   |                        |          | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will   |
   |                        |          |   be a HIT)                                                                                             |
   |                        |          | - 1 Use the background_fetch plugin.                                                                    |
   |                        |          | - 2 Use the cache_range_requests plugin.                                                                |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | type                   | yes      | The type of this deliveryservice (one of :ref:to-api-v12-types use_in_table='deliveryservice').         |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | displayName            | yes      | Display name                                                                                            |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | cdnName                | yes      | cdn name                                                                                                |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | dnsBypassCname         | no       | Bypass CNAME                                                                                            |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | trResponseHeaders      | no       | Traffic router additional response headers                                                              |
-  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | initialDispersion      | no       | Initial dispersion                                                                                      |
+  | regexRemap             | no       | Regex Remap rule to apply to this delivery service at the Edge tier.                                    |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | regionalGeoBlocking    | no       | Is the Regional Geo Blocking feature enabled for this delivery service.                                 |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | sslKeyVersion          | no       | SSL key version                                                                                         |
+  | remapText              | no       | Additional raw remap line text.                                                                         |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | originShield           | no       | Origin shield                                                                                           |
+  | signed                 | no       | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.          |
+  |                        |          | - true: token based auth is enabled for this deliveryservice.                                           |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | sslKeyVersion          | no       | SSL key version                                                                                         |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
   | trRequestHeaders       | no       | Traffic router log request headers                                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
-  | logsEnabled            | no       | - false: No                                                                                             |
-  |                        |          | - true: Yes                                                                                             |
+  | trResponseHeaders      | no       | Traffic router additional response headers                                                              |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | typeId                 | yes      | The type of this deliveryservice (one of :ref:to-api-v12-types use_in_table='deliveryservice').         |
+  +------------------------+----------+---------------------------------------------------------------------------------------------------------+
+  | xmlId                  | yes      | Unique string that describes this deliveryservice.                                                      |
   +------------------------+----------+---------------------------------------------------------------------------------------------------------+
 
 
   **Request Example** ::
 
     {
-        "xmlId": "my_ds_2",
-        "displayName": "my_ds_displayname_2",
-        "protocol": "1",
+        "xmlId": "my_ds_1",
+        "displayName": "my_ds_displayname_1",
+	"tenantId": 1,
+        "protocol": 1,
         "orgServerFqdn": "http://10.75.168.91",
-        "cdnName": "cdn_number_1",
-        "profileName": "CCR_CDN1",
-        "type": "HTTP",
-        "multiSiteOrigin": "0",
-        "active": "true",
-        "matchList": [
-            {
-                "type":  "HOST_REGEXP",
-                "pattern": ".*\\.ds_1\\..*"
-                "setNumber": "0"
-            },
-            {
-                "type":  "HOST_REGEXP",
-                "pattern": ".*\\.my_vod1\\..*"
-                "setNumber": "1"
-            }
-        ]
+        "cdnId": 2,
+        "typeId": 42,
+        "active": false,
+        "dscp": 10,
+        "geoLimit": 0,
+        "geoProvider": 0,
+        "initialDispersion": 1,
+        "ipv6RoutingEnabled": false,
+        "logsEnabled": false,
+        "multiSiteOrigin": false,
+        "missLat": 39.7391500,
+        "missLong": -104.9847000,
+        "qstringIgnore": 0,
+        "rangeRequestHandling": 0,
+        "regionalGeoBlocking": false,
+        "signed": false
     }
 
 
+  **Response Properties**
+
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  |        Parameter         |  Type  |                                                             Description                                                              |
+  +==========================+========+======================================================================================================================================+
+  | ``active``               |  bool  | true if active, false if inactive.                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cacheurl``             | string | Cache URL rule to apply to this delivery service.                                                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``ccrDnsTtl``            |  int   | The TTL of the DNS response for A or AAAA queries requesting the IP address of the tr. host.                                         |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cdnId``                |  int   | Id of the CDN to which the delivery service belongs to.                                                                              |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``cdnName``              | string | Name of the CDN to which the delivery service belongs to.                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``checkPath``            | string | The path portion of the URL to check this deliveryservice for health.                                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``displayName``          | string | The display name of the delivery service.                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassCname``       | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassIp``          | string | The IPv4 IP to use for bypass on a DNS deliveryservice  - bypass starts when serving more than the                                   |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassIp6``         | string | The IPv6 IP to use for bypass on a DNS deliveryservice - bypass starts when serving more than the                                    |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dnsBypassTtl``         |  int   | The TTL of the DNS bypass response.                                                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``dscp``                 |  int   | The Differentiated Services Code Point (DSCP) with which to mark downstream (EDGE ->  customer) traffic.                             |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``edgeHeaderRewrite``    | string | The EDGE header rewrite actions to perform.                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``exampleURLs``          | array  | Entry points into the CDN for this deliveryservice.                                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimitRedirectUrl``  | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimit``             |  int   | - 0: None - no limitations                                                                                                           |
+  |                          |        | - 1: Only route on CZF file hit                                                                                                      |
+  |                          |        | - 2: Only route on CZF hit or when from USA                                                                                          |
+  |                          |        |                                                                                                                                      |
+  |                          |        | Note that this does not prevent access to content or makes content secure; it just prevents                                          |
+  |                          |        | routing to the content by Traffic Router.                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoLimitCountries``    | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``geoProvider``          |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``globalMaxMbps``        |  int   | The maximum global bandwidth allowed on this deliveryservice. If exceeded, the traffic routes to the                                 |
+  |                          |        | dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for HTTP deliveryservices.                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``globalMaxTps``         |  int   | The maximum global transactions per second allowed on this deliveryservice. When this is exceeded                                    |
+  |                          |        | traffic will be sent to the dnsByPassIp* for DNS deliveryservices and to the httpBypassFqdn for                                      |
+  |                          |        | HTTP deliveryservices                                                                                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``httpBypassFqdn``       | string | The HTTP destination to use for bypass on an HTTP deliveryservice - bypass starts when serving more than the                         |
+  |                          |        | globalMaxMbps traffic on this deliveryservice.                                                                                       |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``id``                   |  int   | The deliveryservice id (database row number).                                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``infoUrl``              | string | Use this to add a URL that points to more information about that deliveryservice.                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``initialDispersion``    |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``ipv6RoutingEnabled``   |  bool  | false: send IPv4 address of Traffic Router to client on HTTP type del.                                                               |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``lastUpdated``          | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``logsEnabled``          |  bool  |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc``             | string | Description field.                                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc1``            | string | Description field 1.                                                                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``longDesc2``            | string | Description field 2.                                                                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``matchList``            | array  | Array of matchList hashes.                                                                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>type``               | string | The type of MatchList (one of :ref:to-api-v11-types use_in_table='regex').                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>setNumber``          | string | The set Number of the matchList.                                                                                                     |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``>>pattern``            | string | The regexp for the matchList.                                                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``maxDnsAnswers``        |  int   | The maximum number of IPs to put in a A/AAAA response for a DNS deliveryservice (0 means all                                         |
+  |                          |        | available).                                                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``midHeaderRewrite``     | string | The MID header rewrite actions to perform.                                                                                           |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``missLat``              | float  | The latitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                 |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. 39.7391500 or null                                                                                                            |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``missLong``             | float  | The longitude as decimal degrees to use when the client cannot be found in the CZF or the Geo lookup.                                |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - e.g. -104.9847000 or null                                                                                                          |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``multiSiteOrigin``      |  bool  | Is the Multi Site Origin feature enabled for this delivery service (0=false, 1=true). See :ref:`rl-multi-site-origin`                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``orgServerFqdn``        | string | The origin server base URL (FQDN when used in this instance, includes the                                                            |
+  |                          |        | protocol (http:// or https://) for use in retrieving content from the origin server.                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``originShield``         | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileDescription``   | string | The description of the Traffic Router Profile with which this deliveryservice is associated.                                         |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileId``            |  int   | The id of the Traffic Router Profile with which this deliveryservice is associated.                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``profileName``          | string | The name of the Traffic Router Profile with which this deliveryservice is associated.                                                |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``protocol``             |  int   | - 0: serve with http:// at EDGE                                                                                                      |
+  |                          |        | - 1: serve with https:// at EDGE                                                                                                     |
+  |                          |        | - 2: serve with both http:// and https:// at EDGE                                                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``qstringIgnore``        |  int   | - 0: no special query string handling; it is for use in the cache-key and pass up to origin.                                         |
+  |                          |        | - 1: ignore query string in cache-key, but pass it up to parent and or origin.                                                       |
+  |                          |        | - 2: drop query string at edge, and do not use it in the cache-key.                                                                  |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``rangeRequestHandling`` |  int   | How to treat range requests:                                                                                                         |
+  |                          |        |                                                                                                                                      |
+  |                          |        | - 0 Do not cache (ranges requested from files taht are already cached due to a non range request will be a HIT)                      |
+  |                          |        | - 1 Use the `background_fetch <https://docs.trafficserver.apache.org/en/latest/reference/plugins/background_fetch.en.html>`_ plugin. |
+  |                          |        | - 2 Use the cache_range_requests plugin.                                                                                             |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``regexRemap``           | string | Regex Remap rule to apply to this delivery service at the Edge tier.                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``regionalGeoBlocking``  |  bool  | Regex Remap rule to apply to this delivery service at the Edge tier.                                                                 |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``remapText``            | string | Additional raw remap line text.                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``signed``               |  bool  | - false: token based auth (see :ref:token-based-auth) is not enabled for this deliveryservice.                                       |
+  |                          |        | - true: token based auth is enabled for this deliveryservice.                                                                        |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``sslKeyVersion``        |  int   |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``trRequestHeaders``     | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``trResponseHeaders``    | string |                                                                                                                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``typeId``               |  int   | The type of this deliveryservice (one of :ref:to-api-v11-types use_in_table='deliveryservice').                                      |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``xmlId``                | string | Unique string that describes this deliveryservice.                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+
   **Response Example** ::
 
     {
-        "response":{
-            "xmlId":"my_ds_2",
-            "active":"true",
-            "protocol":"0",
-            "missLong":null,
-            "maxDnsAnswers":"0",
-            "profileName": "CCR_CDN1",
-            "multiSiteOrigin":"0",
-            "dnsBypassIp6":null,
-            "globalMaxTps":"0",
-            "orgServerFqdn":"http:\/\/10.75.168.91",
-            "infoUrl":null,
-            "rangeRequestHandling":null,
-            "id":"311",
-            "trResponseHeaders":null,
-            "ipv6RoutingEnabled":null,
-            "midHeaderRewrite":null,
-            "longDesc":null,
-            "httpBypassFqdn":null,
-            "cdnName":"cdn_number_1",
-            "protocol":"1",
-            "missLat":null,
-            "globalMaxMbps":"0",
-            "initialDispersion":null,
-            "type":"HTTP",
-            "geoLimit":null,
-            "dnsBypassTtl":null,
-            "dnsBypassCname":null,
-            "ccrDnsTtl":null,
-            "longDesc2":null,
-            "remapText":null,
-            "dnsBypassIp":null,
-            "longDesc1":null,
-            "checkPath":null,
-            "qstringIgnore":null,
-            "dscp":"1",
-            "regexRemap":null,
-            "edgeHeaderRewrite":null,
-            "sslKeyVersion":"0",
-            "displayName":"my_ds_displayname_2",
-            "cacheurl":null,
-            "signed":"0",
-            "matchList":[
+      "response": [
+        {
+            "active": true,
+            "cacheurl": null,
+            "ccrDnsTtl": "3600",
+            "cdnId": "2",
+            "cdnName": "over-the-top",
+            "checkPath": "",
+            "displayName": "My Cool Delivery Service",
+            "dnsBypassCname": "",
+            "dnsBypassIp": "",
+            "dnsBypassIp6": "",
+            "dnsBypassTtl": "30",
+            "dscp": "40",
+            "edgeHeaderRewrite": null,
+            "exampleURLs": [
+                "http://edge.foo-ds.foo.bar.net"
+            ],
+            "geoLimit": "0",
+            "geoLimitCountries": null,
+            "geoLimitRedirectURL": null,
+            "geoProvider": "0",
+            "globalMaxMbps": null,
+            "globalMaxTps": "0",
+            "httpBypassFqdn": "",
+            "id": "442",
+            "infoUrl": "",
+            "initialDispersion": "1",
+            "ipv6RoutingEnabled": true,
+            "lastUpdated": "2016-01-26 08:49:35",
+            "logsEnabled": false,
+            "longDesc": "",
+            "longDesc1": "",
+            "longDesc2": "",
+            "matchList": [
                 {
-                    "type":"HOST_REGEXP",
-                    "setNumber":"0",
-                    "pattern":".*\\.ds_1\\..*"
-                },
-                {
-                    "type":"HOST_REGEXP",
-                    "setNumber":"1",
-                    "pattern":".*\\.my_vod1\\..*"
+                    "pattern": ".*\\.foo-ds\\..*",
+                    "setNumber": "0",
+                    "type": "HOST_REGEXP"
                 }
             ],
-            "regionalGeoBlocking":0,
-            "originShield":null,
-            "trRequestHeaders":null,
-            "geoProvider":"0",
-            "logsEnabled":"false",
+            "maxDnsAnswers": "0",
+            "midHeaderRewrite": null,
+            "missLat": "39.7391500",
+            "missLong": "-104.9847000",
+            "multiSiteOrigin": false,
+            "orgServerFqdn": "http://baz.boo.net",
+            "originShield": null,
+            "profileDescription": "Content Router for over-the-top",
+            "profileId": "5",
+            "profileName": "ROUTER_TOP",
+            "protocol": "0",
+            "qstringIgnore": "1",
+            "rangeRequestHandling": "0",
+            "regexRemap": null,
+            "regionalGeoBlocking": false,
+            "remapText": null,
+            "signed": false,
+            "sslKeyVersion": "0",
+            "tenantId": 1,
+            "trRequestHeaders": null,
+            "trResponseHeaders": "Access-Control-Allow-Origin: *",
+            "type": "HTTP",
+            "typeId": "8",
+            "xmlId": "foo-ds"
         }
-        "alerts":[
-            {
-                "level": "success",
-                "text": "Delivery service was updated: 312"
-            }
-        ]
+      ]
     }
 
 |
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice_regex.txt b/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice_regex.txt
new file mode 100644
index 0000000..ccd12c4
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/deliveryservice_regex.txt
@@ -0,0 +1,374 @@
+..
+..
+.. 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-v12-ds-regexes:
+
+Delivery Service Regexes
+========================
+
+.. _to-api-v12-ds-regexes-route:
+
+
+**GET /api/1.2/deliveryservices_regexes**
+
+  Retrieves regexes for all delivery services.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Oper
+
+  **Response Properties**
+
+  +------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter     |  Type  |                               Description                               |
+  +==================+========+=========================================================================+
+  | ``dsName``       | array  | Delivery service name.                                                  |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``regexes``      | array  | An array of regexes for the delivery service.                           |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``>type``        | string | The regex type.                                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``>pattern``     | string | The regex pattern.                                                      |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``>setNumber``   | string | The order in which the regex is evaluated.                              |
+  +------------------+--------+-------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+          "dsName": "foo-bar",
+          "regexes": [
+            {
+              "type": "HOST_REGEXP",
+              "pattern": ".*\.foo-bar\..*",
+              "setNumber": 0
+            },
+            {
+              "type": "HOST_REGEXP",
+              "pattern": "foo.bar.com",
+              "setNumber": 1
+            }
+			    ]
+		    },
+		    { ... }
+      ]
+    }
+
+|
+
+**GET /api/1.2/deliveryservices/{:dsId}/regexes**
+
+  Retrieves regexes for a specific delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-----------+----------+---------------------------------------------+
+  |   Name    | Required |                Description                  |
+  +===========+==========+=============================================+
+  |  ``dsId`` |   yes    | Delivery service id.                        |
+  +-----------+----------+---------------------------------------------+
+
+  **Response Properties**
+
+  +------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter     |  Type  |                               Description                               |
+  +==================+========+=========================================================================+
+  | ``id``           | string | Delivery service regex ID.                                              |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``type``         | string | Delivery service regex type ID.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``typeName``     | string | Delivery service regex type name.                                       |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``pattern``      | string | Delivery service regex pattern.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``setNumber``    | string | The order in which the regex is evaluated for the delivery service.     |
+  +------------------+--------+-------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response": [
+        {
+          "id": 852,
+          "type": 18,
+          "typeName": "HOST_REGEXP",
+          "pattern": ".*\.foo-bar\..*",
+          "setNumber": 0
+        },
+        {
+          "id": 853,
+          "type": 18,
+          "typeName": "HOST_REGEXP",
+          "pattern": "foo.bar.com",
+          "setNumber": 1
+        }
+      ]
+    }
+
+|
+
+**GET /api/1.2/deliveryservices/{:dsId}/regexes/{:id}**
+
+  Retrieves a regex for a specific delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-----------+----------+---------------------------------------------+
+  |   Name    | Required |                Description                  |
+  +===========+==========+=============================================+
+  | ``dsId``  |   yes    | Delivery service id.                        |
+  +-----------+----------+---------------------------------------------+
+  | ``id``    |   yes    | Delivery service regex id.                  |
+  +-----------+----------+---------------------------------------------+
+
+  **Response Properties**
+
+  +------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter     |  Type  |                               Description                               |
+  +==================+========+=========================================================================+
+  | ``id``           | string | Delivery service regex ID.                                              |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``type``         | string | Delivery service regex type ID.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``typeName``     | string | Delivery service regex type name.                                       |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``pattern``      | string | Delivery service regex pattern.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``setNumber``    | string | The order in which the regex is evaluated for the delivery service.     |
+  +------------------+--------+-------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+          "id": 852,
+          "type": 18,
+          "typeName": "HOST_REGEXP",
+          "pattern": ".*\.foo-bar\..*",
+          "setNumber": 0
+        }
+      ]
+    }
+
+|
+
+**POST /api/1.2/deliveryservices/{:dsId}/regexes**
+
+  Create a regex for a delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Oper
+
+  **Request Route Parameters**
+
+  +-----------+----------+---------------------------------------------+
+  |   Name    | Required |                Description                  |
+  +===========+==========+=============================================+
+  | ``dsId``  |   yes    | Delivery service id.                        |
+  +-----------+----------+---------------------------------------------+
+
+  **Request Properties**
+
+  +---------------+----------+---------------------------------------------+
+  |  Parameter    | Required |                Description                  |
+  +===============+==========+=============================================+
+  | ``pattern``   |   yes    | Regex pattern.                              |
+  +---------------+----------+---------------------------------------------+
+  | ``type``      |   yes    | Regex type ID.                              |
+  +---------------+----------+---------------------------------------------+
+  | ``setNumber`` |   yes    | Regex type ID.                              |
+  +---------------+----------+---------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "pattern": ".*\.foo-bar\..*"
+        "type": 18
+        "setNumber": 0
+    }
+
+|
+
+  **Response Properties**
+
+  +------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter     |  Type  |                               Description                               |
+  +==================+========+=========================================================================+
+  | ``id``           | string | Delivery service regex ID.                                              |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``type``         | string | Delivery service regex type ID.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``typeName``     | string | Delivery service regex type name.                                       |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``pattern``      | string | Delivery service regex pattern.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``setNumber``    | string | The order in which the regex is evaluated for the delivery service.     |
+  +------------------+--------+-------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response":{
+        "id": 852,
+        "type": 18,
+        "typeName": "HOST_REGEXP",
+        "pattern": ".*\.foo-bar\..*",
+        "setNumber": 0
+      },
+      "alerts":[
+        {
+          "level": "success",
+          "text": "Delivery service regex creation was successful."
+        }
+      ]
+    }
+
+|
+
+**PUT /api/1.2/deliveryservices/{:dsId}/regexes/{:id}**
+
+  Update a regex for a delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Oper
+
+  **Request Route Parameters**
+
+  +-----------+----------+---------------------------------------------+
+  |   Name    | Required |                Description                  |
+  +===========+==========+=============================================+
+  | ``dsId``  |   yes    | Delivery service id.                        |
+  +-----------+----------+---------------------------------------------+
+  | ``id``    |   yes    | Delivery service regex id.                  |
+  +-----------+----------+---------------------------------------------+
+
+  **Request Properties**
+
+  +---------------+----------+---------------------------------------------+
+  |  Parameter    | Required |                Description                  |
+  +===============+==========+=============================================+
+  | ``pattern``   |   yes    | Regex pattern.                              |
+  +---------------+----------+---------------------------------------------+
+  | ``type``      |   yes    | Regex type ID.                              |
+  +---------------+----------+---------------------------------------------+
+  | ``setNumber`` |   yes    | Regex type ID.                              |
+  +---------------+----------+---------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "pattern": ".*\.foo-bar\..*"
+        "type": 18
+        "setNumber": 0
+    }
+
+|
+
+  **Response Properties**
+
+  +------------------+--------+-------------------------------------------------------------------------+
+  |    Parameter     |  Type  |                               Description                               |
+  +==================+========+=========================================================================+
+  | ``id``           | string | Delivery service regex ID.                                              |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``type``         | string | Delivery service regex type ID.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``typeName``     | string | Delivery service regex type name.                                       |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``pattern``      | string | Delivery service regex pattern.                                         |
+  +------------------+--------+-------------------------------------------------------------------------+
+  | ``setNumber``    | string | The order in which the regex is evaluated for the delivery service.     |
+  +------------------+--------+-------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response":{
+        "id": 852,
+        "type": 18,
+        "typeName": "HOST_REGEXP",
+        "pattern": ".*\.foo-bar\..*",
+        "setNumber": 0
+      },
+      "alerts":[
+        {
+          "level": "success",
+          "text": "Delivery service regex update was successful."
+        }
+      ]
+    }
+
+|
+
+**DELETE /api/1.2/deliveryservices/{:dsId}/regexes/{:id}**
+
+  Delete delivery service regex.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Oper
+
+  **Request Route Parameters**
+
+  +-----------+----------+---------------------------------------------+
+  |   Name    | Required |                Description                  |
+  +===========+==========+=============================================+
+  | ``dsId``  |   yes    | Delivery service id.                        |
+  +-----------+----------+---------------------------------------------+
+  | ``id``    |   yes    | Delivery service regex id.                  |
+  +-----------+----------+---------------------------------------------+
+
+  **Response Properties**
+
+  +-------------+--------+----------------------------------+
+  |  Parameter  |  Type  |           Description            |
+  +=============+========+==================================+
+  | ``alerts``  | array  | A collection of alert messages.  |
+  +-------------+--------+----------------------------------+
+  | ``>level``  | string | Success, info, warning or error. |
+  +-------------+--------+----------------------------------+
+  | ``>text``   | string | Alert message.                   |
+  +-------------+--------+----------------------------------+
+
+  **Response Example** ::
+
+    {
+          "alerts": [
+                    {
+                            "level": "success",
+                            "text": "Delivery service regex delete was successful."
+                    }
+            ],
+    }
+
+|
+
+
+
+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/job.txt b/docs/latest/_sources/development/traffic_ops_api/v12/job.txt
new file mode 100644
index 0000000..be27309
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/job.txt
@@ -0,0 +1,136 @@
+..
+..
+.. 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-v12-job:
+
+Jobs
+====
+
+.. _to-api-v12-job-route:
+
+/api/1.2/jobs
+++++++++++++++++++
+
+**GET /api/1.2/jobs**
+
+  Get all jobs (currently limited to invalidate content (PURGE) jobs) sorted by start time (descending).
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operations or Admin
+
+  **Request Query Parameters**
+
+  +-----------------+----------+---------------------------------------------------+
+  | Name            | Required | Description                                       |
+  +=================+==========+===================================================+
+  | ``dsId``        | no       | Filter jobs by Delivery Service ID.               |
+  +-----------------+----------+---------------------------------------------------+
+  | ``userId``      | no       | Filter jobs by User ID.                           |
+  +-----------------+----------+---------------------------------------------------+
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``id``                |  int   | Job id                                          |
+  +----------------------+--------+-------------------------------------------------+
+  |``assetUrl``          | string | URL of the asset to invalidate.                 |
+  +----------------------+--------+-------------------------------------------------+
+  |``deliveryService``   | string | Unique identifier of the job's DS.              |
+  +----------------------+--------+-------------------------------------------------+
+  |``keyword``           | string | Job keyword (PURGE)                             |
+  +----------------------+--------+-------------------------------------------------+
+  |``parameters``        | string | Parameters associated with the job.             |
+  +----------------------+--------+-------------------------------------------------+
+  |``startTime``         | string | Start time of the job.                          |
+  +----------------------+--------+-------------------------------------------------+
+  |``createdBy``         | string | Username that initiated the job.                |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "id": 1
+           "assetUrl": "http:\/\/foo-bar.domain.net\/taco.html",
+           "deliveryService": "foo-bar",
+           "keyword": "PURGE",
+           "parameters": "TTL:48h",
+           "startTime": "2015-05-14 08:56:36-06",
+           "createdBy": "jdog24"
+        },
+        {
+           "id": 2
+           "assetUrl": "http:\/\/foo-bar.domain.net\/bell.html",
+           "deliveryService": "foo-bar",
+           "keyword": "PURGE",
+           "parameters": "TTL:72h",
+           "startTime": "2015-05-16 08:56:36-06",
+           "createdBy": "jdog24"
+        }
+     ]
+    }
+
+|
+
+
+**GET /api/1.2/jobs/:id**
+
+  Get a job by ID (currently limited to invalidate content (PURGE) jobs).
+
+  Authentication Required: Yes
+
+  Role(s) Required: Operations or Admin
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``id``                |  int   | Job id                                          |
+  +----------------------+--------+-------------------------------------------------+
+  |``assetUrl``          | string | URL of the asset to invalidate.                 |
+  +----------------------+--------+-------------------------------------------------+
+  |``deliveryService``   | string | Unique identifier of the job's DS.              |
+  +----------------------+--------+-------------------------------------------------+
+  |``keyword``           | string | Job keyword (PURGE)                             |
+  +----------------------+--------+-------------------------------------------------+
+  |``parameters``        | string | Parameters associated with the job.             |
+  +----------------------+--------+-------------------------------------------------+
+  |``startTime``         | string | Start time of the job.                          |
+  +----------------------+--------+-------------------------------------------------+
+  |``createdBy``         | string | Username that initiated the job.                |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "id": 1
+           "assetUrl": "http:\/\/foo-bar.domain.net\/taco.html",
+           "deliveryService": "foo-bar",
+           "keyword": "PURGE",
+           "parameters": "TTL:48h",
+           "startTime": "2015-05-14 08:56:36-06",
+           "createdBy": "jdog24"
+        }
+     ]
+    }
+
+|
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/parameter.txt b/docs/latest/_sources/development/traffic_ops_api/v12/parameter.txt
index 569cb85..1ee6d24 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/parameter.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/parameter.txt
@@ -159,9 +159,118 @@
 
 |
 
+**GET /api/1.2/parameters/:id/unassigned_profiles**
+
+    Retrieves all profiles NOT assigned to the parameter.
+
+	Authentication Required: Yes
+
+	Role(s) Required: None
+
+	**Request Route Parameters**
+
+	+---------------+----------+----------------------------------------------------+
+	|    Name       | Required |                    Description                     |
+	+===============+==========+====================================================+
+	| ``id``        |   yes    | Parameter ID.                                      |
+	+---------------+----------+----------------------------------------------------+
+
+	**Response Properties**
+
+	+-----------------+--------+----------------------------------------------------+
+	|    Parameter    |  Type  |                    Description                     |
+	+=================+========+====================================================+
+	| ``lastUpdated`` | array  | The Time / Date this server entry was last updated |
+	+-----------------+--------+----------------------------------------------------+
+	| ``name``        | string | The name for the profile                           |
+	+-----------------+--------+----------------------------------------------------+
+	| ``id``          | string | Primary key                                        |
+	+-----------------+--------+----------------------------------------------------+
+	| ``description`` | string | The description for the profile                    |
+	+-----------------+--------+----------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+            "lastUpdated": "2012-10-08 19:34:45",
+            "name": "CCR_TOP",
+            "id": "8",
+            "description": "Content Router for top.foobar.net"
+        }
+     ]
+    }
+
+|
+
 
 **GET /api/1.2/profiles/:id/parameters**
 
+  Retrieves all parameters assigned to the profile.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +------------------+----------+-----------------------+
+  |       Name       | Required | Description           |
+  +==================+==========+=======================+
+  | ``id``           | yes      | Profile id            |
+  +------------------+----------+-----------------------+
+
+  **Response Properties**
+
+  +------------------+---------+--------------------------------------------------------------------------------+
+  |    Parameter     |  Type   |                    Description                                                 |
+  +==================+=========+================================================================================+
+  | ``last_updated`` | string  | The Time / Date this server entry was last updated                             |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``secure``       | boolean | When true, the parameter is accessible only by admin users. Defaults to false. |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``value``        | string  | The parameter value, only visible to admin if secure is true                   |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``name``         | string  | The parameter name                                                             |
+  +------------------+---------+--------------------------------------------------------------------------------+
+  | ``config_file``  | string  | The parameter config_file                                                      |
+  +------------------+---------+--------------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "last_updated": "2012-09-17 21:41:22",
+           "secure": false,
+           "value": "foo.bar.net",
+           "name": "domain_name",
+           "config_file": "FooConfig.xml"
+        },
+        {
+           "last_updated": "2012-09-17 21:41:22",
+           "secure": false,
+           "value": "0,1,2,3,4,5,6",
+           "name": "Drive_Letters",
+           "config_file": "storage.config"
+        },
+        {
+           "last_updated": "2012-09-17 21:41:22",
+           "secure": true,
+           "value": "STRING __HOSTNAME__",
+           "name": "CONFIG proxy.config.proxy_name",
+           "config_file": "records.config"
+        }
+     ],
+    }
+
+|
+
+**GET /api/1.2/profiles/:id/unassigned_parameters**
+
+  Retrieves all parameters NOT assigned to the profile.
+
   Authentication Required: Yes
 
   Role(s) Required: None
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/profile.txt b/docs/latest/_sources/development/traffic_ops_api/v12/profile.txt
index bec8f9f..ae9fcda 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/profile.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/profile.txt
@@ -35,7 +35,9 @@
 	+---------------+----------+----------------------------------------------------+
 	|    Name       | Required |                    Description                     |
 	+===============+==========+====================================================+
-	| ``param``     |   no     | Used to filter profiles by parameter.              |
+	| ``param``     |   no     | Used to filter profiles by parameter ID.           |
+	+---------------+----------+----------------------------------------------------+
+	| ``cdn``       |   no     | Used to filter profiles by CDN ID.                 |
 	+---------------+----------+----------------------------------------------------+
 
 	**Response Properties**
@@ -43,24 +45,33 @@
 	+-----------------+--------+----------------------------------------------------+
 	|    Parameter    |  Type  |                    Description                     |
 	+=================+========+====================================================+
-	| ``lastUpdated`` | array  | The Time / Date this server entry was last updated |
+	| ``id``          | string | Primary key                                        |
 	+-----------------+--------+----------------------------------------------------+
 	| ``name``        | string | The name for the profile                           |
 	+-----------------+--------+----------------------------------------------------+
-	| ``id``          | string | Primary key                                        |
-	+-----------------+--------+----------------------------------------------------+
 	| ``description`` | string | The description for the profile                    |
 	+-----------------+--------+----------------------------------------------------+
+	| ``cdn``         |  int   | The CDN ID                                         |
+	+-----------------+--------+----------------------------------------------------+
+	| ``cdnName``     | string | The CDN name                                       |
+	+-----------------+--------+----------------------------------------------------+
+	| ``type``        | string | Profile type                                       |
+	+-----------------+--------+----------------------------------------------------+
+	| ``lastUpdated`` | array  | The Time / Date this server entry was last updated |
+	+-----------------+--------+----------------------------------------------------+
 
   **Response Example** ::
 
     {
      "response": [
         {
-            "lastUpdated": "2012-10-08 19:34:45",
-            "name": "CCR_TOP",
             "id": "8",
-            "description": "Content Router for top.foobar.net"
+            "name": "EDGE_27_PROFILE",
+            "description": "A profile with all the Foo parameters"
+            "cdn": 1
+            "cdnName": "cdn1"
+            "type": "ATS_PROFILE"
+            "lastUpdated": "2012-10-08 19:34:45",
         }
      ]
     }
@@ -86,7 +97,7 @@
     {
      "response": [
         {
-            "name": "CCR_TOP"
+            "name": "EDGE_27_PROFILE"
         }
      ]
     }
@@ -112,24 +123,33 @@
 	+-----------------+--------+----------------------------------------------------+
 	|    Parameter    |  Type  |                    Description                     |
 	+=================+========+====================================================+
-	| ``lastUpdated`` | array  | The Time / Date this server entry was last updated |
+	| ``id``          | string | Primary key                                        |
 	+-----------------+--------+----------------------------------------------------+
 	| ``name``        | string | The name for the profile                           |
 	+-----------------+--------+----------------------------------------------------+
-	| ``id``          | string | Primary key                                        |
-	+-----------------+--------+----------------------------------------------------+
 	| ``description`` | string | The description for the profile                    |
 	+-----------------+--------+----------------------------------------------------+
+	| ``cdn``         |  int   | The CDN ID                                         |
+	+-----------------+--------+----------------------------------------------------+
+	| ``cdnName``     | string | The CDN name                                       |
+	+-----------------+--------+----------------------------------------------------+
+	| ``type``        | string | Profile type                                       |
+	+-----------------+--------+----------------------------------------------------+
+	| ``lastUpdated`` | array  | The Time / Date this server entry was last updated |
+	+-----------------+--------+----------------------------------------------------+
 
   **Response Example** ::
 
     {
      "response": [
         {
-            "lastUpdated": "2012-10-08 19:34:45",
-            "name": "CCR_TOP",
             "id": "8",
-            "description": "Content Router for top.foobar.net"
+            "name": "EDGE_27_PROFILE",
+            "description": "A profile with all the Foo parameters"
+            "cdn": 1
+            "cdnName": "cdn1"
+            "type": "ATS_PROFILE"
+            "lastUpdated": "2012-10-08 19:34:45",
         }
      ]
     }
@@ -138,7 +158,7 @@
 
 
 **POST /api/1.2/profiles**
-    Create a new empty  profile. 
+    Create a new empty profile.
 
 	Authentication Required: Yes
 
@@ -146,19 +166,26 @@
 
 	**Request Properties**
 
-	+-----------------------+--------+----------------------------------------------------+
-	|    Parameter          |  Type  |                    Description                     |
-	+=======================+========+====================================================+
-	| ``name``              | string | The name of the new profile                        |
-	+-----------------------+--------+----------------------------------------------------+
-	| ``description``       | string | new profile description                            |
-	+-----------------------+--------+----------------------------------------------------+
+	+-----------------------+--------+----------+-----------------------------------------+
+	|  Parameter            |  Type  | Required |           Description                   |
+	+=======================+========+==========+=========================================+
+	| ``name``              | string | yes      | Profile name                            |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``description``       | string | yes      | Profile description                     |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``cdn``               |  int   | no       | CDN ID                                  |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``type``              | string | yes      | Profile type                            |
+	+-----------------------+--------+----------+-----------------------------------------+
+
 
   **Request Example** ::
 
     {
-      "name": "CCR_COPY",
-      "description": "CCR_COPY description",
+      "name": "EDGE_28_PROFILE",
+      "description": "EDGE_28_PROFILE description",
+      "cdn": 1,
+      "type": "ATS_PROFILE"
     }
 
 |
@@ -168,11 +195,15 @@
 	+-----------------------+--------+----------------------------------------------------+
 	|    Parameter          |  Type  |                    Description                     |
 	+=======================+========+====================================================+
-	| ``id``                | string | Id of the new profile                              |
+	| ``id``                | string | Profile ID                                         |
 	+-----------------------+--------+----------------------------------------------------+
-	| ``name``              | string | The name of the new profile                        |
+	| ``name``              | string | Profile name                                       |
 	+-----------------------+--------+----------------------------------------------------+
-	| ``description``       | string | new profile description                            |
+	| ``description``       | string | Profile description                                |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``cdn``               |  int   | CDN ID                                             |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``type``              | string | Profile type                                       |
 	+-----------------------+--------+----------------------------------------------------+
 
   **Response Example** ::
@@ -181,8 +212,10 @@
      "response": [
         {
             "id": "66",
-            "name": "CCR_COPY",
-            "description": "CCR_COPY description",
+            "name": "EDGE_28_PROFILE",
+            "description": "EDGE_28_PROFILE description",
+		  	"cdn": 1,
+      		"type": "ATS_PROFILE"
         }
      ]
     }
@@ -257,50 +290,53 @@
 
 	**Request Properties**
 
-	+-----------------+----------+---------------------------------------------------+
-	| Parameter       | Required | Description                                       |
-	+=================+==========+===================================================+
-	| ``name``        | yes      | The new name for the profile.                     |
-	+-----------------+----------+---------------------------------------------------+
-	| ``description`` | yes      | The new description for the profile.              |
-	+-----------------+----------+---------------------------------------------------+
+	+-----------------------+--------+----------+-----------------------------------------+
+	|  Parameter            |  Type  | Required |           Description                   |
+	+=======================+========+==========+=========================================+
+	| ``name``              | string | yes      | Profile name                            |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``description``       | string | yes      | Profile description                     |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``cdn``               |  int   | no       | CDN ID - must use the same ID as any    |
+	|                       |        |          | servers assigned to the profile.        |
+	+-----------------------+--------+----------+-----------------------------------------+
+	| ``type``              | string | yes      | Profile type                            |
+	+-----------------------+--------+----------+-----------------------------------------+
 
   **Request Example** ::
 
     {
-      "name": "CCR_UPDATE",
-      "description": "CCR_UPDATE description"
+      "name": "EDGE_28_PROFILE",
+      "description": "EDGE_28_PROFILE description",
+      "cdn": 1,
+      "type": "ATS_PROFILE"
     }
 
  	**Response Properties**
 
-	+------------------+--------+----------------------------------+
-	|  Parameter       |  Type  |           Description            |
-	+==================+========+==================================+
-	| ``response``     |        | The updated profile info.        |
-	+------------------+--------+----------------------------------+
-	| ``>id``          | string | Profile id.                      |
-	+------------------+--------+----------------------------------+
-	| ``>name``        | string | Profile name.                    |
-	+------------------+--------+----------------------------------+
-	| ``>description`` | string | Profile description.             |
-	+------------------+--------+----------------------------------+
-	| ``alerts``       | array  | A collection of alert messages.  |
-	+------------------+--------+----------------------------------+
-	| ``>level``       | string | success, info, warning or error. |
-	+------------------+--------+----------------------------------+
-	| ``>text``        | string | Alert message.                   |
-	+------------------+--------+----------------------------------+
-	| ``version``      | string |                                  |
-	+------------------+--------+----------------------------------+
+	+-----------------------+--------+----------------------------------------------------+
+	|    Parameter          |  Type  |                    Description                     |
+	+=======================+========+====================================================+
+	| ``id``                | string | Profile ID                                         |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``name``              | string | Profile name                                       |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``description``       | string | Profile description                                |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``cdn``               |  int   | CDN ID                                             |
+	+-----------------------+--------+----------------------------------------------------+
+	| ``type``              | string | Profile type                                       |
+	+-----------------------+--------+----------------------------------------------------+
 
   **Response Example** ::
 
     {
       "response":{
         "id": "219",
-        "name": "CCR_UPDATE",
-        "description": "CCR_UPDATE description"
+        "name": "EDGE_28_PROFILE",
+        "description": "EDGE_28_PROFILE description"
+        "cdn": 1
+        "type": "ATS_PROFILE"
       }
       "alerts":[
         {
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/server.txt b/docs/latest/_sources/development/traffic_ops_api/v12/server.txt
index 2a08586..c5df386 100644
--- a/docs/latest/_sources/development/traffic_ops_api/v12/server.txt
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/server.txt
@@ -488,6 +488,10 @@
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``sslKeyVersion``        | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenant``               | string | Owning tenant name                                                                                                                   |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
+  | ``tenantId``             | int    | Owning tenant ID.                                                                                                                    |
+  +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trRequestHeaders``     | string |                                                                                                                                      |
   +--------------------------+--------+--------------------------------------------------------------------------------------------------------------------------------------+
   | ``trResponseHeaders``    | string |                                                                                                                                      |
@@ -562,6 +566,8 @@
             "remapText": null,
             "signed": false,
             "sslKeyVersion": "0",
+            "tenant": "root",
+            "tenantId": 1,
             "trRequestHeaders": null,
             "trResponseHeaders": "Access-Control-Allow-Origin: *",
             "type": "HTTP",
@@ -576,7 +582,7 @@
 |
 
 
-**GET /api/1.2/servers/summary**
+**GET /api/1.2/servers/totals**
 
   Retrieves a count of CDN servers by type.
 
@@ -622,6 +628,49 @@
 
 |
 
+**GET /api/1.2/servers/status**
+
+  Retrieves a count of CDN servers by status.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Response Properties**
+
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | Parameter       |  Type  |                             Description                                                                               |
+  +=================+========+=======================================================================================================================+
+  | ``ONLINE``      | int    | The number of ONLINE servers. Traffic Monitor will not monitor the state of ONLINE servers. True health is unknown.   |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | ``REPORTED``    | int    | The number of REPORTED servers. Traffic Monitor monitors the state of REPORTED servers and removes them if unhealthy. |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | ``OFFLINE``     | int    | The number of OFFLINE servers. Used for longer-term maintenance. These servers are excluded from CRConfig.json.       |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | ``ADMIN_DOWN``  | int    | The number of ADMIN_DOWN servers. Used for short-term maintenance. These servers are included in CRConfig.json.       |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | ``CCR_IGNORE``  | int    | The number of CCR_IGNORE servers. These servers are excluded from CRConfig.json.                                      |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+  | ``PRE_PROD``    | int    | The number of PRE_PROD servers. Used for servers to be deployed. These servers are excluded from CRConfig.json.       |
+  +-----------------+--------+-----------------------------------------------------------------------------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+      "response":
+        {
+          "ONLINE": 100,
+          "OFFLINE": 23,
+          "REPORTED": 45,
+          "ADMIN_DOWN": 4,
+          "CCR_IGNORE": 1,
+          "PRE_PROD": 0,
+        }
+    }
+
+|
+
+
 **GET /api/1.2/servers/hostname/:name/details**
 
   Retrieves the details of a server.
@@ -878,67 +927,67 @@
 
   **Request Properties**
 
-  +----------------+----------+------------------------------------------------+
-  |      Name      | Required |                  Description                   |
-  +================+==========+================================================+
-  | hostName       | yes      | The host name part of the server.              |
-  +----------------+----------+------------------------------------------------+
-  | domainName     | yes      | The domain name part of the FQDN of the cache. |
-  +----------------+----------+------------------------------------------------+
-  | cachegroup     | yes      | cache group name                               |
-  +----------------+----------+------------------------------------------------+
-  | interfaceName  | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipAddress      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipNetmask      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipGateway      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | interfaceMtu   | no       | 1500 or 9000                                   |
-  +----------------+----------+------------------------------------------------+
-  | physLocation   | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | type           | yes      | server type                                    |
-  +----------------+----------+------------------------------------------------+
-  | profile        | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | cdnName        | yes      | cdn name the server belongs to                 |
-  +----------------+----------+------------------------------------------------+
-  | tcpPort        | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | httpsPort      | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | xmppId         | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | xmppPasswd     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ip6Address     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ip6Gateway     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | rack           | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpAddress  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpNetmask  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpGateway  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpAddress   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpNetmask   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpGateway   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloUsername    | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloPassword    | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | routerHostName | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | routerPortName | no       |                                                |
-  +----------------+----------+------------------------------------------------+
+  +----------------+----------+-------------------------------------------------+
+  |      Name      | Required |                  Description                    |
+  +================+==========+=================================================+
+  | hostName       | yes      | The host name part of the server.               |
+  +----------------+----------+-------------------------------------------------+
+  | domainName     | yes      | The domain name part of the FQDN of the cache.  |
+  +----------------+----------+-------------------------------------------------+
+  | cachegroup     | yes      | cache group name                                |
+  +----------------+----------+-------------------------------------------------+
+  | interfaceName  | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ipAddress      | yes      | Must be unique per server profile.              |
+  +----------------+----------+-------------------------------------------------+
+  | ipNetmask      | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ipGateway      | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | interfaceMtu   | no       | 1500 or 9000                                    |
+  +----------------+----------+-------------------------------------------------+
+  | physLocation   | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | type           | yes      | server type                                     |
+  +----------------+----------+-------------------------------------------------+
+  | profile        | yes      | Profile ID - Profile's CDN must match server's. |
+  +----------------+----------+-------------------------------------------------+
+  | cdnName        | yes      | cdn name the server belongs to                  |
+  +----------------+----------+-------------------------------------------------+
+  | tcpPort        | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | httpsPort      | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | xmppId         | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | xmppPasswd     | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ip6Address     | no       | Must be unique per server profile.              |
+  +----------------+----------+-------------------------------------------------+
+  | ip6Gateway     | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | rack           | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpAddress  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpNetmask  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpGateway  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpAddress   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpNetmask   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpGateway   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloUsername    | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloPassword    | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | routerHostName | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | routerPortName | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
 
   **Request Example** ::
 
@@ -1084,67 +1133,67 @@
 
   **Request Properties**
 
-  +----------------+----------+------------------------------------------------+
-  |      Name      | Required |                  Description                   |
-  +================+==========+================================================+
-  | hostName       | yes      | The host name part of the server.              |
-  +----------------+----------+------------------------------------------------+
-  | domainName     | yes      | The domain name part of the FQDN of the cache. |
-  +----------------+----------+------------------------------------------------+
-  | cachegroup     | yes      | cache group name                               |
-  +----------------+----------+------------------------------------------------+
-  | interfaceName  | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipAddress      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipNetmask      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ipGateway      | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | interfaceMtu   | no       | 1500 or 9000                                   |
-  +----------------+----------+------------------------------------------------+
-  | physLocation   | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | type           | yes      | server type                                    |
-  +----------------+----------+------------------------------------------------+
-  | profile        | yes      |                                                |
-  +----------------+----------+------------------------------------------------+
-  | cdnName        | yes      | cdn name the server belongs to                 |
-  +----------------+----------+------------------------------------------------+
-  | tcpPort        | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | httpsPort      | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | xmppId         | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | xmppPasswd     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ip6Address     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | ip6Gateway     | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | rack           | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpAddress  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpNetmask  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | mgmtIpGateway  | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpAddress   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpNetmask   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloIpGateway   | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloUsername    | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | iloPassword    | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | routerHostName | no       |                                                |
-  +----------------+----------+------------------------------------------------+
-  | routerPortName | no       |                                                |
-  +----------------+----------+------------------------------------------------+
+  +----------------+----------+-------------------------------------------------+
+  |      Name      | Required |                  Description                    |
+  +================+==========+=================================================+
+  | hostName       | yes      | The host name part of the server.               |
+  +----------------+----------+-------------------------------------------------+
+  | domainName     | yes      | The domain name part of the FQDN of the cache.  |
+  +----------------+----------+-------------------------------------------------+
+  | cachegroup     | yes      | cache group name                                |
+  +----------------+----------+-------------------------------------------------+
+  | interfaceName  | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ipAddress      | yes      | Must be unique per server profile.              |
+  +----------------+----------+-------------------------------------------------+
+  | ipNetmask      | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ipGateway      | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | interfaceMtu   | no       | 1500 or 9000                                    |
+  +----------------+----------+-------------------------------------------------+
+  | physLocation   | yes      |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | type           | yes      | server type                                     |
+  +----------------+----------+-------------------------------------------------+
+  | profile        | yes      | Profile ID - Profile's CDN must match server's. |
+  +----------------+----------+-------------------------------------------------+
+  | cdnName        | yes      | cdn name the server belongs to                  |
+  +----------------+----------+-------------------------------------------------+
+  | tcpPort        | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | httpsPort      | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | xmppId         | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | xmppPasswd     | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | ip6Address     | no       | Must be unique per server profile.              |
+  +----------------+----------+-------------------------------------------------+
+  | ip6Gateway     | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | rack           | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpAddress  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpNetmask  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | mgmtIpGateway  | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpAddress   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpNetmask   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloIpGateway   | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloUsername    | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | iloPassword    | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | routerHostName | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
+  | routerPortName | no       |                                                 |
+  +----------------+----------+-------------------------------------------------+
 
   **Request Example** ::
 
@@ -1272,6 +1321,66 @@
 
 |
 
+**PUT /api/1.2/servers/{:id}/status**
+
+  Updates server status and queues updates on all child caches if server type is EDGE or MID. Also, captures offline reason if status is set to ADMIN_DOWN or OFFLINE and prepends offline reason with the user that initiated the status change.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin or Operations
+
+  **Request Route Parameters**
+
+  +------+----------+-------------------------------+
+  | Name | Required | Description                   |
+  +======+==========+===============================+
+  | id   | yes      | The id of the server.         |
+  +------+----------+-------------------------------+
+
+  **Request Properties**
+
+  +----------------+----------+-------------------------------------------------+
+  |      Name      | Required |                  Description                    |
+  +================+==========+=================================================+
+  | status         | yes      | Status ID or name.                              |
+  +----------------+----------+-------------------------------------------------+
+  | offlineReason  | yes|no   | Required if status is ADMIN_DOWN or OFFLINE.    |
+  +----------------+----------+-------------------------------------------------+
+
+  **Request Example** ::
+
+    {
+        "status": "ADMIN_DOWN",
+        "offlineReason": "Bad drives"
+    }
+
+|
+
+  **Response Properties**
+
+  +-------------+--------+----------------------------------+
+  |  Parameter  |  Type  |           Description            |
+  +=============+========+==================================+
+  | ``alerts``  | array  | A collection of alert messages.  |
+  +-------------+--------+----------------------------------+
+  | ``>level``  | string | Success, info, warning or error. |
+  +-------------+--------+----------------------------------+
+  | ``>text``   | string | Alert message.                   |
+  +-------------+--------+----------------------------------+
+
+  **Response Example** ::
+
+    {
+          "alerts": [
+                    {
+                            "level": "success",
+                            "text": "Updated status [ ADMIN_DOWN ] for foo.bar.net [ user23: bad drives ] and queued updates on all child caches"
+                    }
+            ],
+    }
+
+|
+
 **DELETE /api/1.2/servers/{:id}**
 
   Allow user to delete server through api.
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/steering_target.txt b/docs/latest/_sources/development/traffic_ops_api/v12/steering_target.txt
new file mode 100644
index 0000000..5e72f85
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/steering_target.txt
@@ -0,0 +1,324 @@
+..
+..
+.. 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-v12-steering-targets:
+
+Steering Targets
+================
+
+.. _to-api-v12-steering-target-route:
+
+**GET /api/1.2/steering/:dsId/targets**
+
+  Get all targets for a steering delivery service.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-------------+----------+---------------------------------------------+
+  |   Name      | Required |                Description                  |
+  +=============+==========+=============================================+
+  | ``dsId``    |   yes    | DS ID.                                      |
+  +-------------+----------+---------------------------------------------+
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``deliveryServiceId`` |  int   | DS ID                                           |
+  +----------------------+--------+-------------------------------------------------+
+  |``deliveryService``   | string | DS XML ID                                       |
+  +----------------------+--------+-------------------------------------------------+
+  |``targetId``          |  int   | Target DS ID                                    |
+  +----------------------+--------+-------------------------------------------------+
+  |``target``            | string | Target DS XML ID                                |
+  +----------------------+--------+-------------------------------------------------+
+  |``value``             |  int   | Value is weight or order depending on type      |
+  +----------------------+--------+-------------------------------------------------+
+  |``typeId``            |  int   | Steering target type ID                         |
+  +----------------------+--------+-------------------------------------------------+
+  |``type``              | string | Steering target type name                       |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "deliveryServiceId": 1
+           "deliveryService": "steering-ds-one",
+           "targetId": 2,
+           "target": "steering-target-one",
+           "value": 1,
+           "typeId": 35,
+           "type": "STEERING_ORDER"
+        },
+        {
+           "deliveryServiceId": 1
+           "deliveryService": "steering-ds-one",
+           "targetId": 3,
+           "target": "steering-target-two",
+           "value": 2,
+           "typeId": 35,
+           "type": "STEERING_ORDER"
+        },
+     ]
+    }
+
+|
+
+**GET /api/1.2/steering/:dsId/targets/:targetId**
+
+  Get a steering target.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Request Route Parameters**
+
+  +-------------+----------+---------------------------------------------+
+  |   Name      | Required |                Description                  |
+  +=============+==========+=============================================+
+  | ``dsId``    |   yes    | DS ID.                                      |
+  +-------------+----------+---------------------------------------------+
+  | ``targetId``|   yes    | DS Target ID.                               |
+  +-------------+----------+---------------------------------------------+
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``deliveryServiceId`` |  int   | DS ID                                           |
+  +----------------------+--------+-------------------------------------------------+
+  |``deliveryService``   | string | DS XML ID                                       |
+  +----------------------+--------+-------------------------------------------------+
+  |``targetId``          |  int   | Target DS ID                                    |
+  +----------------------+--------+-------------------------------------------------+
+  |``target``            | string | Target DS XML ID                                |
+  +----------------------+--------+-------------------------------------------------+
+  |``value``             |  int   | Value is weight or order depending on type      |
+  +----------------------+--------+-------------------------------------------------+
+  |``typeId``            |  int   | Steering target type ID                         |
+  +----------------------+--------+-------------------------------------------------+
+  |``type``              | string | Steering target type name                       |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "deliveryServiceId": 1
+           "deliveryService": "steering-ds-one",
+           "targetId": 2,
+           "target": "steering-target-one",
+           "value": 1,
+           "typeId": 35,
+           "type": "STEERING_ORDER"
+        }
+     ]
+    }
+
+|
+
+
+**PUT /api/1.2/steering/:dsId/targets/:targetId**
+
+  Update a steering target.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin
+
+  **Request Route Parameters**
+
+  +-------------+----------+---------------------------------------------+
+  |   Name      | Required |                Description                  |
+  +=============+==========+=============================================+
+  | ``dsId``    |   yes    | DS ID.                                      |
+  +-------------+----------+---------------------------------------------+
+  | ``targetId``|   yes    | DS Target ID.                               |
+  +-------------+----------+---------------------------------------------+
+
+  **Request Properties**
+
+  +------------------------+----------+--------------------------+
+  | Parameter              | Required | Description              |
+  +========================+==========+==========================+
+  | ``deliveryServiceId``  | yes      | Steering DS ID           |
+  +------------------------+----------+--------------------------+
+  | ``targetId``           | yes      | Target DS ID             |
+  +------------------------+----------+--------------------------+
+  | ``value``              | yes      | Target value             |
+  +------------------------+----------+--------------------------+
+  | ``typeId``             | yes      | Target type ID           |
+  +------------------------+----------+--------------------------+
+
+  **Request Example** ::
+
+    {
+        "deliveryServiceId": 1
+        "targetId": 2
+        "value": 34,
+        "typeId": 46,
+    }
+
+|
+
+  **Response Properties**
+
+  +------------------------+----------+--------------------------+
+  | Parameter              | Type     | Description              |
+  +========================+==========+==========================+
+  | ``deliveryServiceId``  | int      | Steering DS ID           |
+  +------------------------+----------+--------------------------+
+  | ``targetId``           | int      | Target DS ID             |
+  +------------------------+----------+--------------------------+
+  | ``value``              | string   | Target value             |
+  +------------------------+----------+--------------------------+
+  | ``typeId``             | int      | Target type ID           |
+  +------------------------+----------+--------------------------+
+
+  **Response Example** ::
+
+	{
+		"response": {
+			"deliveryServiceId": 1,
+			"targetId": 2,
+			"value": "34",
+			"typeId": 45
+		},
+		"alerts": [
+			{
+				"level": "success",
+				"text": "Delivery service steering target update was successful."
+			}
+		]
+	}
+
+|
+
+
+**POST /api/1.2/steering/:dsId/targets**
+
+  Create a steering target.
+
+  Authentication Required: Yes
+
+  Role(s) Required: Admin
+
+  **Request Route Parameters**
+
+  +-------------+----------+---------------------------------------------+
+  |   Name      | Required |                Description                  |
+  +=============+==========+=============================================+
+  | ``dsId``    |   yes    | DS ID.                                      |
+  +-------------+----------+---------------------------------------------+
+
+  **Request Properties**
+
+  +------------------------+----------+--------------------------+
+  | Parameter              | Required | Description              |
+  +========================+==========+==========================+
+  | ``deliveryServiceId``  | yes      | Steering DS ID           |
+  +------------------------+----------+--------------------------+
+  | ``targetId``           | yes      | Target DS ID             |
+  +------------------------+----------+--------------------------+
+  | ``value``              | yes      | Target value             |
+  +------------------------+----------+--------------------------+
+  | ``typeId``             | yes      | Target type ID           |
+  +------------------------+----------+--------------------------+
+gi
+  **Request Example** ::
+
+    {
+        "deliveryServiceId": 1
+        "targetId": 6
+        "value": 22,
+        "typeId": 47,
+    }
+
+|
+
+  **Response Properties**
+
+  +------------------------+----------+--------------------------+
+  | Parameter              | Type     | Description              |
+  +========================+==========+==========================+
+  | ``deliveryServiceId``  | int      | Steering DS ID           |
+  +------------------------+----------+--------------------------+
+  | ``targetId``           | int      | Target DS ID             |
+  +------------------------+----------+--------------------------+
+  | ``value``              | string   | Target value             |
+  +------------------------+----------+--------------------------+
+  | ``typeId``             | int      | Target type ID           |
+  +------------------------+----------+--------------------------+
+
+  **Response Example** ::
+
+	{
+		"response": {
+			"deliveryServiceId": 1,
+			"targetId": 6,
+			"value": "22",
+			"typeId": 47
+		},
+		"alerts": [
+			{
+				"level": "success",
+				"text": "Delivery service target creation was successful."
+			}
+		]
+	}
+
+|
+
+**DELETE /api/1.2/steering/:dsId/targets/:targetId**
+
+  Delete a steering target.
+
+  Authentication Required: Yes
+
+  Role(s) Required:  Admin
+
+  **Request Route Parameters**
+
+  +-------------+----------+---------------------------------------------+
+  |   Name      | Required |                Description                  |
+  +=============+==========+=============================================+
+  | ``dsId``    |   yes    | DS ID.                                      |
+  +-------------+----------+---------------------------------------------+
+  | ``targetId``|   yes    | DS Target ID.                               |
+  +-------------+----------+---------------------------------------------+
+
+  **Response Example** ::
+
+    {
+          "alerts": [
+                    {
+                            "level": "success",
+                            "text": "Delivery service target delete was successful."
+                    }
+            ],
+    }
+
+|
+
diff --git a/docs/latest/_sources/development/traffic_ops_api/v12/tenant.txt b/docs/latest/_sources/development/traffic_ops_api/v12/tenant.txt
new file mode 100644
index 0000000..f75868e
--- /dev/null
+++ b/docs/latest/_sources/development/traffic_ops_api/v12/tenant.txt
@@ -0,0 +1,255 @@
+..
+..
+.. 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-v12-tenant:
+
+Tenants
+=======
+
+.. _to-api-v12-tenant-route:
+
+/api/1.2/tenants
+++++++++++++++++++
+
+**GET /api/1.2/tenants**
+
+  Get all tenants.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``id``                |  int   | Tenant id                                       |
+  +----------------------+--------+-------------------------------------------------+
+  |``name``              | string | Tenant name                                     |
+  +----------------------+--------+-------------------------------------------------+
+  |``active``            |  bool  | Active or inactive                              |
+  +----------------------+--------+-------------------------------------------------+
+  |``parentId``          |  int   | Parent tenant ID                                |
+  +----------------------+--------+-------------------------------------------------+
+  |``parentName``        | string | Parent tenant name                              |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "id": 1
+           "name": "root",
+           "active": true,
+           "parentId": null,
+           "parentName": null,
+        },
+        {
+           "id": 2
+           "name": "tenant-a",
+           "active": true,
+           "parentId": 1
+           "parentName": "root"
+        }
+     ]
+    }
+
+|
+
+
+**GET /api/1.2/tenants/:id**
+
+  Get a tenant by ID.
+
+  Authentication Required: Yes
+
+  Role(s) Required: None
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``id``                |  int   | Tenant id                                       |
+  +----------------------+--------+-------------------------------------------------+
+  |``name``              | string | Tenant name                                     |
+  +----------------------+--------+-------------------------------------------------+
+  |``active``            |  bool  | Active or inactive                              |
+  +----------------------+--------+-------------------------------------------------+
+  |``parentId``          |  int   | Parent tenant ID                                |
+  +----------------------+--------+-------------------------------------------------+
+  |``parentName``        | string | Parent tenant name                              |
+  +----------------------+--------+-------------------------------------------------+
+
+  **Response Example** ::
+
+    {
+     "response": [
+        {
+           "id": 2
+           "name": "tenant-a",
+           "active": true,
+           "parentId": 1,
+           "parentName": "root"
+        }
+     ]
+    }
+
+|
+
+
+**PUT /api/1.2/tenants/:id**
+
+  Update a tenant.
+
+  Authentication Required: Yes
+
+  Role(s) Required: admin or oper
+
+  **Request Route Parameters**
+
+  +-------------------+----------+------------------------------------------------+
+  | Name              |   Type   |                 Description                    |
+  +===================+==========+================================================+
+  | ``id``            |   int    | Tenant id                                      |
+  +-------------------+----------+------------------------------------------------+
+
+  **Request Properties**
+
+  +-------------------+----------+--------------------------+
+  | Parameter         | Required | Description              |
+  +===================+==========+==========================+
+  | ``name``          | yes      | The name of the tenant   |
+  +-------------------+----------+--------------------------+
+  | ``active``        | yes      | True or false            |
+  +-------------------+----------+--------------------------+
+  | ``parentId``      | yes      | Parent tenant            |
+  +-------------------+----------+--------------------------+
+
+  **Request Example** ::
+
+    {
+        "name": "my-tenant"
+        "active": true
+        "parentId": 1
+    }
+
+|
+
+  **Response Properties**
+
+  +----------------------+--------+-------------------------------------------------+
+  | Parameter            | Type   | Description                                     |
+  +======================+========+=================================================+
+  |``id``                |  int   | Tenant id                                       |
+  +----------------------+--------+-------------------------------------------------+