[DMAAP-BC] Consolidate bus controller repos
[dmaap/buscontroller.git] / docs / apis / api.rst
diff --git a/docs/apis/api.rst b/docs/apis/api.rst
new file mode 100644 (file)
index 0000000..7379556
--- /dev/null
@@ -0,0 +1,4926 @@
+DMaaP Bus Controller REST API 1.1.0
+===================================
+
+Description
+~~~~~~~~~~~
+
+    Bus Controller provides an API for OpenDCAE components which need to provision
+    underlying DMaaP technologies (Data Router and Message Router).
+    Primary clients for this API are anticipated to be the OpenDCAE
+    Controller, OpenDCAE Orchestrator, OpenDCAE Inventory and the
+    ECOMP Portal.
+
+    Objects managed by DMaaP are deployed in a dcaeLocation which is a
+    unique identifier for an OpenStack tenant for a dcaeLayer,
+    opendcae-central (aka ecomp) or opendcae-local-ntc (aka edge).
+
+    A dcaeEnvironment (e.g. FTL or prod) has a single DMaaP. A
+    DMaaP is managed by a one or more stateless DMaaP Bus
+    Controller(s), though Bus Controller relies on PGaaS for
+    persistence. Each DMaaP has a single instance of Data Router,
+    which has 1 or more DR_Nodes deployed at each dcaeLocation. DR
+    Clients of type DR_Pub generally publish to a DR_Node that is
+    local to its dcaeLocation. Routing for a Feed is determined by
+    the dcaelocation of its DR_Sub clients.
+
+    A DMaaP may have many Message Router instances. Each instance is
+    deployed as an MR_Cluster. One MR_Cluster is deployed at each
+    dcaeLocation. MR_Clients generally communicate to the
+    MR_Cluster at the same dcaeLocation. Replication of messages
+    between MR_Clusters is accomplished by MR Bridge, which is
+    provioned by DMaaP Bus Controller based on Topic attributes.
+
+    Therefore, the role of DMaaP Bus Controller is to support other
+    DCAE infrastructure components to dynamically provision DMaaP
+    services on behalf of DMaaP clients, and to assist in any
+    management or discovery activity of its clients.
+
+    A convention of this API is to return JSON responses per
+    OpenStack style.
+
+
+
+Contact Information
+~~~~~~~~~~~~~~~~~~~
+
+
+
+
+http://www.onap.org
+
+
+
+
+License
+~~~~~~~
+
+
+`Licensed under the Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0>`_
+
+
+
+
+Base URL
+~~~~~~~~
+
+http://www.[host]:[port]/webapi
+https://www.[host]:[port]/webapi
+
+BRIDGE
+~~~~~~
+
+
+Endpoint for retreiving MR Bridge metrics
+
+
+
+
+
+GET ``/bridge``
+---------------
+
+
+Summary
++++++++
+
+return BrTopic details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `BrTopic` objects. If source and target query params are specified, only report on that bridge.  If detail param is true, list topics names, else just a count is returned.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        mmagent | query | No | string |  |  | 
+        detail | query | No | boolean |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`BrTopic <d_d71baea9d8e4e59bc395ef51f45dff1b>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "brSource": "somestring", 
+        "brTarget": "somestring", 
+        "mmAgentName": "somestring", 
+        "topicCount": 1
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/bridge``
+---------------
+
+
+Summary
++++++++
+
+update MirrorMaker details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    replace the topic list for a specific Bridge.  Use JSON Body for value to replace whitelist, but if refreshFlag param is true, simply refresh using existing whitelist.If split param is true, spread whitelist over smaller mmagents.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        mmagent | query | No | string |  |  | 
+        refresh | query | No | boolean |  |  | 
+        split | query | No | boolean |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`BrTopic <d_d71baea9d8e4e59bc395ef51f45dff1b>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "brSource": "somestring", 
+        "brTarget": "somestring", 
+        "mmAgentName": "somestring", 
+        "topicCount": 1
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+DCAELOCATIONS
+~~~~~~~~~~~~~
+
+
+an OpenStack tenant purposed for OpenDCAE (i.e. where OpenDCAE components might be deployed)
+
+
+
+
+
+POST ``/dcaeLocations``
+-----------------------
+
+
+Summary
++++++++
+
+return dcaeLocation details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create some `dcaeLocation` which is a unique identifier for an *OpenStack* tenant purposed for a *dcaeLayer*  (ecomp or edge).
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/dcaeLocations/{locationName}``
+----------------------------------------
+
+
+Summary
++++++++
+
+return dcaeLocation details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    delete a dcaeLocation
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        locationName | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dcaeLocations/{locationName}``
+-------------------------------------
+
+
+Summary
++++++++
+
+return dcaeLocation details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns a specific `dcaeLocation` object with specified tag
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        locationName | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dcaeLocations``
+----------------------
+
+
+Summary
++++++++
+
+return dcaeLocation details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `dcaeLocation` objects.  All objects managed by DMaaP are deployed in some `dcaeLocation` which is a unique identifier for an *OpenStack* tenant purposed for a *dcaeLayer*  (ecomp or edge).
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dcaeLocations/{locationName}``
+-------------------------------------
+
+
+Summary
++++++++
+
+return dcaeLocation details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    update the openStackAvailabilityZone of a dcaeLocation
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        locationName | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DcaeLocation <d_47d80e451933beb623fcf5257867cbcb>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "central": true, 
+        "clli": "somestring", 
+        "dcaeLayer": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "local": true, 
+        "openStackAvailabilityZone": "somestring", 
+        "status": "EMPTY", 
+        "subnet": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+DMAAP
+~~~~~
+
+
+V2 Endpoint for this instance of DMaaP object containing values for this OpenDCAE deployment
+
+
+
+
+
+POST ``/dmaap_v2``
+------------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create a new DMaaP set system wide configuration settings for the *dcaeEnvironment*.  Deprecated with introduction of persistence in 1610.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+POST ``/dmaap``
+---------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create a new DMaaP set system wide configuration settings for the *dcaeEnvironment*.  Deprecated with introduction of persistence in 1610.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dmaap_v2``
+-----------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    returns the `dmaap` object, which contains system wide configuration settings
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dmaap``
+--------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    returns the `dmaap` object, which contains system wide configuration settings
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dmaap_v2``
+-----------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update system settings for *dcaeEnvironment*.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dmaap``
+--------------
+
+
+Summary
++++++++
+
+return dmaap details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update system settings for *dcaeEnvironment*.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+DR_NODES
+~~~~~~~~
+
+
+Endpoint for a Data Router Node server
+
+
+
+
+
+POST ``/dr_nodes``
+------------------
+
+
+Summary
++++++++
+
+return DR_Node details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    create a `DR_Node` in a *dcaeLocation*.  Note that multiple `DR_Node`s may exist in the same `dcaeLocation`.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/dr_nodes/{fqdn}``
+---------------------------
+
+
+Summary
++++++++
+
+No Content
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete a single `DR_Node` object.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        fqdn | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_nodes/{fqdn}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Node details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve a single `DR_Node` object.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        fqdn | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_nodes``
+-----------------
+
+
+Summary
++++++++
+
+return DR_Node details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of `DR_Node` object array.  Need to add filter by dcaeLocation.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dr_nodes/{fqdn}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Node details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a single `DR_Node` object.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        fqdn | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Node <d_d15e2cee407536866c875375e3f705e0>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "hostName": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "status": "EMPTY", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+DR_PUBS
+~~~~~~~
+
+
+Endpoint for a Data Router client that implements a Publisher
+
+
+
+
+
+POST ``/dr_pubs``
+-----------------
+
+
+Summary
++++++++
+
+return DR_Pub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    create a DR Publisher in the specified environment.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/dr_pubs/{pubId}``
+---------------------------
+
+
+Summary
++++++++
+
+return DR_Pub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    delete a DR Publisher in the specified environment. Delete a `DR_Pub` object by pubId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        pubId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_pubs/{pubId}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Pub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    returns a DR Publisher in the specified environment. Gets a `DR_Pub` object by pubId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        pubId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_pubs``
+----------------
+
+
+Summary
++++++++
+
+return DR_Pub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `DR_Pub` objects.  Add filter for feedId.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dr_pubs/{pubId}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Pub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    update a DR Publisher in the specified environment.  Update a `DR_Pub` object by pubId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        pubId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+DR_SUBS
+~~~~~~~
+
+
+Endpoint for a Data Router client that implements a Subscriber
+
+
+
+
+
+POST ``/dr_subs``
+-----------------
+
+
+Summary
++++++++
+
+return DR_Sub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create a  `DR_Sub` object.  
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "dcaeLocationName": "somestring", 
+        "deliveryURL": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "status": "EMPTY", 
+        "subId": "somestring", 
+        "suspended": true, 
+        "use100": true, 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/dr_subs/{subId}``
+---------------------------
+
+
+Summary
++++++++
+
+return DR_Sub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete a  `DR_Sub` object, selected by subId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        subId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "dcaeLocationName": "somestring", 
+        "deliveryURL": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "status": "EMPTY", 
+        "subId": "somestring", 
+        "suspended": true, 
+        "use100": true, 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_subs/{subId}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Sub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve a  `DR_Sub` object, selected by subId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        subId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "dcaeLocationName": "somestring", 
+        "deliveryURL": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "status": "EMPTY", 
+        "subId": "somestring", 
+        "suspended": true, 
+        "use100": true, 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/dr_subs``
+----------------
+
+
+Summary
++++++++
+
+return DR_Sub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `DR_Sub` objects.  Add filter for feedId.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "dcaeLocationName": "somestring", 
+        "deliveryURL": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "status": "EMPTY", 
+        "subId": "somestring", 
+        "suspended": true, 
+        "use100": true, 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/dr_subs/{subId}``
+------------------------
+
+
+Summary
++++++++
+
+return DR_Sub details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a  `DR_Sub` object, selected by subId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        subId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "dcaeLocationName": "somestring", 
+        "deliveryURL": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "status": "EMPTY", 
+        "subId": "somestring", 
+        "suspended": true, 
+        "use100": true, 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+FEEDS
+~~~~~
+
+
+Endpoint for a Data Router Feed
+
+
+
+
+
+POST ``/feeds``
+---------------
+
+
+Summary
++++++++
+
+return Feed details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create a of  `Feed` object.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        useExisting | query | No | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Feed <d_289ad39619725df26c9ff382d4c97c75>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "asprClassification": "somestring", 
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "feedDescription": "somestring", 
+        "feedId": "somestring", 
+        "feedName": "somestring", 
+        "feedVersion": "somestring", 
+        "formatUuid": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "publishURL": "somestring", 
+        "pubs": [
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "status": "EMPTY", 
+        "subs": [
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "subscribeURL": "somestring", 
+        "suspended": true
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/feeds/{id}``
+----------------------
+
+
+Summary
++++++++
+
+return Feed details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete a  `Feed` object, specified by id.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        id | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`Feed <d_289ad39619725df26c9ff382d4c97c75>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "asprClassification": "somestring", 
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "feedDescription": "somestring", 
+        "feedId": "somestring", 
+        "feedName": "somestring", 
+        "feedVersion": "somestring", 
+        "formatUuid": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "publishURL": "somestring", 
+        "pubs": [
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "status": "EMPTY", 
+        "subs": [
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "subscribeURL": "somestring", 
+        "suspended": true
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Feed <d_289ad39619725df26c9ff382d4c97c75>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "asprClassification": "somestring", 
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "feedDescription": "somestring", 
+        "feedId": "somestring", 
+        "feedName": "somestring", 
+        "feedVersion": "somestring", 
+        "formatUuid": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "publishURL": "somestring", 
+        "pubs": [
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "status": "EMPTY", 
+        "subs": [
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "subscribeURL": "somestring", 
+        "suspended": true
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/feeds/{id}``
+-------------------
+
+
+Summary
++++++++
+
+return Feed details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve a  `Feed` object, specified by id.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        id | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "feedId": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "pubId": "somestring", 
+        "status": "EMPTY", 
+        "username": "somestring", 
+        "userpwd": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/feeds``
+--------------
+
+
+Summary
++++++++
+
+return Feed details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `Feed` objects.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        feedName | query | No | string |  |  | 
+        version | query | No | string |  |  | 
+        match | query | No | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Feed <d_289ad39619725df26c9ff382d4c97c75>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "asprClassification": "somestring", 
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "feedDescription": "somestring", 
+        "feedId": "somestring", 
+        "feedName": "somestring", 
+        "feedVersion": "somestring", 
+        "formatUuid": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "publishURL": "somestring", 
+        "pubs": [
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "status": "EMPTY", 
+        "subs": [
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "subscribeURL": "somestring", 
+        "suspended": true
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/feeds/{id}``
+-------------------
+
+
+Summary
++++++++
+
+return Feed details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a  `Feed` object, specified by id.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        id | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Feed <d_289ad39619725df26c9ff382d4c97c75>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "asprClassification": "somestring", 
+        "bytes": [
+            "somestring", 
+            "somestring"
+        ], 
+        "feedDescription": "somestring", 
+        "feedId": "somestring", 
+        "feedName": "somestring", 
+        "feedVersion": "somestring", 
+        "formatUuid": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "logURL": "somestring", 
+        "owner": "somestring", 
+        "publishURL": "somestring", 
+        "pubs": [
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "dcaeLocationName": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "pubId": "somestring", 
+                "status": "EMPTY", 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "status": "EMPTY", 
+        "subs": [
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }, 
+            {
+                "bytes": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "dcaeLocationName": "somestring", 
+                "deliveryURL": "somestring", 
+                "feedId": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "logURL": "somestring", 
+                "owner": "somestring", 
+                "status": "EMPTY", 
+                "subId": "somestring", 
+                "suspended": true, 
+                "use100": true, 
+                "username": "somestring", 
+                "userpwd": "somestring"
+            }
+        ], 
+        "subscribeURL": "somestring", 
+        "suspended": true
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+INFO
+~~~~
+
+
+Endpoint for this instance of DBCL.  Returns health info.
+
+
+
+
+
+GET ``/info``
+-------------
+
+
+Summary
++++++++
+
+return info details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    returns the `info` object
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Dmaap <d_4ea0e7758a1f8502222793e4a13b04f7>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "accessKeyOwner": "somestring", 
+        "bridgeAdminTopic": "somestring", 
+        "dmaapName": "somestring", 
+        "drProvUrl": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "loggingUrl": "somestring", 
+        "nodeKey": "somestring", 
+        "status": "EMPTY", 
+        "topicNsRoot": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+MR_CLIENTS
+~~~~~~~~~~
+
+
+Endpoint for a Message Router Client that implements a Publisher or a Subscriber
+
+
+
+
+
+POST ``/mr_clients``
+--------------------
+
+
+Summary
++++++++
+
+Associate an MR_Client object to a Topic
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create a  `MR_Client` object.The `dcaeLocation` attribute is used to match an `MR_Cluster` object with the same value, with the intent of localizing message traffic.  In legacy implementation, the `clientRole` is granted appropriate permission in AAF.  Newer implementions may instead specify an AAF Identity, which will be added to the appropriate `Topic` role.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/mr_clients/{subId}``
+------------------------------
+
+
+Summary
++++++++
+
+Delete an MR_Client object
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete a  `MR_Client` object, specified by clientId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        subId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/mr_clients``
+-------------------
+
+
+Summary
++++++++
+
+return MR_Client details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `MR_Client` objects.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/mr_clients/{subId}``
+---------------------------
+
+
+Summary
++++++++
+
+return MR_Client details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve a  `MR_Client` object, specified by clientId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        subId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/mr_clients/{clientId}``
+------------------------------
+
+
+Summary
++++++++
+
+Update an MR_Client object
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a  `MR_Client` object, specified by clientId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        clientId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "action": [
+            "somestring", 
+            "somestring"
+        ], 
+        "clientIdentity": "somestring", 
+        "clientRole": "somestring", 
+        "dcaeLocationName": "somestring", 
+        "fqtn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "mrClientId": "somestring", 
+        "status": "EMPTY", 
+        "topicURL": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+MR_CLUSTERS
+~~~~~~~~~~~
+
+
+Endpoint for a Message Router servers in a Cluster configuration
+
+
+
+
+
+POST ``/mr_clusters``
+---------------------
+
+
+Summary
++++++++
+
+return MR_Cluster details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create an  `MR_Cluster` object.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/mr_clusters/{clusterId}``
+-----------------------------------
+
+
+Summary
++++++++
+
+return MR_Cluster details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete an  `MR_Cluster` object, specified by clusterId.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        clusterId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/mr_clusters/{clusterId}``
+--------------------------------
+
+
+Summary
++++++++
+
+return MR_Cluster details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve an  `MR_Cluster` object, specified by clusterId.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        clusterId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/mr_clusters``
+--------------------
+
+
+Summary
++++++++
+
+return MR_Cluster details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `MR_Cluster` objects.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/mr_clusters/{clusterId}``
+--------------------------------
+
+
+Summary
++++++++
+
+return MR_Cluster details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update an  `MR_Cluster` object, specified by clusterId.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        clusterId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`MR_Cluster <d_eec7176a0080debe1b19c2dad2e97c24>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "dcaeLocationName": "somestring", 
+        "fqdn": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "replicationGroup": "somestring", 
+        "sourceReplicationPort": "somestring", 
+        "status": "EMPTY", 
+        "targetReplicationPort": "somestring", 
+        "topicPort": "somestring", 
+        "topicProtocol": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+TOPICS
+~~~~~~
+
+
+Endpoint for retreiving MR Topics
+
+
+
+
+
+POST ``/topics``
+----------------
+
+
+Summary
++++++++
+
+Create a Topic object
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Create  `Topic` object.For convenience, the message body may populate the `clients` array, in which case each entry will be added as an `MR_Client`.  Beginning in ONAP Dublin Release, dbcapi will create two AAF Roles by default, one each for the publisher and subscriber per topic.  MR_Clients can then specify an AAF Identity to be added to the appropriate default Role, avoiding the need to create Role(s) in advance.
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        useExisting | query | No | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+DELETE ``/topics/{topicId}``
+----------------------------
+
+
+Summary
++++++++
+
+return Topic details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Delete a  `Topic` object, identified by topicId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        topicId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+successful operation
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**204**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/topics/{topicId}``
+-------------------------
+
+
+Summary
++++++++
+
+return Topic details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Retrieve a  `Topic` object, identified by topicId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        topicId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+GET ``/topics``
+---------------
+
+
+Summary
++++++++
+
+return Topic details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Returns array of  `Topic` objects.
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+
+
+PUT ``/topics/{topicId}``
+-------------------------
+
+
+Summary
++++++++
+
+return Topic details
+
+Description
++++++++++++
+
+.. raw:: html
+
+    Update a  `Topic` object, identified by topicId
+
+Parameters
+++++++++++
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Located in", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 15, 10, 10, 10, 20, 30
+
+        topicId | path | Yes | string |  |  | 
+
+
+Request
++++++++
+
+
+Responses
++++++++++
+
+**200**
+^^^^^^^
+
+Success
+
+
+Type: :ref:`Topic <d_2e99841971da81b9d240071b86bf168d>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "clients": [
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }, 
+            {
+                "action": [
+                    "somestring", 
+                    "somestring"
+                ], 
+                "clientIdentity": "somestring", 
+                "clientRole": "somestring", 
+                "dcaeLocationName": "somestring", 
+                "fqtn": "somestring", 
+                "lastMod": "2015-01-01T15:00:00.000Z", 
+                "mrClientId": "somestring", 
+                "status": "EMPTY", 
+                "topicURL": "somestring"
+            }
+        ], 
+        "formatUuid": "somestring", 
+        "fqtn": "somestring", 
+        "fqtnStyle": "FQTN_NOT_SPECIFIED", 
+        "globalMrURL": "somestring", 
+        "lastMod": "2015-01-01T15:00:00.000Z", 
+        "owner": "somestring", 
+        "partitionCount": "somestring", 
+        "publisherRole": "somestring", 
+        "replicationCase": "REPLICATION_NOT_SPECIFIED", 
+        "replicationCount": "somestring", 
+        "status": "EMPTY", 
+        "subscriberRole": "somestring", 
+        "tnxEnabled": "somestring", 
+        "topicDescription": "somestring", 
+        "topicName": "somestring", 
+        "version": "somestring"
+    }
+
+**400**
+^^^^^^^
+
+Error
+
+
+Type: :ref:`ApiError <d_a3a7580ce9d87225d7f62e6b67b4d036>`
+
+**Example:**
+
+.. code-block:: javascript
+
+    {
+        "code": 1, 
+        "fields": "somestring", 
+        "is2xx": true, 
+        "message": "somestring"
+    }
+
+
+
+  
+Data Structures
+~~~~~~~~~~~~~~~
+
+.. _d_a3a7580ce9d87225d7f62e6b67b4d036:
+
+ApiError Model Structure
+------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        code | No | integer | int32 |  | 
+        fields | No | string |  |  | 
+        is2xx | No | boolean |  |  | 
+        message | No | string |  |  | 
+
+.. _d_d71baea9d8e4e59bc395ef51f45dff1b:
+
+BrTopic Model Structure
+-----------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        brSource | No | string |  |  | 
+        brTarget | No | string |  |  | 
+        mmAgentName | No | string |  |  | 
+        topicCount | No | integer | int32 |  | 
+
+.. _d_d15e2cee407536866c875375e3f705e0:
+
+DR_Node Model Structure
+-----------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dcaeLocationName | No | string |  |  | 
+        fqdn | No | string |  |  | 
+        hostName | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        version | No | string |  |  | 
+
+.. _d_e926d3fa8701e0cc9c8ed1761b3255cd:
+
+DR_Pub Model Structure
+----------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dcaeLocationName | No | string |  |  | 
+        feedId | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        pubId | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        username | No | string |  |  | 
+        userpwd | No | string |  |  | 
+
+.. _d_48cf328d246f41e1d11a09251b042f02:
+
+DR_Sub Model Structure
+----------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        bytes | No | array of string |  |  | 
+        dcaeLocationName | No | string |  |  | 
+        deliveryURL | No | string |  |  | 
+        feedId | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        logURL | No | string |  |  | 
+        owner | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        subId | No | string |  |  | 
+        suspended | No | boolean |  |  | 
+        use100 | No | boolean |  |  | 
+        username | No | string |  |  | 
+        userpwd | No | string |  |  | 
+
+.. _d_47d80e451933beb623fcf5257867cbcb:
+
+DcaeLocation Model Structure
+----------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        central | No | boolean |  |  | 
+        clli | No | string |  |  | 
+        dcaeLayer | No | string |  |  | 
+        dcaeLocationName | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        local | No | boolean |  |  | 
+        openStackAvailabilityZone | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        subnet | No | string |  |  | 
+
+.. _d_4ea0e7758a1f8502222793e4a13b04f7:
+
+Dmaap Model Structure
+---------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        accessKeyOwner | No | string |  |  | 
+        bridgeAdminTopic | No | string |  |  | 
+        dmaapName | No | string |  |  | 
+        drProvUrl | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        loggingUrl | No | string |  |  | 
+        nodeKey | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        topicNsRoot | No | string |  |  | 
+        version | No | string |  |  | 
+
+.. _d_289ad39619725df26c9ff382d4c97c75:
+
+Feed Model Structure
+--------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        asprClassification | No | string |  |  | 
+        bytes | No | array of string |  |  | 
+        feedDescription | No | string |  |  | 
+        feedId | No | string |  |  | 
+        feedName | No | string |  |  | 
+        feedVersion | No | string |  |  | 
+        formatUuid | No | string |  |  | 
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        logURL | No | string |  |  | 
+        owner | No | string |  |  | 
+        publishURL | No | string |  |  | 
+        pubs | No | array of :ref:`DR_Pub <d_e926d3fa8701e0cc9c8ed1761b3255cd>` |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        subs | No | array of :ref:`DR_Sub <d_48cf328d246f41e1d11a09251b042f02>` |  |  | 
+        subscribeURL | No | string |  |  | 
+        suspended | No | boolean |  |  | 
+
+.. _d_56ff81dc98986e27074d9be2731e3f4c:
+
+MR_Client Model Structure
+-------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        action | No | array of string |  |  | one or more actions from the set ('pub', 'sub', 'view') for which this client needs Permission
+        clientIdentity | No | string |  |  | an AAF identity to be associated to an appropriate topic Role
+        clientRole | No | string |  |  | an AAF Role to be granted an appropriate Permission.  If specified, takes precedence over clientIdentity, for backwards compatibility.
+        dcaeLocationName | No | string |  |  | a tag indicating a logical deployment site
+        fqtn | No | string |  |  | Fully Qualified Topic Name constructed by dbcapi
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        mrClientId | No | string |  |  | a unique identifier generated by dbcapi for this client
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        topicURL | No | string |  |  | the URL for a MR instance - typically in the same dcaeLocation - that this client should use to access the topic
+
+.. _d_eec7176a0080debe1b19c2dad2e97c24:
+
+MR_Cluster Model Structure
+--------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        dcaeLocationName | No | string |  |  | 
+        fqdn | No | string |  |  | 
+        lastMod | No | string | date-time |  | 
+        replicationGroup | No | string |  |  | 
+        sourceReplicationPort | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        targetReplicationPort | No | string |  |  | 
+        topicPort | No | string |  |  | 
+        topicProtocol | No | string |  |  | 
+
+.. _d_08fb211d40d6deb9b6e04b000fd988e4:
+
+MirrorMaker Model Structure
+---------------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        mmName | No | string |  |  | 
+        sourceCluster | No | string |  |  | 
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        targetCluster | No | string |  |  | 
+        topicCount | No | integer | int32 |  | 
+        topics | No | array of string |  |  | 
+        whitelistUpdateJSON | No | string |  |  | 
+
+.. _d_2e99841971da81b9d240071b86bf168d:
+
+Topic Model Structure
+---------------------
+
+.. csv-table::
+    :delim: |
+    :header: "Name", "Required", "Type", "Format", "Properties", "Description"
+    :widths: 20, 10, 15, 15, 30, 25
+
+        clients | No | array of :ref:`MR_Client <d_56ff81dc98986e27074d9be2731e3f4c>` |  |  | an array of `MR_Client` objects associated to this `Topic`
+        formatUuid | No | string |  |  | a reference to an identifier that describes a data format used for this `Topic`
+        fqtn | No | string |  |  | Fully Qualified Topic Name constructed by dbcapi, following the rules for `fqtnStyle`
+        fqtnStyle | No | string |  | {'enum': ['FQTN_NOT_SPECIFIED', 'FQTN_LEGACY_FORMAT', 'FQTN_PROJECTID_FORMAT', 'FQTN_PROJECTID_VERSION_FORMAT']} | the construction rule for the `fqtn` field
+        globalMrURL | No | string |  |  | the URL of an outside MR instance
+        lastMod | No | string | date-time |  | datestamp for last update to this object
+        owner | No | string |  |  | a label used to identify who requested this `Topic` to be provisioned.  In the future this may be an AAF Identity.
+        partitionCount | No | string |  |  | the kafka attribute for specifying the number of partitions
+        publisherRole | No | string |  |  | a value generated by dbcapi, this AAF Role has permission to publish to this `Topic`
+        replicationCase | No | string |  | {'enum': ['REPLICATION_NOT_SPECIFIED', 'REPLICATION_NONE', 'REPLICATION_EDGE_TO_CENTRAL', 'REPLICATION_EDGE_TO_CENTRAL_TO_GLOBAL', 'REPLICATION_CENTRAL_TO_EDGE', 'REPLICATION_CENTRAL_TO_GLOBAL', 'REPLICATION_GLOBAL_TO_CENTRAL', 'REPLICATION_GLOBAL_TO_CENTRAL_TO_EDGE', 'REPLICATION_EDGE_TO_FQDN', 'REPLICATION_FQDN_TO_EDGE', 'REPLICATION_FQDN_TO_GLOBAL', 'REPLICATION_GLOBAL_TO_FQDN', 'REPLICATION_EDGE_TO_FQDN_TO_GLOBAL', 'REPLICATION_GLOBAL_TO_FQDN_TO_EDGE']} | An indicator for how this `Topic` should be replicated when there are more than one `MR_Cluster` instances
+        replicationCount | No | string |  |  | the kafka attribute for specifying replication within an `MR_Cluster` instance
+        status | No | string |  | {'enum': ['EMPTY', 'NEW', 'STAGED', 'VALID', 'INVALID', 'DELETED']} | 
+        subscriberRole | No | string |  |  | a value generated by dbcapi, this AAF Role has permission to subscribe to this `Topic`
+        tnxEnabled | No | string |  |  | 
+        topicDescription | No | string |  |  | a description of what this Topic is used for
+        topicName | No | string |  |  | the short name used by humans, and utilized to construct the `FQTN`
+        version | No | string |  |  | a hook for any versioning needed for managing a `Topic` over time
+