@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Qakka
@version v1
@endpoints 10
@toc queues(9), status(1)

@group queues
@endpoint GET /queues
@desc Get list of all Queues.
@returns(200) successful operation

@endpoint POST /queues
@desc Create new queue.
@returns(200) successful operation
@errors {400: No Queue object posted, or name field is missing}

@endpoint DELETE /queues/{queueName}
@desc Delete Queue.
@required {queueName: any}
@optional {confirm: any}
@returns(200) successful operation
@errors {400: Queue name or confirm flag missing.}

@endpoint GET /queues/{queueName}/config
@desc Get Queue config.
@required {queueName: any # Name of Queue}
@returns(200) successful operation
@errors {400: Queue name or confirm flag missing.}

@endpoint PUT /queues/{queueName}/config
@desc Update Queue configuration.
@required {queueName: any}
@returns(200) successful operation
@errors {400: No Queue object posted, or name field is missing}

@endpoint GET /queues/{queueName}/data/{queueMessageId}
@desc Get data associated with a Queue Message.
@required {queueName: any # Name of Queue, queueMessageId: any # ID of Queue Message for which data is to be returned}
@returns(200) successful operation
@errors {400: Message ID invalid, 404: Queue Message or data not found}

@endpoint GET /queues/{queueName}/messages
@desc Get next Queue Messages from a Queue
@required {queueName: any # Name of Queue}
@optional {count: any # Number of messages to get}
@returns(200) successful operation
@errors {400: Invalid count parameter}

@endpoint POST /queues/{queueName}/messages
@desc Send Queue Message with a binary data (blob) payload.
@required {queueName: any # Name of Queue, contentType: any # Content type of the data to be sent with Queue Message, body: [str(byte)] # Data to be send with Queue Message}
@optional {regions: any # Regions to which message is to be sent, delay: any, expiration: any}
@returns(200) successful operation

@endpoint DELETE /queues/{queueName}/messages/{queueMessageId}
@desc Acknowledge that Queue Message has been processed.
@required {queueName: any # Name of Queue, queueMessageId: any # ID of Queue Message to be acknowledged}
@returns(200) successful operation
@errors {400: Queue Message ID invalid, or message not in-flight}

@endgroup

@group status
@endpoint GET /status
@desc Status of webapp.
@returns(200) successful operation

@endgroup

@end
