==========================
Data Router (DR) API Guide
==========================
Introduction
------------

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.


HTTP Service APIs
-----------------

DMaaP Data Router utilizes an HTTP REST API to service all transactions. HTTP and REST standards are followed so
clients as varied as CURL, Java applications and even Web Browsers will
work to interact with the Data Router.

General HTTP Requirements
=========================

A DMaaP Data Router transactions consists of 4 distinct segments,
HTTP URL, HTTP Header, HTTP Body (POST/PUT) and HTTP Response. The general
considerations for each segment are as follows and are required for each
of the specific transactions described in this section.

HTTP URL
========

http[s]://{serverBaseURL}/{resourcePath}

* The serverBaseURL points to DMaaP Data Router host/port that will service the request.
* The resourcePath specifies the specific service that the client is attempting to reach.


HTTP Header
===========

Specifies HTTP Headers, such as Content-Type, that define the parameters of the HTTP Transaction

HTTP Body
=========

The HTTP Body contains the feed content when creating a feed.

Create a Feed
-------------

**Description**: Creates a unique set of URL's to service the publisher/subscriber model.

Sample Request
==============

curl -v -X POST -H "Content-Type: application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF: {user}" --data-ascii @/opt/app/datartr/addFeed3.txt --post301 --location-trusted -k https:/{host}:{port}

Request Parameters:
===================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| name                   | Feed name                       |     Body         |   String   |    <=20      |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| version                | Feed version                    |     Body         |   String   |    <=20      |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| description            | Feed description                |     Body         |   String   |              |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| business description   | Business description            |     Body         |   String   |              |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Authorization          | Information for authorizing     |     Body         |   Object   |              |     Y       |                     |                                      |
|                        | publishing requests             |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| suspend                | Set to true if the feed is in   |     Body         |   Boolean  |              |     N       |                     | * true                               |
|                        | the suspended state             |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| group-id               |                                 |     Body         |   Integer  |              |     Y       |                     |                                      |
|                        |                                 |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| content-type           | To specify type of message      |     Header       |   String   |     20       |     N       |                     | application/vnd.att-dr.feed          |
|                        | (feed,subscriber,publisher)     |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| X-ATT-DR-ON-BEHALF-OF  | User id of owner of feed        |     Header       |   String   |     1        |     N       |                     |  username                            |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 201                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * JSON object in request body does not    |
|                        |   conform to the spec.                    |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the requests Content-Type header is not   |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Sample Body
===========
.. code-block:: json

 {
     "name": "Jettydemo",
     "version": "m1.0",
     "description": "Jettydemo",
     "business_description": "Jettydemo",
     "suspend": false,
     "deleted": false,
     "changeowner": true,
     "authorization": {
          "classification": "unclassified",
          "endpoint_addrs": [
               "172.18.0.3",
            ],
          "endpoint_ids": [
               {
                    "password": "password",
                    "id": "user"
               }
          ]
     },

}

Updating a Feed
---------------

**Description**: Update a feed with new parameters.

Sample Request
==============

curl -v -X PUT -H "Content-Type: application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF: {user}" --data-ascii @/opt/app/datartr/addFeed3.txt --location-trusted -k https:/{host}:{port}

Request Parameters:
===================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| description            | Feed description                |     Body         |   String   |              |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| business description   | Business description            |     Body         |   String   |              |     Y       |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Authorization          | Information for authorizing     |     Body         |   Object   |              |     Y       |                     |                                      |
|                        | publishing requests             |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| suspend                | Set to true if the feed is in   |     Body         |   Boolean  |              |     N       |                     | * true                               |
|                        | the suspended state             |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| group-id               |                                 |     Body         |   Integer  |              |     Y       |                     |                                      |
|                        |                                 |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| content-type           | To specify type of message      |     Header       |   String   |     20       |     N       |                     | application/vnd.att-dr.feed          |
|                        | (feed,subscriber,publisher)     |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| X-ATT-DR-ON-BEHALF-OF  | User id of owner of feed        |     Header       |   String   |     1        |     N       |                     |  username                            |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * JSON object in request body does not    |
|                        |   conform to the spec.                    |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Sample Body
===========
.. code-block:: json

 {
     "name": "Jettydemo",
     "version": "m1.0",
     "description": "Jettydemo",
     "business_description": "Jettydemo",
     "suspend": false,
     "deleted": false,
     "changeowner": true,
     "authorization": {
          "classification": "unclassified",
          "endpoint_addrs": [
               "172.18.0.3",
            ],
          "endpoint_ids": [
               {
                    "password": "password",
                    "id": "user"
               }
          ]
     },

}

Get a Feed
----------

**Description**: Retrieves a representation of the specified feed.

Request URL
===========

http[s]://{host}:{port}/feed/{feedId}

* {feedId}: Id of the feed you want to see a representation of

Sample Request
==============

curl -v -X GET -H "X-ATT-DR-ON-BEHALF-OF: {user}" --location-trusted -k https:/{host}:{port}/feed/{feedId}

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Delete a Feed
-------------

**Description**: Deletes a specified feed

Request URL
===========

http[s]://{host}:{port}/feed/{feedId}

* {feedId}: Id of the feed you want to delete

Sample Request
==============

curl -v -X DELETE -H "X-ATT-DR-ON-BEHALF-OF: {user}" --location-trusted -k https:/{host}:{port}/feed/{feedId}

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 204                    | Successful query                          |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+


Subscribe to Feed
-----------------

**Description**: Subscribes to a created feed to receive files published to that feed.

Request URL
===========

http[s]://{host}:{port}/subscribe/{feedId}

Sample Request
==============

curl -v -X POST -H "Content-Type: application/vnd.att-dr.subscription" -H "X-ATT-DR-ON-BEHALF-OF: {user}" --data-ascii @/opt/app/datartr/addSubscriber.txt --post301 --location-trusted -k https://{host}:{port}/subscribe/{feedId}

Request Parameters:
===================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| feedId                 | ID for the feed you are         |     Path         |   String   |              |     Y       |                     |                                      |
|                        | subscribing to                  |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| delivery               | Address and credentials for     |     Body         |   Object   |              |     Y       |                     |                                      |
|                        | delivery                        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| follow_redirect        | Set to true if feed redirection |     Body         |   Boolean  |              |     Y       |                     | * true                               |
|                        | is expected                     |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| metadata_only          | Set to true if subscription is  |     Body         |   Boolean  |              |     Y       |                     | * true                               |
|                        | to receive per-file metadata    |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| suspend                | Set to true if the subscription |     Body         |   Boolean  |              |     N       |                     | * true                               |
|                        | is in the suspended state       |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| group-id               |                                 |     Body         |   Integer  |              |     Y       |                     |                                      |
|                        |                                 |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| content-type           | To specify type of message      |     Header       |   String   |     20       |     N       |                     | application/vnd.att-dr.subscription  |
|                        | (feed,subscriber,publisher)     |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| X-ATT-DR-ON-BEHALF-OF  | User id of subscriber           |     Header       |   String   |     1        |     N       |                     |  username                            |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 201                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * JSON object in request body does not    |
|                        |   conform to the spec.                    |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the requests Content-Type header is not   |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Sample Body
===========
.. code-block:: json

 {
    "delivery" :{
        "url" : "http://172.18.0.3:7070/",
        "user" : "LOGIN",
        "password" : "PASSWORD",
        "use100" : true
    },
    "metadataOnly" : false,
    "suspend" : false,
    "groupid" : 29,
    "subscriber" : "subscriber123"

}

Update subscription
-------------------

**Description**: Update a subscription to a feed.

Request URL
===========

http[s]://{host}:{port}/subscribe/{feedId}

Sample Request
==============

curl -v -X PUT -H "Content-Type: application/vnd.att-dr.subscription" -H "X-ATT-DR-ON-BEHALF-OF: {user}" --data-ascii @/opt/app/datartr/addSubscriber.txt --location-trusted -k https://{host}:{port}/subscribe/{feedId}

Request Parameters:
===================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| feedId                 | ID for the subscription you are |     Path         |   String   |              |     Y       |                     |                                      |
|                        | updating                        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| delivery               | Address and credentials for     |     Body         |   Object   |              |     Y       |                     |                                      |
|                        | delivery                        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| follow_redirect        | Set to true if feed redirection |     Body         |   Boolean  |              |     Y       |                     | * true                               |
|                        | is expected                     |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| metadata_only          | Set to true if subscription is  |     Body         |   Boolean  |              |     Y       |                     | * true                               |
|                        | to receive per-file metadata    |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| suspend                | Set to true if the subscription |     Body         |   Boolean  |              |     N       |                     | * true                               |
|                        | is in the suspended state       |                  |            |              |             |                     | * false                              |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| group-id               |                                 |     Body         |   Integer  |              |     Y       |                     |                                      |
|                        |                                 |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| content-type           | To specify type of message      |     Header       |   String   |     20       |     N       |                     | application/vnd.att-dr.subscription  |
|                        | (feed,subscriber,publisher)     |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| X-ATT-DR-ON-BEHALF-OF  | User id of subscriber           |     Header       |   String   |     1        |     N       |                     |  username                            |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * JSON object in request body does not    |
|                        |   conform to the spec.                    |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Sample Body
===========
.. code-block:: json

 {
    "delivery" :{
        "url" : "http://172.18.0.3:7070/",
        "user" : "LOGIN",
        "password" : "PASSWORD",
        "use100" : true
    },
    "metadataOnly" : false,
    "suspend" : false,
    "groupid" : 29,
    "subscriber" : "subscriber123"

}


Get a Subscription
------------------

**Description**: Retrieves a representation of the specified subscription.

Request URL
===========

http[s]://{host}:{port}/subscribe/{subId}

* {subId}: Id of the subscription you want to see a representation of

Sample Request
==============

curl -v -X GET -H "X-ATT-DR-ON-BEHALF-OF: {user}" --location-trusted -k https:/{host}:{port}/subscribe/{subId}

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Delete a subscription
---------------------

**Description**: Deletes a specified subscription

Request URL
===========

http[s]://{host}:{port}/feed/{feedId}

* {feedId}: Id of the subscription you want to delete

Sample Request
==============

curl -v -X DELETE -H "X-ATT-DR-ON-BEHALF-OF: {user}" --location-trusted -k https:/{host}:{port}/subscribe/{feedId}

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 204                    | Successful query                          |
+------------------------+-------------------------------------------+
| 401                    | Indicates that the request was missing the|
|                        | Authorization header or, if the header    |
|                        | was presented, the credentials were not   |
|                        | acceptable                                |
+------------------------+-------------------------------------------+
| 403                    | The request failed authorization.         |
|                        | Possible causes:                          |
|                        |                                           |
|                        | * Request originated from an unauthorized |
|                        |   IP address                              |
|                        | * Client certificate subject is not on    |
|                        |   the API’s authorized list.              |
|                        | * X-ATT-DR-ON-BEHALF-OF identity is not   |
|                        |   authorized to perform                   |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The Request-URI does not point|
|                        | to a resource that is known to the API.   |
+------------------------+-------------------------------------------+
| 405                    | Method Not Allowed - The HTTP method in   |
|                        | the request is not supported for the      |
|                        | resource addressed by the Request-URI.    |
+------------------------+-------------------------------------------+
| 415                    | Unsupported Media Type - The media type in|
|                        | the request’s Content-Type header is not  |
|                        | appropriate for the request.              |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request.                 |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+
| -1                     | Failed Delivery                           |
+------------------------+-------------------------------------------+

Publish to Feed
---------------

**Description**: Publish a file to a created feed so that it can be shared to any subscribers of that feed

Request URL
===========

http[s]://{host}:{port}/publish/{feedId}/{fileName}

* {feedId} is the id of the feed you are publishing to.
* {fileId} is the id of the file you are publishing onto the feed.


Request parameters
==================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| feedId                 | ID of the feed you are          |     Path         |   String   |              |     Y       |                     |                                      |
|                        | publishing to                   |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| fileId                 | Name of the file when it  is    |     Path         |   String   |              |     Y       |                     |                                      |
|                        | published to subscribers        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| content-type           | To specify type of message      |     Header       |   String   |     20       |     N       |                     | application/octet-stream             |
|                        | format                          |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response/Error Codes
====================

+------------------------+---------------------------------+
| Response statusCode    | Response Description            |
+========================+=================================+
| 204                    | Successful PUT or DELETE        |
+------------------------+---------------------------------+
| 400                    | Failure - Malformed request     |
+------------------------+---------------------------------+
| 401                    | Failure - Request was missing   |
|                        | authorization header, or        |
|                        | credentials were not accepted   |
+------------------------+---------------------------------+
| 403                    | Failure - User could not be     |
|                        | authenticated, or was not       |
|                        | authorized to make the request  |
+------------------------+---------------------------------+
| 404                    | Failure - Path in the request   |
|                        | URL did not point to a valid    |
|                        | feed publishing URL             |
+------------------------+---------------------------------+
| 500                    | Failure - DR experienced an     |
|                        | internal problem                |
+------------------------+---------------------------------+
| 503                    | Failure - DR is not currently   |
|                        | available                       |
+------------------------+---------------------------------+

Sample Request
==============

curl -v -X PUT --user {user}:{password} -H "Content-Type: application/octet-stream" --data-binary @/opt/app/datartr/sampleFile.txt --post301 --location-trusted -k https://{host}:{port}/publish/{feedId}/sampleFile.txt

Delete a Published file
-----------------------

**Description**: Deletes a specified published file

Request URL
===========

http[s]://{host}:{port}/publish/{feedId}/{fileId}

* {feedId}: Id of the feed you want to delete a published file from
* {fileId}: Id of the published file you want to delete

Sample Request
==============

curl -v -X DELETE -H "X-ATT-DR-ON-BEHALF-OF: {user}" --location-trusted -k https:/{host}:{port}/publish/{feedId}/{fileId}

Response/Error Codes
====================

+------------------------+---------------------------------+
| Response statusCode    | Response Description            |
+========================+=================================+
| 204                    | Successful PUT or DELETE        |
+------------------------+---------------------------------+
| 400                    | Failure - Malformed request     |
+------------------------+---------------------------------+
| 401                    | Failure - Request was missing   |
|                        | authorization header, or        |
|                        | credentials were not accepted   |
+------------------------+---------------------------------+
| 403                    | Failure - User could not be     |
|                        | authenticated, or was not       |
|                        | authorized to make the request  |
+------------------------+---------------------------------+
| 404                    | Failure - Path in the request   |
|                        | URL did not point to a valid    |
|                        | feed publishing URL             |
+------------------------+---------------------------------+
| 500                    | Failure - DR experienced an     |
|                        | internal problem                |
+------------------------+---------------------------------+
| 503                    | Failure - DR is not currently   |
|                        | available                       |
+------------------------+---------------------------------+

Feed logging
------------

**Description**: View logging information for specified feeds, which can be narrowed down with further parameters

Request URL
===========


http[s]://{host}:{port}/feedlog/{feedId}?{queryParameter}

* {feedId} : The id of the feed you want to get logs from
* {queryParameter}: A parameter passed through to narrow the returned logs. multiple parameters can be passed

Request parameters
==================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| feedId                 | Id of the feed you want         |     Path         |   String   |              |     N       |                     | 1                                    |
|                        | logs from                       |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| type                   | Select records of the           |     Path         |   String   |              |     N       |                     | * pub: Publish attempt               |
|                        | specified type                  |                  |            |              |             |                     | * del: Delivery attempt              |
|                        |                                 |                  |            |              |             |                     | * exp: Delivery expiry               |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| publishId              | Select records with specified   |     Path         |   String   |              |     N       |                     |                                      |
|                        | publish id, carried in the      |                  |            |              |             |                     |                                      |
|                        | X-ATT-DR-PUBLISH-ID header from |                  |            |              |             |                     |                                      |
|                        | original publish request        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| start                  | Select records created at or    |     Path         |   String   |              |     N       |                     | A date-time expressed in the format  |
|                        | after specified date            |                  |            |              |             |                     | specified by RFC 3339                |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| end                    | Select records created at or    |     Path         |   String   |              |     N       |                     | A date-time expressed in the format  |
|                        | before specified date           |                  |            |              |             |                     | specified by RFC 3339                |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| statusCode             | Select records with the         |     Path         |   String   |              |     N       |                     | An HTTP Integer status code or one   |
|                        | specified statusCode field      |                  |            |              |             |                     | of the following special values:     |
|                        |                                 |                  |            |              |             |                     |                                      |
|                        |                                 |                  |            |              |             |                     | * Success: Any code between 200-299  |
|                        |                                 |                  |            |              |             |                     | * Redirect: Any code between 300-399 |
|                        |                                 |                  |            |              |             |                     | * Failure: Any code > 399            |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| expiryReason           | Select records with the         |     Path         |   String   |              |     N       |                     |                                      |
|                        | specified expiry reason         |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response Parameters
===================

+------------------------+-------------------------------------------+
| Name                   | Description                               |
+========================+===========================================+
| type                   | Record type:                              |
|                        |                                           |
|                        | * pub: publication attempt                |
|                        | * del: delivery attempt                   |
|                        | * exp: delivery expiry                    |
+------------------------+-------------------------------------------+
| date                   | The UTC date and time at which the record |
|                        | was generated, with millisecond resolution|
|                        | in the format specified by RFC 3339       |
+------------------------+-------------------------------------------+
| publishId              | The unique identifier assigned by the DR  |
|                        | at the time of the initial publication    |
|                        | request (carried in the X-ATT-DRPUBLISH-ID|
|                        | header in the response to the original    |
|                        | publish request)                          |
+------------------------+-------------------------------------------+
| requestURI             | The Request-URI associated with the       |
|                        | request                                   |
+------------------------+-------------------------------------------+
| method                 | The HTTP method (PUT or DELETE) for the   |
|                        | request                                   |
+------------------------+-------------------------------------------+
| contentType            | The media type of the payload of the      |
|                        | request                                   |
+------------------------+-------------------------------------------+
| contentLength          | The size (in bytes) of the payload of     |
|                        | the request                               |
+------------------------+-------------------------------------------+
| sourceIp               | The IP address from which the request     |
|                        | originated                                |
+------------------------+-------------------------------------------+
| endpointId             | The identity used to submit a publish     |
|                        | request to the DR                         |
+------------------------+-------------------------------------------+
| deliveryId             | The identity used to submit a delivery    |
|                        | request to a subscriber endpoint          |
+------------------------+-------------------------------------------+
| statusCode             | The HTTP status code in the response to   |
|                        | the request. A value of -1 indicates that |
|                        | the DR was not able to obtain an HTTP     |
|                        | status code                               |
+------------------------+-------------------------------------------+
| expiryReason           | The reason that delivery attempts were    |
|                        | discontinued:                             |
|                        |                                           |
|                        | * notRetryable: The last delivery attempt |
|                        |   encountered an error condition for which|
|                        |   the DR does not make retries.           |
|                        | * retriesExhausted: The DR reached its    |
|                        |   limit for making further retry attempts |
+------------------------+-------------------------------------------+
| attempts               | Total number of attempts made before      |
|                        | delivery attempts were discontinued       |
+------------------------+-------------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * Unrecognized parameter name in query    |
|                        |   string                                  |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The request was not directed  |
|                        | to a feed log URL or subscription log URL |
|                        | known to the system                       |
+------------------------+-------------------------------------------+
| 405                    | Method not allowed - The HTTP method in   |
|                        | the request was something other than GET  |
+------------------------+-------------------------------------------+
| 406                    | Not Acceptable - The request has an Accept|
|                        | header indicating that the requester will |
|                        | not accept a response with                |
|                        | application/vnd.att-dr.log-list content.  |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | not complete the request                  |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+

Sample Request
==============

curl -v -k https://{host}:{port}/feedlog/{feedId}?statusCode=204

Subscriber logging
------------------

**Description**: View logging information for specified subscriptions, which can be narrowed down with further parameters

Request URL
===========


http[s]://{host}:{port}/sublog/{subId}?{queryParameter}

* {subId}: The id of the feed you want to get logs from
* {queryParameter}: A parameter passed through to narrow the returned logs. multiple parameters can be passed

Request parameters
==================

+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| Name                   | Description                     |  Param Type      |  Data Type |   MaxLen     |  Required   |  Format             |  Valid/Example Values                |
+========================+=================================+==================+============+==============+=============+=====================+======================================+
| subId                  | Id of the feed you want         |     Path         |   String   |              |     N       |                     | 1                                    |
|                        | logs from                       |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| type                   | Select records of the           |     Path         |   String   |              |     N       |                     | * pub: Publish attempt               |
|                        | specified type                  |                  |            |              |             |                     | * del: Delivery attempt              |
|                        |                                 |                  |            |              |             |                     | * exp: Delivery expiry               |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| publishId              | Select records with specified   |     Path         |   String   |              |     N       |                     |                                      |
|                        | publish id, carried in the      |                  |            |              |             |                     |                                      |
|                        | X-ATT-DR-PUBLISH-ID header from |                  |            |              |             |                     |                                      |
|                        | original publish request        |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| start                  | Select records created at or    |     Path         |   String   |              |     N       |                     | A date-time expressed in the format  |
|                        | after specified date            |                  |            |              |             |                     | specified by RFC 3339                |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| end                    | Select records created at or    |     Path         |   String   |              |     N       |                     | A date-time expressed in the format  |
|                        | before specified date           |                  |            |              |             |                     | specified by RFC 3339                |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| statusCode             | Select records with the         |     Path         |   String   |              |     N       |                     | An Http Integer status code or one   |
|                        | specified statusCode field      |                  |            |              |             |                     | of the following special values:     |
|                        |                                 |                  |            |              |             |                     |                                      |
|                        |                                 |                  |            |              |             |                     | * Success: Any code between 200-299  |
|                        |                                 |                  |            |              |             |                     | * Sedirect: Any code between 300-399 |
|                        |                                 |                  |            |              |             |                     | * Sailure: Any code > 399            |
|                        |                                 |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+
| expiryReason           | Select records with the         |     Path         |   String   |              |     N       |                     |                                      |
|                        | specified expiry reason         |                  |            |              |             |                     |                                      |
+------------------------+---------------------------------+------------------+------------+--------------+-------------+---------------------+--------------------------------------+

Response Parameters
===================

+------------------------+-------------------------------------------+
| Name                   | Description                               |
+========================+===========================================+
| type                   | Record type:                              |
|                        |                                           |
|                        | * pub: publication attempt                |
|                        | * del: delivery attempt                   |
|                        | * exp: delivery expiry                    |
+------------------------+-------------------------------------------+
| date                   | The UTC date and time at which the record |
|                        | was generated, with millisecond resolution|
|                        | in the format specified by RFC 3339       |
+------------------------+-------------------------------------------+
| publishId              | The unique identifier assigned by the DR  |
|                        | at the time of the initial publication    |
|                        | request (carried in the X-ATT-DRPUBLISH-ID|
|                        | header in the response to the original    |
|                        | publish request) to a feed log URL or     |
|                        | subscription log URL known to the system  |
+------------------------+-------------------------------------------+
| requestURI             | The Request-URI associated with the       |
|                        | request                                   |
+------------------------+-------------------------------------------+
| method                 | The HTTP method (PUT or DELETE) for the   |
|                        | request                                   |
+------------------------+-------------------------------------------+
| contentType            | The media type of the payload of the      |
|                        | request                                   |
+------------------------+-------------------------------------------+
| contentLength          | The size (in bytes) of the payload of     |
|                        | the request                               |
+------------------------+-------------------------------------------+
| sourceIp               | The IP address from which the request     |
|                        | originated                                |
+------------------------+-------------------------------------------+
| endpointId             | The identity used to submit a publish     |
|                        | request to the DR                         |
+------------------------+-------------------------------------------+
| deliveryId             | The identity used to submit a delivery    |
|                        | request to a subscriber endpoint          |
+------------------------+-------------------------------------------+
| statusCode             | The HTTP status code in the response to   |
|                        | the request. A value of -1 indicates that |
|                        | the DR was not able to obtain an HTTP     |
|                        | status code                               |
+------------------------+-------------------------------------------+
| expiryReason           | The reason that delivery attempts were    |
|                        | discontinued:                             |
|                        |                                           |
|                        | * notRetryable: The last delivery attempt |
|                        |   encountered an error condition for which|
|                        |   the DR does not make retries.           |
|                        | * retriesExhausted: The DR reached its    |
|                        |   limit for making further retry attempts |
+------------------------+-------------------------------------------+
| attempts               | Total number of attempts made before      |
|                        | delivery attempts were discontinued       |
+------------------------+-------------------------------------------+

Response/Error Codes
====================

+------------------------+-------------------------------------------+
| Response statusCode    | Response Description                      |
+========================+===========================================+
| 200                    | Successful query                          |
+------------------------+-------------------------------------------+
| 400                    | Bad request - The request is defective in |
|                        | some way. Possible causes:                |
|                        |                                           |
|                        | * Unrecognized parameter name in query    |
|                        |   string                                  |
|                        | * Invalid parameter value in query string |
+------------------------+-------------------------------------------+
| 404                    | Not Found - The request was not directed  |
|                        | to a feed log URL or subscription log URL |
|                        | known to the system                       |
+------------------------+-------------------------------------------+
| 405                    | Method not allowed - The HTTP method in   |
|                        | the request was something other than GET  |
+------------------------+-------------------------------------------+
| 406                    | Not Acceptable - The request has an Accept|
|                        | header indicating that the requester will |
|                        | not accept a response with                |
|                        | application/vnd.att-dr.log-list content.  |
+------------------------+-------------------------------------------+
| 500                    | Internal Server Error - The DR API server |
|                        | encountered an internal error and could   |
|                        | could not complete the request            |
+------------------------+-------------------------------------------+
| 503                    | Service Unavailable - The DR API service  |
|                        | is currently unavailable                  |
+------------------------+-------------------------------------------+

Sample Request
==============

curl -v -k https://{host}:{port}/sublog/{subscriberId}?statusCode=204