blob: 4c00c4d1c50fd96da5b589fbfc518328c30c779c [file] [log] [blame]
<!DOCTYPE html>
<html>
<title>API Document</title>
<xmp theme="united" style="display:none;">
#Qakka
API for Qakka Queue System
**Version** v1
[**Apache 2.0**](http://www.apache.org/licenses/LICENSE-2.0.html)
# APIs
## /queues
### GET
<a id="getListOfQueues">Get list of all Queues.</a>
#### Request
##### Parameters
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
### POST
<a id="createQueue">Create new queue.</a>
#### Request
**Content-Type: ** application/json
##### Parameters
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | No Queue object posted, or name field is missing | - |
## /queues/{queueName}
### DELETE
<a id="deleteQueue">Delete Queue.</a>
#### Request
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td></td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>confirm</th>
<td>query</td>
<td>no</td>
<td></td>
<td> - </td>
<td>boolean </td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | Queue name or confirm flag missing. | - |
## /queues/{queueName}/config
### GET
<a id="getQueueConfig">Get Queue config.</a>
#### Request
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td>Name of Queue</td>
<td> - </td>
<td>string </td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | Queue name or confirm flag missing. | - |
### PUT
<a id="updateQueueConfig">Update Queue configuration.</a>
#### Request
**Content-Type: ** application/json
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td></td>
<td> - </td>
<td>string </td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | No Queue object posted, or name field is missing | - |
## /queues/{queueName}/data/{queueMessageId}
### GET
<a id="getMessageData">Get data associated with a Queue Message.</a>
#### Request
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td>Name of Queue</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>queueMessageId</th>
<td>path</td>
<td>yes</td>
<td>ID of Queue Message for which data is to be returned</td>
<td> - </td>
<td>string </td>
</tr>
</table>
#### Response
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | Message ID invalid | - |
| 404 | Queue Message or data not found | - |
## /queues/{queueName}/messages
### GET
<a id="getNextMessages">Get next Queue Messages from a Queue</a>
#### Request
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td>Name of Queue</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>count</th>
<td>query</td>
<td>no</td>
<td>Number of messages to get</td>
<td> - </td>
<td>string </td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | Invalid count parameter | - |
### POST
<a id="sendMessageBinary">Send Queue Message with a binary data (blob) payload.</a>
#### Request
**Content-Type: ** application/octet-stream
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td>Name of Queue</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>regions</th>
<td>query</td>
<td>no</td>
<td>Regions to which message is to be sent</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>delay</th>
<td>query</td>
<td>no</td>
<td></td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>expiration</th>
<td>query</td>
<td>no</td>
<td></td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>contentType</th>
<td>query</td>
<td>yes</td>
<td>Content type of the data to be sent with Queue Message</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>body</th>
<td>body</td>
<td>yes</td>
<td>Data to be send with Queue Message</td>
<td> - </td>
<td>
Array[<a href=""></a>]
</td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
## /queues/{queueName}/messages/{queueMessageId}
### DELETE
<a id="ackMessage">Acknowledge that Queue Message has been processed.</a>
#### Request
##### Parameters
<table border="1">
<tr>
<th>Name</th>
<th>Located in</th>
<th>Required</th>
<th>Description</th>
<th>Default</th>
<th>Schema</th>
</tr>
<tr>
<th>queueName</th>
<td>path</td>
<td>yes</td>
<td>Name of Queue</td>
<td> - </td>
<td>string </td>
</tr>
<tr>
<th>queueMessageId</th>
<td>path</td>
<td>yes</td>
<td>ID of Queue Message to be acknowledged</td>
<td> - </td>
<td>string </td>
</tr>
</table>
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | <a href="#/definitions/ApiResponse">ApiResponse</a>|
| 400 | Queue Message ID invalid, or message not in-flight | - |
## /status
### GET
<a id="status">Status of webapp.</a>
#### Request
##### Parameters
#### Response
**Content-Type: ** application/json
| Status Code | Reason | Response Model |
|-------------|-------------|----------------|
| 200 | successful operation | |
# Definitions
## <a name="/definitions/ApiResponse">ApiResponse</a>
<p> Response returned by most Queue API calls. </p>
<table border="1">
<tr>
<th>name</th>
<th>type</th>
<th>required</th>
<th>description</th>
<th>example</th>
</tr>
<tr>
<td>message</td>
<td>
string
</td>
<td>optional</td>
<td>Informative message intended for client.</td>
<td></td>
</tr>
<tr>
<td>count</td>
<td>
integer (int32)
</td>
<td>optional</td>
<td>Count of Queues or QueueMessages returned by the call.</td>
<td></td>
</tr>
<tr>
<td>queues</td>
<td>
array[<a href="#/definitions/Queue">Queue</a>]
</td>
<td>optional</td>
<td>Queues returned but the call, or empty if not applicable.</td>
<td></td>
</tr>
<tr>
<td>queueMessages</td>
<td>
array[<a href="#/definitions/QueueMessage">QueueMessage</a>]
</td>
<td>optional</td>
<td>Queues Messages returned by the call, or empty if not applicable.</td>
<td></td>
</tr>
</table>
## <a name="/definitions/Queue">Queue</a>
<p> Specifies the configuration for a Queue. </p>
<table border="1">
<tr>
<th>name</th>
<th>type</th>
<th>required</th>
<th>description</th>
<th>example</th>
</tr>
<tr>
<td>name</td>
<td>
string
</td>
<td>required</td>
<td>Name of queue, must be unique.</td>
<td></td>
</tr>
</table>
## <a name="/definitions/QueueMessage">QueueMessage</a>
<p> A Queue Message </p>
<table border="1">
<tr>
<th>name</th>
<th>type</th>
<th>required</th>
<th>description</th>
<th>example</th>
</tr>
<tr>
<td>queueMessageId</td>
<td>
string (uuid)
</td>
<td>optional</td>
<td>UUID of Queue Message in local region.</td>
<td></td>
</tr>
<tr>
<td>messageId</td>
<td>
string (uuid)
</td>
<td>optional</td>
<td>UUID of Message Data associated with this Queue Message</td>
<td></td>
</tr>
<tr>
<td>queueName</td>
<td>
string
</td>
<td>required</td>
<td>Name of Queue for message.</td>
<td></td>
</tr>
<tr>
<td>sendingRegion</td>
<td>
string
</td>
<td>optional</td>
<td>Region from which was sent</td>
<td></td>
</tr>
<tr>
<td>receivingRegion</td>
<td>
string
</td>
<td>optional</td>
<td>Regions to which message will be sent</td>
<td></td>
</tr>
<tr>
<td>createDate</td>
<td>
integer (int64)
</td>
<td>optional</td>
<td>Date that message was received by system.</td>
<td></td>
</tr>
<tr>
<td>contentType</td>
<td>
string
</td>
<td>optional</td>
<td>Content-type of data associated with QueueMessage.</td>
<td></td>
</tr>
<tr>
<td>data</td>
<td>
string
</td>
<td>optional</td>
<td>Embedded JSON to be sent with Queue Message.</td>
<td></td>
</tr>
<tr>
<td>href</td>
<td>
string
</td>
<td>optional</td>
<td>URL of data associated with Queue Message (if not embedded JSON)</td>
<td></td>
</tr>
</table>
</xmp>
<script src="http://strapdownjs.com/v/0.2/strapdown.js"></script>
</html>