Allow LogServlet to query based upon Filename
[dmaap/datarouter.git] / docs / data-router / data-router.rst
old mode 100644 (file)
new mode 100755 (executable)
index 16f44ba..14b5181
-============================================\r
+.. _data_router_api_guide:\r
+\r
+==========================\r
 Data Router (DR) API Guide\r
-============================================\r
+==========================\r
 Introduction\r
-------------------\r
+------------\r
 \r
-The DataRouter(DR)provisioning API is an HTTPS-based,REST-like API for creating and managing DR feeds and subscriptions. The Data Routing System project is intended to provide a common framework by which data producers can make data available to data consumers and a way for potential consumers to find feeds with the data they require.\r
+The DataRouter(DR) provisioning API is an HTTPS-based, REST-like API for creating and managing DR feeds\r
+and subscriptions. The DMaaP Data Router System project is intended to provide a common framework by which\r
+data producers can make data available to data consumers and a way for potential consumers to find feeds\r
+with the data they require.\r
 \r
 \r
 HTTP Service APIs\r
-------------------\r
+-----------------\r
 \r
-DMaaP Message Router utilizes an HTTP REST API to service all transactions. HTTP and REST standards are followed so\r
-clients as varied as CURL, Java applications and even Web Browsers will\r
-work to interact with the Data Router.\r
+DMaaP Data Router utilizes an HTTP REST API to service all transactions. HTTP and REST standards are followed so\r
+clients as varied as CURL, Java applications and even Web Browsers will work to interact with the Data Router.\r
 \r
 General HTTP Requirements\r
 =========================\r
 \r
-A DMaaP Message Router transactions consists of 4 distinct segments,\r
-HTTP URL, HTTP Header, HTTP Body (POST/PUT) and HTTP Response. The general\r
-considerations for each segment are as follows and are required for each\r
+A DMaaP Data Router transactions consists of 4 distinct segments, HTTP URL, HTTP Header, HTTP Body (POST/PUT)\r
+and HTTP Response. The general considerations for each segment are as follows and are required for each\r
 of the specific transactions described in this section.\r
 \r
 HTTP URL\r
 ========\r
 \r
-http[s]://serverBaseURL/{resourcePath}\r
+http[s]://{serverBaseURL}/{resourcePath}\r
+\r
+* The serverBaseURL points to DMaaP Data Router host:port that will service the request.\r
+* The resourcePath specifies the service that the client is attempting to reach.\r
 \r
 \r
 HTTP Header\r
 ===========\r
 \r
-Specifies HTTP Headers, such as Content-Type, that define the parameters\r
-of the HTTP Transaction\r
+Specifies HTTP Headers, such as Content-Type, that define the parameters of the HTTP Transaction\r
 \r
 HTTP Body\r
 =========\r
 \r
-The HTTP Body contains the topic content when Publishing or Consuming.\r
-The Body may contain topic messages in several formats (like below) but\r
-it must be noted, that, except in very specific circumstances, messages\r
-are not inspected for content.\r
+The HTTP Body contains the feed content when creating a feed.\r
 \r
 Create a Feed\r
------------\r
+-------------\r
 \r
-**Description**:Creates the feed\r
+**Description**: Creates a unique feed URL to service the publisher/subscriber model.\r
 \r
 Sample Request\r
 ==============\r
 \r
-curl -v -X POST -H "Content-Type : application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF: rs873m" --data-ascii @/opt/app/datartr/addFeed3.txt --post301 --location-trusted -k https://prov.datarouternew.com:8443\r
+``curl -k -X POST -H "Content-Type:application/vnd.dmaap-dr.feed" -H "X-DMAAP-DR-ON-BEHALF-OF:{user}" --data-ascii @createFeed.json https://{host}:{port}``\r
+\r
+Request Parameters:\r
+===================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| name                   | Feed name                       |     Body         |   String   |    <=20      |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| version                | Feed version                    |     Body         |   String   |    <=20      |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| description            | Feed description                |     Body         |   String   |    <=256     |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| business description   | Business description            |     Body         |   String   |    <=256     |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Authorization          | Information for authorizing     |     Body         |   Object   |              |     Y       |                                      |\r
+|                        | publishing requests             |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| suspend                | Set to true if the feed is in   |     Body         |   Boolean  |              |     N       | * true                               |\r
+|                        | the suspended state             |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| group-id               |                                 |     Body         |   Integer  |              |     Y       |                                      |\r
+|                        |                                 |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| content-type           | To specify type of message      |     Header       |   String   |              |     Y       | application/vnd.dmaap-dr.feed        |\r
+|                        | (feed,subscriber,publisher)     |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| X-DMAAP-DR-ON-BEHALF-OF| User id of owner of feed        |     Header       |   String   |     <=8      |     Y       |  username                            |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 201                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * JSON object in request body does not    |\r
+|                        |   conform to the spec.                    |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the requests Content-Type header is not   |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
+Sample Body\r
+===========\r
+.. code-block:: json\r
+\r
+ {\r
+     "name": "Jettydemo",\r
+     "version": "v1.0.0",\r
+     "description": "Jettydemo",\r
+     "business_description": "Jettydemo",\r
+     "suspend": false,\r
+     "changeowner": true,\r
+     "authorization": {\r
+          "classification": "unclassified",\r
+          "endpoint_addrs": ["172.18.0.3","192.167.3.42"],\r
+          "endpoint_ids": [\r
+               {\r
+                    "password": "password",\r
+                    "id": "user"\r
+               }\r
+          ]\r
+     }\r
+ }\r
+\r
+\r
+Updating a Feed\r
+---------------\r
+\r
+**Description**: Update a feed with new parameters.\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X PUT -H "Content-Type: application/vnd.dmaap-dr.feed" -H "X-DMAAP-DR-ON-BEHALF-OF: {user}" --data-ascii @updateFeed.json --location-trusted https://{host}:{port}/feed/{feedId}``\r
+\r
+Request Parameters:\r
+===================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| description            | Feed description                |     Body         |   String   |     <=256    |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| business description   | Business description            |     Body         |   String   |     <=256    |     Y       |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Authorization          | Information for authorizing     |     Body         |   Object   |              |     Y       |                                      |\r
+|                        | publishing requests             |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| suspend                | Set to true if the feed is in   |     Body         |   Boolean  |              |     N       | * true                               |\r
+|                        | the suspended state             |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| group-id               |                                 |     Body         |   Integer  |              |     Y       |                                      |\r
+|                        |                                 |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| content-type           | To specify type of message      |     Header       |   String   |              |     Y       | application/vnd.dmaap-dr.feed        |\r
+|                        | (feed,subscriber,publisher)     |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| X-DMAAP-DR-ON-BEHALF-OF| User id of owner of feed        |     Header       |   String   |     <=8      |     Y       |  username                            |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * JSON object in request body does not    |\r
+|                        |   conform to the spec.                    |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
+Sample Body\r
+===========\r
+.. code-block:: json\r
+\r
+ {\r
+     "name": "Jettydemo",\r
+     "version": "v1.0.0",\r
+     "description": "Updated decription",\r
+     "business_description": "Updated business description",\r
+     "suspend": false,\r
+     "changeowner": true,\r
+     "authorization": {\r
+          "classification": "unclassified",\r
+          "endpoint_addrs": ["172.18.0.3","192.167.3.42"],\r
+          "endpoint_ids": [\r
+               {\r
+                    "password": "password",\r
+                    "id": "user"\r
+               }\r
+          ]\r
+     }\r
+ }\r
+\r
+\r
+Get a Feed\r
+----------\r
+\r
+**Description**: Retrieves a representation of the specified feed.\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/feed/{feedId}\r
+\r
+* {feedId}: Id of the feed you want to see a representation of\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -H "X-DMAAP-DR-ON-BEHALF-OF: {user}" https://{host}:{port}/feed/{feedId}``\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
+Delete a Feed\r
+-------------\r
+\r
+**Description**: Deletes a specified feed\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/feed/{feedId}\r
+\r
+* {feedId}: Id of the feed you want to delete\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X DELETE -H "X-DMAAP-DR-ON-BEHALF-OF: {user}" https://{host}:{port}/feed/{feedId}``\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 204                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
 \r
 Subscribe to Feed\r
------------\r
+-----------------\r
+\r
+**Description**: Subscribes to a created feed to receive files published to that feed.\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/subscribe/{feedId}\r
+\r
+* {feedId}: Id of the feed to subscribe to\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X POST -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:{user}" --data-ascii @addSubscriber.json https://{host}:{port}/subscribe/{feedId}``\r
+\r
+Request Parameters:\r
+===================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| feedId                 | ID for the feed you are         |     Path         |   String   |              |     Y       |                                      |\r
+|                        | subscribing to                  |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| delivery               | Address and credentials for     |     Body         |   Object   |              |     Y       |                                      |\r
+|                        | delivery                        |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| follow_redirect        | Set to true if feed redirection |     Body         |   Boolean  |              |     Y       | * true                               |\r
+|                        | is expected                     |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| metadata_only          | Set to true if subscription is  |     Body         |   Boolean  |              |     Y       | * true                               |\r
+|                        | to receive per-file metadata    |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| suspend                | Set to true if the subscription |     Body         |   Boolean  |              |     N       | * true                               |\r
+|                        | is in the suspended state       |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| group-id               |                                 |     Body         |   Integer  |              |     Y       |                                      |\r
+|                        |                                 |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| content-type           | To specify type of message      |     Header       |   String   |              |     Y       | application/vnd.dmaap-dr.subscription|\r
+|                        | (feed,subscriber,publisher)     |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| X-DMAAP-DR-ON-BEHALF-OF| User id of subscriber           |     Header       |   String   |     <=8      |     Y       |  username                            |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 201                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * JSON object in request body does not    |\r
+|                        |   conform to the spec.                    |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the requests Content-Type header is not   |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
+Sample Body\r
+===========\r
+.. code-block:: json\r
+\r
+ {\r
+    "delivery" :{\r
+        "url" : "http://172.18.0.3:7070/",\r
+        "user" : "LOGIN",\r
+        "password" : "PASSWORD",\r
+        "use100" : true\r
+    },\r
+    "metadataOnly" : false,\r
+    "groupid" : 1,\r
+    "subscriber" : "subuser"\r
+ }\r
+\r
+Update subscription\r
+-------------------\r
+\r
+**Description**: Update a subscription to a feed.\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/subs/{subId}\r
+\r
+* {subId}: Id of the subscription to be updated\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X PUT -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:{user}" --data-ascii @updateSubscriber.json https://{host}:{port}/subs/{subId}``\r
+\r
+Request Parameters:\r
+===================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| subId                  | ID for the subscription you are |     Path         |   String   |              |     Y       |                                      |\r
+|                        | updating                        |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| delivery               | Address and credentials for     |     Body         |   Object   |              |     Y       |                                      |\r
+|                        | delivery                        |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| follow_redirect        | Set to true if feed redirection |     Body         |   Boolean  |              |     Y       | * true                               |\r
+|                        | is expected                     |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| metadata_only          | Set to true if subscription is  |     Body         |   Boolean  |              |     Y       | * true                               |\r
+|                        | to receive per-file metadata    |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| suspend                | Set to true if the subscription |     Body         |   Boolean  |              |     N       | * true                               |\r
+|                        | is in the suspended state       |                  |            |              |             | * false                              |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| group-id               |                                 |     Body         |   Integer  |              |     Y       |                                      |\r
+|                        |                                 |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| content-type           | To specify type of message      |     Header       |   String   |              |     Y       | application/vnd.dmaap-dr.subscription|\r
+|                        | (feed,subscriber,publisher)     |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| X-DMAAP-DR-ON-BEHALF-OF| User id of subscriber           |     Header       |   String   |     8        |     Y       |  username                            |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * JSON object in request body does not    |\r
+|                        |   conform to the spec.                    |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
 \r
-curl -v -X POST -H "Content-Type: application/vnd.att-dr.subscription" -H "X-ATT-DR-ON-BEHALF-OF: rs873m" --data-ascii @/opt/app/datartr/addSubscriber.txt --post301 --location-trusted -k https://prov.datarouternew.com:8443/subscribe/1\r
+Sample Body\r
+===========\r
+.. code-block:: json\r
+\r
+ {\r
+    "delivery" :{\r
+        "url" : "http://192.0.0.1:7070/",\r
+        "user" : "NEW_LOGIN",\r
+        "password" : "NEW_PASSWORD",\r
+        "use100" : true\r
+    },\r
+    "metadataOnly" : false,\r
+    "groupid" : 2,\r
+    "subscriber" : "subuser"\r
+ }\r
+\r
+\r
+Get a Subscription\r
+------------------\r
+\r
+**Description**: Retrieves a representation of the specified subscription.\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/subs/{subId}\r
+\r
+* {subId}: Id of the subscription you want to see a representation of\r
 \r
 Sample Request\r
 ==============\r
 \r
-POST http(s)://{HOST:PORT}/events/{topicname}\r
+``curl -k -H "X-DMAAP-DR-ON-BEHALF-OF:{user}" https://{host}:{port}/subs/{subId}``\r
+\r
+Response/Error Codes\r
+====================\r
 \r
-Publish to feed\r
------------\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
 \r
-**Description**:publish  the feed\r
+Delete a subscription\r
+---------------------\r
+\r
+**Description**: Deletes a specified subscription\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/subs/{subId}\r
+\r
+* {subId}: Id of the subscription you want to delete\r
 \r
 Sample Request\r
 ==============\r
 \r
-curl -v -X PUT --user rs873m:rs873m -H "Content-Type: application/octet-stream" --data-binary @/opt/app/datartr/addFeed3.txt --post301 --location-trusted -k https://prov.datarouternew.com:8443/publish/1/test1\r
+``curl -k -X DELETE -H "X-DMAAP-DR-ON-BEHALF-OF:{user}" https://{host}:{port}/subs/{subId}``\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 204                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 401                    | Indicates that the request was missing the|\r
+|                        | Authorization header or, if the header    |\r
+|                        | was presented, the credentials were not   |\r
+|                        | acceptable                                |\r
++------------------------+-------------------------------------------+\r
+| 403                    | The request failed authorization.         |\r
+|                        | Possible causes:                          |\r
+|                        |                                           |\r
+|                        | * Request originated from an unauthorized |\r
+|                        |   IP address                              |\r
+|                        | * Client certificate subject is not on    |\r
+|                        |   the API’s authorized list.              |\r
+|                        | * X-DMAAP-DR-ON-BEHALF-OF identity is not |\r
+|                        |   authorized to perform                   |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The Request-URI does not point|\r
+|                        | to a resource that is known to the API.   |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method Not Allowed - The HTTP method in   |\r
+|                        | the request is not supported for the      |\r
+|                        | resource addressed by the Request-URI.    |\r
++------------------------+-------------------------------------------+\r
+| 415                    | Unsupported Media Type - The media type in|\r
+|                        | the request’s Content-Type header is not  |\r
+|                        | appropriate for the request.              |\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request.                 |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+| -1                     | Failed Delivery                           |\r
++------------------------+-------------------------------------------+\r
+\r
+Publish to Feed\r
+---------------\r
+\r
+**Description**: Publish data to a given feed\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/publish/{feedId}/{fileName}\r
+\r
+* {feedId} The id of the feed you are publishing to.\r
+* {fileId} The name of the file you are publishing to the feed.\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X PUT --user {user}:{password} -H "Content-Type:application/octet-stream"  -H "X-DMAAP-DR-META:{\"filetype\":\"txt\"}" --data-binary @sampleFile.txt --post301 --location-trusted https://{host}:{port}/publish/{feedId}/sampleFile``\r
+\r
+Request parameters\r
+==================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                                                    |\r
++========================+=================================+==================+============+==============+=============+==========================================================================+\r
+| feedId                 | ID of the feed you are          |     Path         |   String   |              |     Y       |                                                                          |\r
+|                        | publishing to                   |                  |            |              |             |                                                                          |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------------------------------------------+\r
+| fileId                 | Name of the file when it  is    |     Path         |   String   |              |     Y       |                                                                          |\r
+|                        | published to subscribers        |                  |            |              |             |                                                                          |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------------------------------------------+\r
+| content-type           | To specify type of message      |     Header       |   String   |              |     Y       | application/octet-stream                                                 |\r
+|                        | format                          |                  |            |              |             |                                                                          |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------------------------------------------+\r
+| X-DMAAP-DR-META        | Metadata for the file. Accepts  |     Header       |   String   |     4096     |     N       | '{"compressionType":"gzip","id": 1234, "transferred":true, "size":null}' |\r
+|                        | only non nested json objects    |                  |            |              |             |                                                                          |\r
+|                        | of the following type :         |                  |            |              |             |                                                                          |\r
+|                        | -Numbers                        |                  |            |              |             |                                                                          |\r
+|                        | -Strings                        |                  |            |              |             |                                                                          |\r
+|                        | -Lowercase boolean              |                  |            |              |             |                                                                          |\r
+|                        | -null                           |                  |            |              |             |                                                                          |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+---------------------------------+\r
+| Response statusCode    | Response Description            |\r
++========================+=================================+\r
+| 204                    | Successful PUT or DELETE        |\r
++------------------------+---------------------------------+\r
+| 400                    | Failure - Malformed request     |\r
++------------------------+---------------------------------+\r
+| 401                    | Failure - Request was missing   |\r
+|                        | authorization header, or        |\r
+|                        | credentials were not accepted   |\r
++------------------------+---------------------------------+\r
+| 403                    | Failure - User could not be     |\r
+|                        | authenticated, or was not       |\r
+|                        | authorized to make the request  |\r
++------------------------+---------------------------------+\r
+| 404                    | Failure - Path in the request   |\r
+|                        | URL did not point to a valid    |\r
+|                        | feed publishing URL             |\r
++------------------------+---------------------------------+\r
+| 500                    | Failure - DR experienced an     |\r
+|                        | internal problem                |\r
++------------------------+---------------------------------+\r
+| 503                    | Failure - DR is not currently   |\r
+|                        | available                       |\r
++------------------------+---------------------------------+\r
+\r
+\r
+Delete a Published file\r
+-----------------------\r
+\r
+**Description**: Deletes a specified published file\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/publish/{feedId}/{fileId}\r
+\r
+* {feedId}: Id of the feed you want to delete a published file from\r
+* {fileId}: Id of the published file you want to delete\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k -X DELETE --user {user}:{password} --location-trusted https://{host}:{port}/publish/{feedId}/{fileId}``\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+---------------------------------+\r
+| Response statusCode    | Response Description            |\r
++========================+=================================+\r
+| 204                    | Successful PUT or DELETE        |\r
++------------------------+---------------------------------+\r
+| 400                    | Failure - Malformed request     |\r
++------------------------+---------------------------------+\r
+| 401                    | Failure - Request was missing   |\r
+|                        | authorization header, or        |\r
+|                        | credentials were not accepted   |\r
++------------------------+---------------------------------+\r
+| 403                    | Failure - User could not be     |\r
+|                        | authenticated, or was not       |\r
+|                        | authorized to make the request  |\r
++------------------------+---------------------------------+\r
+| 404                    | Failure - Path in the request   |\r
+|                        | URL did not point to a valid    |\r
+|                        | feed publishing URL             |\r
++------------------------+---------------------------------+\r
+| 500                    | Failure - DR experienced an     |\r
+|                        | internal problem                |\r
++------------------------+---------------------------------+\r
+| 503                    | Failure - DR is not currently   |\r
+|                        | available                       |\r
++------------------------+---------------------------------+\r
+\r
+Feed logging\r
+------------\r
+\r
+**Description**: View logging information for specified feeds, which can be narrowed down with further parameters\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/feedlog/{feedId}?{queryParameter}\r
+\r
+* {feedId} : The id of the feed you want to get logs for\r
+* {queryParameter}: A parameter passed through to narrow the returned logs. Multiple parameters can be passed.\r
+\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k https://{host}:{port}/feedlog/{feedId}?statusCode=204``\r
+\r
+Request parameters\r
+==================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| feedId                 | Id of the feed you want         |     Path         |   String   |              |     Y       | 1                                    |\r
+|                        | logs for                        |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| type                   | Select records of the           |     Path         |   String   |              |     N       | * pub: Publish attempt               |\r
+|                        | specified type                  |                  |            |              |             | * del: Delivery attempt              |\r
+|                        |                                 |                  |            |              |             | * exp: Delivery expiry               |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| publishId              | Select records with specified   |     Path         |   String   |              |     N       |                                      |\r
+|                        | publish id, carried in the      |                  |            |              |             |                                      |\r
+|                        | X-DMAAP-DR-PUBLISH-ID header    |                  |            |              |             |                                      |\r
+|                        | from original publish request   |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| start                  | Select records created at or    |     Path         |   String   |              |     N       | A date-time expressed in the format  |\r
+|                        | after specified date            |                  |            |              |             | specified by RFC 3339                |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| end                    | Select records created at or    |     Path         |   String   |              |     N       | A date-time expressed in the format  |\r
+|                        | before specified date           |                  |            |              |             | specified by RFC 3339                |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| statusCode             | Select records with the         |     Path         |   String   |              |     N       | An HTTP Integer status code or one   |\r
+|                        | specified statusCode field      |                  |            |              |             | of the following special values:     |\r
+|                        |                                 |                  |            |              |             |                                      |\r
+|                        |                                 |                  |            |              |             | * Success: Any code between 200-299  |\r
+|                        |                                 |                  |            |              |             | * Redirect: Any code between 300-399 |\r
+|                        |                                 |                  |            |              |             | * Failure: Any code > 399            |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| expiryReason           | Select records with the         |     Path         |   String   |              |     N       |                                      |\r
+|                        | specified expiry reason         |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| filename               | Select published records with   |     Path         |   String   |              |     N       |                                      |\r
+|                        | the specified filename          |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response Parameters\r
+===================\r
+\r
++------------------------+----------------------------------------------+\r
+| Name                   | Description                                  |\r
++========================+==============================================+\r
+| type                   | Record type:                                 |\r
+|                        |                                              |\r
+|                        | * pub: publication attempt                   |\r
+|                        | * del: delivery attempt                      |\r
+|                        | * exp: delivery expiry                       |\r
++------------------------+----------------------------------------------+\r
+| date                   | The UTC date and time at which the record    |\r
+|                        | was generated, with millisecond resolution   |\r
+|                        | in the format specified by RFC 3339          |\r
++------------------------+----------------------------------------------+\r
+| publishId              | The unique identifier assigned by the DR     |\r
+|                        | at the time of the initial publication       |\r
+|                        | request (carried in the X-DMAAP-DR-PUBLISH-ID|\r
+|                        | header in the response to the original       |\r
+|                        | publish request)                             |\r
++------------------------+----------------------------------------------+\r
+| requestURI             | The Request-URI associated with the          |\r
+|                        | request                                      |\r
++------------------------+----------------------------------------------+\r
+| method                 | The HTTP method (PUT or DELETE) for the      |\r
+|                        | request                                      |\r
++------------------------+----------------------------------------------+\r
+| contentType            | The media type of the payload of the         |\r
+|                        | request                                      |\r
++------------------------+----------------------------------------------+\r
+| contentLength          | The size (in bytes) of the payload of        |\r
+|                        | the request                                  |\r
++------------------------+----------------------------------------------+\r
+| sourceIp               | The IP address from which the request        |\r
+|                        | originated                                   |\r
++------------------------+----------------------------------------------+\r
+| endpointId             | The identity used to submit a publish        |\r
+|                        | request to the DR                            |\r
++------------------------+----------------------------------------------+\r
+| deliveryId             | The identity used to submit a delivery       |\r
+|                        | request to a subscriber endpoint             |\r
++------------------------+----------------------------------------------+\r
+| statusCode             | The HTTP status code in the response to      |\r
+|                        | the request. A value of -1 indicates that    |\r
+|                        | the DR was not able to obtain an HTTP        |\r
+|                        | status code                                  |\r
++------------------------+----------------------------------------------+\r
+| expiryReason           | The reason that delivery attempts were       |\r
+|                        | discontinued:                                |\r
+|                        |                                              |\r
+|                        | * notRetryable: The last delivery attempt    |\r
+|                        |   encountered an error condition for which   |\r
+|                        |   the DR does not make retries.              |\r
+|                        | * retriesExhausted: The DR reached its       |\r
+|                        |   limit for making further retry attempts    |\r
++------------------------+----------------------------------------------+\r
+| attempts               | Total number of attempts made before         |\r
+|                        | delivery attempts were discontinued          |\r
++------------------------+----------------------------------------------+\r
+| filename               | File name associated with a publish record   |\r
++------------------------+----------------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * Unrecognized parameter name in query    |\r
+|                        |   string                                  |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The request was not directed  |\r
+|                        | to a feed log URL or subscription log URL |\r
+|                        | known to the system                       |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method not allowed - The HTTP method in   |\r
+|                        | the request was something other than GET  |\r
++------------------------+-------------------------------------------+\r
+| 406                    | Not Acceptable - The request has an Accept|\r
+|                        | header indicating that the requester will |\r
+|                        | not accept a response with                |\r
+|                        | application/vnd.dmaap-dr.log-list content.|\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | not complete the request                  |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r
+\r
+\r
+Subscription logging\r
+------------------\r
+\r
+**Description**: View logging information for specified subscriptions, which can be narrowed down with further parameters\r
+\r
+Request URL\r
+===========\r
+\r
+http[s]://{host}:{port}/sublog/{subId}?{queryParameter}\r
+\r
+* {subId}: The id of the feed you want to get logs from\r
+* {queryParameter}: A parameter passed through to narrow the returned logs. Multiple parameters can be passed.\r
+\r
+\r
+Sample Request\r
+==============\r
+\r
+``curl -k https://{host}:{port}/sublog/{subId}?statusCode=204``\r
+\r
+Request parameters\r
+==================\r
+\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Valid/Example Values                |\r
++========================+=================================+==================+============+==============+=============+======================================+\r
+| subId                  | Id of the subscription you want |     Path         |   String   |              |     N       | 1                                    |\r
+|                        | logs for                        |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| type                   | Select records of the           |     Path         |   String   |              |     N       | * pub: Publish attempt               |\r
+|                        | specified type                  |                  |            |              |             | * del: Delivery attempt              |\r
+|                        |                                 |                  |            |              |             | * exp: Delivery expiry               |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| publishId              | Select records with specified   |     Path         |   String   |              |     N       |                                      |\r
+|                        | publish id, carried in the      |                  |            |              |             |                                      |\r
+|                        | X-DMAAP-DR-PUBLISH-ID header    |                  |            |              |             |                                      |\r
+|                        | from original publish request   |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| start                  | Select records created at or    |     Path         |   String   |              |     N       | A date-time expressed in the format  |\r
+|                        | after specified date            |                  |            |              |             | specified by RFC 3339                |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| end                    | Select records created at or    |     Path         |   String   |              |     N       | A date-time expressed in the format  |\r
+|                        | before specified date           |                  |            |              |             | specified by RFC 3339                |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| statusCode             | Select records with the         |     Path         |   String   |              |     N       | An Http Integer status code or one   |\r
+|                        | specified statusCode field      |                  |            |              |             | of the following special values:     |\r
+|                        |                                 |                  |            |              |             |                                      |\r
+|                        |                                 |                  |            |              |             | * Success: Any code between 200-299  |\r
+|                        |                                 |                  |            |              |             | * Redirect: Any code between 300-399 |\r
+|                        |                                 |                  |            |              |             | * Failure: Any code > 399            |\r
+|                        |                                 |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+| expiryReason           | Select records with the         |     Path         |   String   |              |     N       |                                      |\r
+|                        | specified expiry reason         |                  |            |              |             |                                      |\r
++------------------------+---------------------------------+------------------+------------+--------------+-------------+--------------------------------------+\r
+\r
+Response Parameters\r
+===================\r
+\r
++------------------------+---------------------------------------------+\r
+| Name                   | Description                                 |\r
++========================+=============================================+\r
+| type                   | Record type:                                |\r
+|                        |                                             |\r
+|                        | * pub: publication attempt                  |\r
+|                        | * del: delivery attempt                     |\r
+|                        | * exp: delivery expiry                      |\r
++------------------------+---------------------------------------------+\r
+| date                   | The UTC date and time at which the record   |\r
+|                        | was generated, with millisecond resolution  |\r
+|                        | in the format specified by RFC 3339         |\r
++------------------------+---------------------------------------------+\r
+| publishId              | The unique identifier assigned by the DR    |\r
+|                        | at the time of the initial publication      |\r
+|                        | request(carried in the X-DMAAP-DR-PUBLISH-ID|\r
+|                        | header in the response to the original      |\r
+|                        | publish request) to a feed log URL or       |\r
+|                        | subscription log URL known to the system    |\r
++------------------------+---------------------------------------------+\r
+| requestURI             | The Request-URI associated with the         |\r
+|                        | request                                     |\r
++------------------------+---------------------------------------------+\r
+| method                 | The HTTP method (PUT or DELETE) for the     |\r
+|                        | request                                     |\r
++------------------------+---------------------------------------------+\r
+| contentType            | The media type of the payload of the        |\r
+|                        | request                                     |\r
++------------------------+---------------------------------------------+\r
+| contentLength          | The size (in bytes) of the payload of       |\r
+|                        | the request                                 |\r
++------------------------+---------------------------------------------+\r
+| sourceIp               | The IP address from which the request       |\r
+|                        | originated                                  |\r
++------------------------+---------------------------------------------+\r
+| endpointId             | The identity used to submit a publish       |\r
+|                        | request to the DR                           |\r
++------------------------+---------------------------------------------+\r
+| deliveryId             | The identity used to submit a delivery      |\r
+|                        | request to a subscriber endpoint            |\r
++------------------------+---------------------------------------------+\r
+| statusCode             | The HTTP status code in the response to     |\r
+|                        | the request. A value of -1 indicates that   |\r
+|                        | the DR was not able to obtain an HTTP       |\r
+|                        | status code                                 |\r
++------------------------+---------------------------------------------+\r
+| expiryReason           | The reason that delivery attempts were      |\r
+|                        | discontinued:                               |\r
+|                        |                                             |\r
+|                        | * notRetryable: The last delivery attempt   |\r
+|                        |   encountered an error condition for which  |\r
+|                        |   the DR does not make retries.             |\r
+|                        | * retriesExhausted: The DR reached its      |\r
+|                        |   limit for making further retry attempts   |\r
++------------------------+---------------------------------------------+\r
+| attempts               | Total number of attempts made before        |\r
+|                        | delivery attempts were discontinued         |\r
++------------------------+---------------------------------------------+\r
+\r
+Response/Error Codes\r
+====================\r
+\r
++------------------------+-------------------------------------------+\r
+| Response statusCode    | Response Description                      |\r
++========================+===========================================+\r
+| 200                    | Successful query                          |\r
++------------------------+-------------------------------------------+\r
+| 400                    | Bad request - The request is defective in |\r
+|                        | some way. Possible causes:                |\r
+|                        |                                           |\r
+|                        | * Unrecognized parameter name in query    |\r
+|                        |   string                                  |\r
+|                        | * Invalid parameter value in query string |\r
++------------------------+-------------------------------------------+\r
+| 404                    | Not Found - The request was not directed  |\r
+|                        | to a feed log URL or subscription log URL |\r
+|                        | known to the system                       |\r
++------------------------+-------------------------------------------+\r
+| 405                    | Method not allowed - The HTTP method in   |\r
+|                        | the request was something other than GET  |\r
++------------------------+-------------------------------------------+\r
+| 406                    | Not Acceptable - The request has an Accept|\r
+|                        | header indicating that the requester will |\r
+|                        | not accept a response with                |\r
+|                        | application/vnd.dmaap-dr.log-list content.|\r
++------------------------+-------------------------------------------+\r
+| 500                    | Internal Server Error - The DR API server |\r
+|                        | encountered an internal error and could   |\r
+|                        | could not complete the request            |\r
++------------------------+-------------------------------------------+\r
+| 503                    | Service Unavailable - The DR API service  |\r
+|                        | is currently unavailable                  |\r
++------------------------+-------------------------------------------+\r