@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS IoT Data Plane
@version 2015-05-28
@auth AWS SigV4
@endpoints 7
@toc things(3), retainedMessage(2), api(1), topics(1)

@group things
@endpoint DELETE /things/{thingName}/shadow
@desc Deletes the shadow for the specified thing. Requires permission to access the DeleteThingShadow action. For more information, see DeleteThingShadow in the IoT Developer Guide.
@required {thingName: str}
@optional {name: str}
@returns(200) {payload: bytes}

@endgroup

@group retainedMessage
@endpoint GET /retainedMessage/{topic}
@desc Gets the details of a single retained message for the specified topic. This action returns the message payload of the retained message, which can incur messaging costs. To list only the topic names of the retained messages, call ListRetainedMessages. Requires permission to access the GetRetainedMessage action. For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.
@required {topic: str}
@returns(200) {topic: str?, payload: bytes?, qos: int?, lastModifiedTime: int(i64)?, userProperties: bytes?}

@endgroup

@group things
@endpoint GET /things/{thingName}/shadow
@desc Gets the shadow for the specified thing. Requires permission to access the GetThingShadow action. For more information, see GetThingShadow in the IoT Developer Guide.
@required {thingName: str}
@optional {name: str}
@returns(200) {payload: bytes?}

@endgroup

@group api
@endpoint GET /api/things/shadow/ListNamedShadowsForThing/{thingName}
@desc Lists the shadows for the specified thing. Requires permission to access the ListNamedShadowsForThing action.
@required {thingName: str}
@optional {nextToken: str, pageSize: int}
@returns(200) {results: [str]?, nextToken: str?, timestamp: int(i64)?}

@endgroup

@group retainedMessage
@endpoint GET /retainedMessage
@desc Lists summary information about the retained messages stored for the account. This action returns only the topic names of the retained messages. It doesn't return any message payloads. Although this action doesn't return a message payload, it can still incur messaging costs. To get the message payload of a retained message, call GetRetainedMessage with the topic name of the retained message. Requires permission to access the ListRetainedMessages action. For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.
@optional {nextToken: str, maxResults: int}
@returns(200) {retainedTopics: [RetainedMessageSummary]?, nextToken: str?}

@endgroup

@group topics
@endpoint POST /topics/{topic}
@desc Publishes an MQTT message. Requires permission to access the Publish action. For more information about MQTT messages, see MQTT Protocol in the IoT Developer Guide. For more information about messaging costs, see Amazon Web Services IoT Core pricing - Messaging.
@required {topic: str}
@optional {qos: int, retain: bool, x-amz-mqtt5-user-properties: str, x-amz-mqtt5-payload-format-indicator: str, contentType: str, responseTopic: str, x-amz-mqtt5-correlation-data: str, messageExpiry: int(i64), payload: bytes}

@endgroup

@group things
@endpoint POST /things/{thingName}/shadow
@desc Updates the shadow for the specified thing. Requires permission to access the UpdateThingShadow action. For more information, see UpdateThingShadow in the IoT Developer Guide.
@required {thingName: str, payload: bytes}
@optional {name: str}
@returns(200) {payload: bytes?}

@endgroup

@end
