--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+DMaaP connection objects\r
+========================\r
+\r
+DMaaP connection objects are JSON objects that:\r
+\r
+1. Components should expect at runtime in their application\r
+ configuration and is to be used to connect to the appropriate DMaaP\r
+ feed or topic.\r
+2. Developers must provide through the command-line argument\r
+ ``--dmaap-file`` to test their component with manually provisioned\r
+ feeds and topics.\r
+\r
+This page is a reference to the specific structure that each type of\r
+DMaaP stream requires.\r
+\r
+Note for #1 that components should expect the entire object with all\r
+properties at runtime where the default will be ``null`` unless\r
+specified otherwise.\r
+\r
+Note for #2 that developers are not required to provide the entire\r
+object. The required properties will be labeled with “*required as\r
+input*”.\r
+\r
+.. _dmaap-message-router:\r
+\r
+Message router\r
+--------------\r
+\r
+Publishers and subscribers both have the same JSON object structure.\r
+Here’s an example:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "message_router",\r
+ "aaf_username": "some-user",\r
+ "aaf_password": "some-password",\r
+ "dmaap_info": {\r
+ "client_role": "com.dcae.member",\r
+ "client_id": "1500462518108",\r
+ "location": "mtc00",\r
+ "topic_url": "https://we-are-message-router.us:3905/events/some-topic"\r
+ }\r
+ }\r
+\r
+\r
+At the top-level:\r
+\r
++-------------+----+--------------------+\r
+| Property | Ty\| Descript\ |\r
+| Name | pe | ion |\r
++=============+====+====================+\r
+| type | st\| *Require\ |\r
+| | ri\| d \ |\r
+| | ng | as \ |\r
+| | | input*. |\r
+| | | Must be |\r
+| | | ``message_router`` |\r
+| | | for |\r
+| | | message |\r
+| | | router |\r
+| | | topics |\r
++-------------+----+--------------------+\r
+| aaf_usernam\| st\| AAF |\r
+| e | ri\| username |\r
+| | ng | message |\r
+| | | router |\r
+| | | clients |\r
+| | | use to |\r
+| | | authenti\ |\r
+| | | cate |\r
+| | | with |\r
+| | | secure |\r
+| | | topics |\r
++-------------+----+--------------------+\r
+| aaf_passwor\| st\| AAF |\r
+| d | ri\| password |\r
+| | ng | message |\r
+| | | router |\r
+| | | clients |\r
+| | | use to |\r
+| | | authenti\ |\r
+| | | cate |\r
+| | | with |\r
+| | | secure |\r
+| | | topics |\r
++-------------+----+--------------------+\r
+| dmaap_info | JS\| *Require\ |\r
+| | ON | d \ |\r
+| | ob\| as \ |\r
+| | je\| input*. |\r
+| | ct | Contains |\r
+| | | the |\r
+| | | topic |\r
+| | | connecti\ |\r
+| | | on |\r
+| | | details |\r
++-------------+----+--------------------+\r
+\r
+The ``dmaap_info`` object contains:\r
+\r
++-------------+----+----------+\r
+| Property | Ty\| Descript\|\r
+| Name | pe | ion |\r
++=============+====+==========+\r
+| client_role | st\| AAF |\r
+| | ri\| client |\r
+| | ng | role |\r
+| | | that’s |\r
+| | | requesti\|\r
+| | | ng |\r
+| | | publish |\r
+| | | or |\r
+| | | subscrib\|\r
+| | | e |\r
+| | | access |\r
+| | | to the |\r
+| | | topic |\r
++-------------+----+----------+\r
+| client_id | st\| Client |\r
+| | ri\| id for |\r
+| | ng | given |\r
+| | | AAF |\r
+| | | client |\r
++-------------+----+----------+\r
+| location | st\| DCAE |\r
+| | ri\| location |\r
+| | ng | for the |\r
+| | | publishe\|\r
+| | | r |\r
+| | | or |\r
+| | | subscrib\|\r
+| | | er, |\r
+| | | used to |\r
+| | | set up |\r
+| | | routing |\r
++-------------+----+----------+\r
+| topic_url | st\| *Require\|\r
+| | ri\| d \ |\r
+| | ng | as \ |\r
+| | | input*. |\r
+| | | URL for |\r
+| | | accessin\|\r
+| | | g |\r
+| | | the |\r
+| | | topic to |\r
+| | | publish |\r
+| | | or |\r
+| | | receive |\r
+| | | events |\r
++-------------+----+----------+\r
+\r
+Here’s an example of the minimal JSON that must be provided as an input:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "message_router",\r
+ "dmaap_info": {\r
+ "topic_url": "https://we-are-message-router.us:3905/events/some-topic"\r
+ }\r
+ }\r
+\r
+.. _dmaap-data-router:\r
+\r
+Data router\r
+-----------\r
+\r
+Publisher\r
+~~~~~~~~~\r
+\r
+Here’s an example of what the JSON object connection for data router\r
+publisher looks like:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "data_router",\r
+ "dmaap_info": {\r
+ "location": "mtc00",\r
+ "publish_url": "https://we-are-data-router.us/feed/xyz",\r
+ "log_url": "https://we-are-data-router.us/feed/xyz/logs",\r
+ "username": "some-user",\r
+ "password": "some-password",\r
+ "publisher_id": "123456"\r
+ } \r
+ }\r
+\r
+At the top-level:\r
+\r
++-------------+----+----------------+\r
+| Property | Ty\| Descript\ |\r
+| Name | pe | ion |\r
++=============+====+================+\r
+| type | st\| *Require\ |\r
+| | ri\| d \ |\r
+| | ng | as \ |\r
+| | | input*. |\r
+| | | Must be |\r
+| | | ``data_router``|\r
+| | | for data |\r
+| | | router |\r
+| | | feeds |\r
++-------------+----+----------------+\r
+| dmaap_info | JS\| *Require\ |\r
+| | ON | d \ |\r
+| | ob\| as \ |\r
+| | je\| input*. |\r
+| | ct | Contains |\r
+| | | the |\r
+| | | topic |\r
+| | | connecti\ |\r
+| | | on |\r
+| | | details |\r
++-------------+----+----------------+\r
+\r
+The ``dmaap_info`` object contains:\r
+\r
++-------------+----+----------+\r
+| Property | Ty\| Descript\|\r
+| Name | pe | ion |\r
++=============+====+==========+\r
+| location | st\| DCAE |\r
+| | ri\| location |\r
+| | ng | for the |\r
+| | | publishe\|\r
+| | | r, |\r
+| | | used to |\r
+| | | set up |\r
+| | | routing |\r
++-------------+----+----------+\r
+| publish_url | st\| *Require\|\r
+| | ri\| d \ |\r
+| | ng | as \ |\r
+| | | input*. |\r
+| | | URL to |\r
+| | | which |\r
+| | | the |\r
+| | | publishe\|\r
+| | | r |\r
+| | | makes |\r
+| | | Data |\r
+| | | Router |\r
+| | | publish |\r
+| | | requests |\r
++-------------+----+----------+\r
+| log_url | st\| URL from |\r
+| | ri\| which |\r
+| | ng | log data |\r
+| | | for the |\r
+| | | feed can |\r
+| | | be |\r
+| | | obtained |\r
++-------------+----+----------+\r
+| username | st\| Username |\r
+| | ri\| the |\r
+| | ng | publishe\|\r
+| | | r |\r
+| | | uses to |\r
+| | | authenti\|\r
+| | | cate |\r
+| | | to Data |\r
+| | | Router |\r
++-------------+----+----------+\r
+| password | st\| Password |\r
+| | ri\| the |\r
+| | ng | publishe\|\r
+| | | r |\r
+| | | uses to |\r
+| | | authenti\|\r
+| | | cate |\r
+| | | to Data |\r
+| | | Router |\r
++-------------+----+----------+\r
+| publisher_i | st\| Publishe\|\r
+| d | ri\| r |\r
+| | ng | id in |\r
+| | | Data |\r
+| | | Router |\r
++-------------+----+----------+\r
+\r
+Here’s an example of the minimal JSON that must be provided as an input:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "data_router",\r
+ "dmaap_info": {\r
+ "publish_url": "https://we-are-data-router.us/feed/xyz"\r
+ }\r
+ }\r
+\r
+Subscriber\r
+~~~~~~~~~~\r
+\r
+Here’s an example of what the JSON object connection for data router\r
+subscriber looks like:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "data_router",\r
+ "dmaap_info": {\r
+ "location": "mtc00",\r
+ "delivery_url": "https://my-subscriber-app.dcae:8080/target-path",\r
+ "username": "some-user",\r
+ "password": "some-password",\r
+ "subscriber_id": "789012"\r
+ } \r
+ }\r
+\r
+At the top-level:\r
+\r
++-------------+----+----------------+\r
+| Property | Ty\| Descript\ |\r
+| Name | pe | ion |\r
++=============+====+================+\r
+| type | st\| *Require\ |\r
+| | ri\| d |\r
+| | ng | as \ |\r
+| | | input*. |\r
+| | | Must be |\r
+| | | ``data_router``|\r
+| | | for data |\r
+| | | router |\r
+| | | feeds |\r
++-------------+----+----------------+\r
+| dmaap_info | JS\| *Require\ |\r
+| | ON | d \ |\r
+| | ob\| as \ |\r
+| | je\| input*. |\r
+| | ct | Contains |\r
+| | | the |\r
+| | | topic |\r
+| | | connecti\ |\r
+| | | on |\r
+| | | details |\r
++-------------+----+----------------+\r
+\r
+The ``dmaap_info`` object contains:\r
+\r
++--------------+----+----------+\r
+| Property | Ty\| Descript\|\r
+| Name | pe | ion |\r
++==============+====+==========+\r
+| location | st\| DCAE |\r
+| | ri\| location |\r
+| | ng | for the |\r
+| | | publishe\|\r
+| | | r, |\r
+| | | used to |\r
+| | | set up |\r
+| | | routing |\r
++--------------+----+----------+\r
+| delivery_ur\ | st\| URL to |\r
+| l | ri\| which |\r
+| | ng | the Data |\r
+| | | Router |\r
+| | | should |\r
+| | | deliver |\r
+| | | files |\r
++--------------+----+----------+\r
+| username | st\| Username |\r
+| | ri\| Data |\r
+| | ng | Router |\r
+| | | uses to |\r
+| | | authenti\|\r
+| | | cate |\r
+| | | to the |\r
+| | | subscrib\|\r
+| | | er |\r
+| | | when |\r
+| | | deliveri\|\r
+| | | ng |\r
+| | | files |\r
++--------------+----+----------+\r
+| password | st\| Password |\r
+| | ri\| Data |\r
+| | ng | Router |\r
+| | | uses to |\r
+| | | authenti\|\r
+| | | cate |\r
+| | | to the |\r
+| | | subscrib\|\r
+| | | er |\r
+| | | when |\r
+| | | deliveri\|\r
+| | | ng |\r
+| | | files |\r
++--------------+----+----------+\r
+| subscriber_i\| st | Subscrib\|\r
+| d | ri | er |\r
+| | ng | id in |\r
+| | | Data |\r
+| | | Router |\r
++--------------+----+----------+\r
+\r
+Here’s an example of the minimal JSON that must be provided as an input:\r
+\r
+.. code:: json\r
+\r
+ {\r
+ "type": "data_router",\r
+ "dmaap_info": {\r
+ }\r
+ }\r
+\r
+Developers are recommended to use ``username`` and ``password`` since\r
+this is the recommended security practice.\r
+\r
+Note that the dcae-cli will construct the ``delivery_url`` when\r
+deploying the component since this can only be known at deployment time.\r