{ "version":"2.0", "metadata":{ "apiVersion":"2015-05-28", "endpointPrefix":"data.iot", "protocol":"rest-json", "serviceFullName":"AWS IoT Data Plane", "serviceId":"IoT Data Plane", "signatureVersion":"v4", "signingName":"iotdata", "uid":"iot-data-2015-05-28" }, "operations":{ "DeleteThingShadow":{ "name":"DeleteThingShadow", "http":{ "method":"DELETE", "requestUri":"/things/{thingName}/shadow" }, "input":{"shape":"DeleteThingShadowRequest"}, "output":{"shape":"DeleteThingShadowResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"}, {"shape":"UnsupportedDocumentEncodingException"} ], "documentation":"
Deletes the shadow for the specified thing.
For more information, see DeleteThingShadow in the AWS IoT Developer Guide.
" }, "GetThingShadow":{ "name":"GetThingShadow", "http":{ "method":"GET", "requestUri":"/things/{thingName}/shadow" }, "input":{"shape":"GetThingShadowRequest"}, "output":{"shape":"GetThingShadowResponse"}, "errors":[ {"shape":"InvalidRequestException"}, {"shape":"ResourceNotFoundException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"}, {"shape":"UnsupportedDocumentEncodingException"} ], "documentation":"Gets the shadow for the specified thing.
For more information, see GetThingShadow in the AWS IoT Developer Guide.
" }, "ListNamedShadowsForThing":{ "name":"ListNamedShadowsForThing", "http":{ "method":"GET", "requestUri":"/api/things/shadow/ListNamedShadowsForThing/{thingName}" }, "input":{"shape":"ListNamedShadowsForThingRequest"}, "output":{"shape":"ListNamedShadowsForThingResponse"}, "errors":[ {"shape":"ResourceNotFoundException"}, {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"} ], "documentation":"Lists the shadows for the specified thing.
" }, "Publish":{ "name":"Publish", "http":{ "method":"POST", "requestUri":"/topics/{topic}" }, "input":{"shape":"PublishRequest"}, "errors":[ {"shape":"InternalFailureException"}, {"shape":"InvalidRequestException"}, {"shape":"UnauthorizedException"}, {"shape":"MethodNotAllowedException"} ], "documentation":"Publishes state information.
For more information, see HTTP Protocol in the AWS IoT Developer Guide.
" }, "UpdateThingShadow":{ "name":"UpdateThingShadow", "http":{ "method":"POST", "requestUri":"/things/{thingName}/shadow" }, "input":{"shape":"UpdateThingShadowRequest"}, "output":{"shape":"UpdateThingShadowResponse"}, "errors":[ {"shape":"ConflictException"}, {"shape":"RequestEntityTooLargeException"}, {"shape":"InvalidRequestException"}, {"shape":"ThrottlingException"}, {"shape":"UnauthorizedException"}, {"shape":"ServiceUnavailableException"}, {"shape":"InternalFailureException"}, {"shape":"MethodNotAllowedException"}, {"shape":"UnsupportedDocumentEncodingException"} ], "documentation":"Updates the shadow for the specified thing.
For more information, see UpdateThingShadow in the AWS IoT Developer Guide.
" } }, "shapes":{ "ConflictException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The specified version does not match the version of the document.
", "error":{"httpStatusCode":409}, "exception":true }, "DeleteThingShadowRequest":{ "type":"structure", "required":["thingName"], "members":{ "thingName":{ "shape":"ThingName", "documentation":"The name of the thing.
", "location":"uri", "locationName":"thingName" }, "shadowName":{ "shape":"ShadowName", "documentation":"The name of the shadow.
", "location":"querystring", "locationName":"name" } }, "documentation":"The input for the DeleteThingShadow operation.
" }, "DeleteThingShadowResponse":{ "type":"structure", "required":["payload"], "members":{ "payload":{ "shape":"JsonDocument", "documentation":"The state information, in JSON format.
" } }, "documentation":"The output from the DeleteThingShadow operation.
", "payload":"payload" }, "GetThingShadowRequest":{ "type":"structure", "required":["thingName"], "members":{ "thingName":{ "shape":"ThingName", "documentation":"The name of the thing.
", "location":"uri", "locationName":"thingName" }, "shadowName":{ "shape":"ShadowName", "documentation":"The name of the shadow.
", "location":"querystring", "locationName":"name" } }, "documentation":"The input for the GetThingShadow operation.
" }, "GetThingShadowResponse":{ "type":"structure", "members":{ "payload":{ "shape":"JsonDocument", "documentation":"The state information, in JSON format.
" } }, "documentation":"The output from the GetThingShadow operation.
", "payload":"payload" }, "InternalFailureException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"An unexpected error has occurred.
", "error":{"httpStatusCode":500}, "exception":true, "fault":true }, "InvalidRequestException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The request is not valid.
", "error":{"httpStatusCode":400}, "exception":true }, "JsonDocument":{"type":"blob"}, "ListNamedShadowsForThingRequest":{ "type":"structure", "required":["thingName"], "members":{ "thingName":{ "shape":"ThingName", "documentation":"The name of the thing.
", "location":"uri", "locationName":"thingName" }, "nextToken":{ "shape":"NextToken", "documentation":"The token to retrieve the next set of results.
", "location":"querystring", "locationName":"nextToken" }, "pageSize":{ "shape":"PageSize", "documentation":"The result page size.
", "location":"querystring", "locationName":"pageSize" } } }, "ListNamedShadowsForThingResponse":{ "type":"structure", "members":{ "results":{ "shape":"NamedShadowList", "documentation":"The list of shadows for the specified thing.
" }, "nextToken":{ "shape":"NextToken", "documentation":"The token for the next set of results, or null if there are no additional results.
" }, "timestamp":{ "shape":"Timestamp", "documentation":"The Epoch date and time the response was generated by AWS IoT.
" } } }, "MethodNotAllowedException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The specified combination of HTTP verb and URI is not supported.
", "error":{"httpStatusCode":405}, "exception":true }, "NamedShadowList":{ "type":"list", "member":{"shape":"ShadowName"} }, "NextToken":{"type":"string"}, "PageSize":{ "type":"integer", "max":100, "min":1 }, "Payload":{"type":"blob"}, "PublishRequest":{ "type":"structure", "required":["topic"], "members":{ "topic":{ "shape":"Topic", "documentation":"The name of the MQTT topic.
", "location":"uri", "locationName":"topic" }, "qos":{ "shape":"Qos", "documentation":"The Quality of Service (QoS) level.
", "location":"querystring", "locationName":"qos" }, "payload":{ "shape":"Payload", "documentation":"The state information, in JSON format.
" } }, "documentation":"The input for the Publish operation.
", "payload":"payload" }, "Qos":{ "type":"integer", "max":1, "min":0 }, "RequestEntityTooLargeException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The payload exceeds the maximum size allowed.
", "error":{"httpStatusCode":413}, "exception":true }, "ResourceNotFoundException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The specified resource does not exist.
", "error":{"httpStatusCode":404}, "exception":true }, "ServiceUnavailableException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The service is temporarily unavailable.
", "error":{"httpStatusCode":503}, "exception":true, "fault":true }, "ShadowName":{ "type":"string", "max":64, "min":1, "pattern":"[a-zA-Z0-9:_-]+" }, "ThingName":{ "type":"string", "max":128, "min":1, "pattern":"[a-zA-Z0-9:_-]+" }, "ThrottlingException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The rate exceeds the limit.
", "error":{"httpStatusCode":429}, "exception":true }, "Timestamp":{"type":"long"}, "Topic":{"type":"string"}, "UnauthorizedException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"You are not authorized to perform this operation.
", "error":{"httpStatusCode":401}, "exception":true }, "UnsupportedDocumentEncodingException":{ "type":"structure", "members":{ "message":{ "shape":"errorMessage", "documentation":"The message for the exception.
" } }, "documentation":"The document encoding is not supported.
", "error":{"httpStatusCode":415}, "exception":true }, "UpdateThingShadowRequest":{ "type":"structure", "required":[ "thingName", "payload" ], "members":{ "thingName":{ "shape":"ThingName", "documentation":"The name of the thing.
", "location":"uri", "locationName":"thingName" }, "shadowName":{ "shape":"ShadowName", "documentation":"The name of the shadow.
", "location":"querystring", "locationName":"name" }, "payload":{ "shape":"JsonDocument", "documentation":"The state information, in JSON format.
" } }, "documentation":"The input for the UpdateThingShadow operation.
", "payload":"payload" }, "UpdateThingShadowResponse":{ "type":"structure", "members":{ "payload":{ "shape":"JsonDocument", "documentation":"The state information, in JSON format.
" } }, "documentation":"The output from the UpdateThingShadow operation.
", "payload":"payload" }, "errorMessage":{"type":"string"} }, "documentation":"AWS IoT-Data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the AWS cloud. It implements a broker for applications and things to publish messages over HTTP (Publish) and retrieve, update, and delete shadows. A shadow is a persistent representation of your things and their state in the AWS cloud.
Find the endpoint address for actions in the AWS IoT data plane by running this CLI command:
aws iot describe-endpoint --endpoint-type iot:Data-ATS
The service name used by AWS Signature Version 4 to sign requests is: iotdevicegateway.
" }