{ "metadata": { "apiVersion": "2018-05-14", "endpointPrefix": "devices.iot1click", "signingName": "iot1click", "serviceFullName": "AWS IoT 1-Click Devices Service", "serviceId": "IoT 1Click Devices Service", "protocol": "rest-json", "jsonVersion": "1.1", "uid": "devices-2018-05-14", "signatureVersion": "v4" }, "operations": { "ClaimDevicesByClaimCode": { "name": "ClaimDevicesByClaimCode", "http": { "method": "PUT", "requestUri": "/claims/{claimCode}", "responseCode": 200 }, "input": { "shape": "ClaimDevicesByClaimCodeRequest" }, "output": { "shape": "ClaimDevicesByClaimCodeResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" }, { "shape": "ForbiddenException", "documentation": "

403 response

" } ], "documentation": "

Adds device(s) to your account (i.e., claim one or more devices) if and only if you\n received a claim code with the device(s).

" }, "DescribeDevice": { "name": "DescribeDevice", "http": { "method": "GET", "requestUri": "/devices/{deviceId}", "responseCode": 200 }, "input": { "shape": "DescribeDeviceRequest" }, "output": { "shape": "DescribeDeviceResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Given a device ID, returns a DescribeDeviceResponse object describing the\n details of the device.

" }, "FinalizeDeviceClaim": { "name": "FinalizeDeviceClaim", "http": { "method": "PUT", "requestUri": "/devices/{deviceId}/finalize-claim", "responseCode": 200 }, "input": { "shape": "FinalizeDeviceClaimRequest" }, "output": { "shape": "FinalizeDeviceClaimResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" }, { "shape": "PreconditionFailedException", "documentation": "

412 response

" }, { "shape": "ResourceConflictException", "documentation": "

409 response

" } ], "documentation": "

Given a device ID, finalizes the claim request for the associated device.

\n

Claiming a device consists of initiating a claim, then publishing a device event,\n and finalizing the claim. For a device of type button, a device event can\n be published by simply clicking the device.

\n
" }, "GetDeviceMethods": { "name": "GetDeviceMethods", "http": { "method": "GET", "requestUri": "/devices/{deviceId}/methods", "responseCode": 200 }, "input": { "shape": "GetDeviceMethodsRequest" }, "output": { "shape": "GetDeviceMethodsResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Given a device ID, returns the invokable methods associated with the device.

" }, "InitiateDeviceClaim": { "name": "InitiateDeviceClaim", "http": { "method": "PUT", "requestUri": "/devices/{deviceId}/initiate-claim", "responseCode": 200 }, "input": { "shape": "InitiateDeviceClaimRequest" }, "output": { "shape": "InitiateDeviceClaimResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" }, { "shape": "ResourceConflictException", "documentation": "

409 response

" } ], "documentation": "

Given a device ID, initiates a claim request for the associated device.

\n

Claiming a device consists of initiating a claim, then publishing a device event,\n and finalizing the claim. For a device of type button, a device event can\n be published by simply clicking the device.

\n
" }, "InvokeDeviceMethod": { "name": "InvokeDeviceMethod", "http": { "method": "POST", "requestUri": "/devices/{deviceId}/methods", "responseCode": 200 }, "input": { "shape": "InvokeDeviceMethodRequest" }, "output": { "shape": "InvokeDeviceMethodResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "PreconditionFailedException", "documentation": "

412 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" }, { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "RangeNotSatisfiableException", "documentation": "

416 response

" }, { "shape": "ResourceConflictException", "documentation": "

409 response

" } ], "documentation": "

Given a device ID, issues a request to invoke a named device method (with possible\n parameters). See the \"Example POST\" code snippet below.

" }, "ListDeviceEvents": { "name": "ListDeviceEvents", "http": { "method": "GET", "requestUri": "/devices/{deviceId}/events", "responseCode": 200 }, "input": { "shape": "ListDeviceEventsRequest" }, "output": { "shape": "ListDeviceEventsResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "RangeNotSatisfiableException", "documentation": "

416 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Using a device ID, returns a DeviceEventsResponse object containing an\n array of events for the device.

" }, "ListDevices": { "name": "ListDevices", "http": { "method": "GET", "requestUri": "/devices", "responseCode": 200 }, "input": { "shape": "ListDevicesRequest" }, "output": { "shape": "ListDevicesResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "RangeNotSatisfiableException", "documentation": "

416 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Lists the 1-Click compatible devices associated with your AWS account.

" }, "ListTagsForResource": { "name": "ListTagsForResource", "http": { "method": "GET", "requestUri": "/tags/{resource-arn}", "responseCode": 200 }, "input": { "shape": "ListTagsForResourceRequest" }, "output": { "shape": "ListTagsForResourceResponse" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Lists the tags associated with the specified resource ARN.

" }, "TagResource": { "name": "TagResource", "http": { "method": "POST", "requestUri": "/tags/{resource-arn}", "responseCode": 204 }, "input": { "shape": "TagResourceRequest" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Adds or updates the tags associated with the resource ARN. See AWS IoT 1-Click Service Limits for the maximum number of tags allowed per\n resource.

" }, "UnclaimDevice": { "name": "UnclaimDevice", "http": { "method": "PUT", "requestUri": "/devices/{deviceId}/unclaim", "responseCode": 200 }, "input": { "shape": "UnclaimDeviceRequest" }, "output": { "shape": "UnclaimDeviceResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Disassociates a device from your AWS account using its device ID.

" }, "UntagResource": { "name": "UntagResource", "http": { "method": "DELETE", "requestUri": "/tags/{resource-arn}", "responseCode": 204 }, "input": { "shape": "UntagResourceRequest" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Using tag keys, deletes the tags (key/value pairs) associated with the specified\n resource ARN.

" }, "UpdateDeviceState": { "name": "UpdateDeviceState", "http": { "method": "PUT", "requestUri": "/devices/{deviceId}/state", "responseCode": 200 }, "input": { "shape": "UpdateDeviceStateRequest" }, "output": { "shape": "UpdateDeviceStateResponse", "documentation": "

200 response

" }, "errors": [ { "shape": "ResourceNotFoundException", "documentation": "

404 response

" }, { "shape": "InvalidRequestException", "documentation": "

400 response

" }, { "shape": "InternalFailureException", "documentation": "

500 response

" } ], "documentation": "

Using a Boolean value (true or false), this operation\n enables or disables the device given a device ID.

" } }, "shapes": { "Attributes": { "type": "structure", "members": {} }, "ClaimDevicesByClaimCodeRequest": { "type": "structure", "members": { "ClaimCode": { "shape": "__string", "location": "uri", "locationName": "claimCode", "documentation": "

The claim code, starting with \"C-\", as provided by the device manufacturer.

" } }, "required": [ "ClaimCode" ] }, "ClaimDevicesByClaimCodeResponse": { "type": "structure", "members": { "ClaimCode": { "shape": "__stringMin12Max40", "locationName": "claimCode", "documentation": "

The claim code provided by the device manufacturer.

" }, "Total": { "shape": "__integer", "locationName": "total", "documentation": "

The total number of devices associated with the claim code that has been processed in\n the claim request.

" } } }, "DescribeDeviceRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" } }, "required": [ "DeviceId" ] }, "DescribeDeviceResponse": { "type": "structure", "members": { "DeviceDescription": { "shape": "DeviceDescription", "locationName": "deviceDescription", "documentation": "

Device details.

" } } }, "Device": { "type": "structure", "members": { "Attributes": { "shape": "Attributes", "locationName": "attributes", "documentation": "

The user specified attributes associated with the device for an event.

" }, "DeviceId": { "shape": "__string", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "Type": { "shape": "__string", "locationName": "type", "documentation": "

The device type, such as \"button\".

" } } }, "DeviceAttributes": { "type": "map", "documentation": "

\n DeviceAttributes is a string-to-string map specified by the user.

", "key": { "shape": "__string" }, "value": { "shape": "__string" } }, "DeviceDescription": { "type": "structure", "members": { "Arn": { "shape": "__string", "locationName": "arn", "documentation": "

The ARN of the device.

" }, "Attributes": { "shape": "DeviceAttributes", "locationName": "attributes", "documentation": "

An array of zero or more elements of DeviceAttribute objects providing\n user specified device attributes.

" }, "DeviceId": { "shape": "__string", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "Enabled": { "shape": "__boolean", "locationName": "enabled", "documentation": "

A Boolean value indicating whether or not the device is enabled.

" }, "RemainingLife": { "shape": "__doubleMin0Max100", "locationName": "remainingLife", "documentation": "

A value between 0 and 1 inclusive, representing the fraction of life remaining for the\n device.

" }, "Type": { "shape": "__string", "locationName": "type", "documentation": "

The type of the device, such as \"button\".

" }, "Tags": { "shape": "__mapOf__string", "locationName": "tags", "documentation": "

The tags currently associated with the AWS IoT 1-Click device.

" } } }, "DeviceEvent": { "type": "structure", "members": { "Device": { "shape": "Device", "locationName": "device", "documentation": "

An object representing the device associated with the event.

" }, "StdEvent": { "shape": "__string", "locationName": "stdEvent", "documentation": "

A serialized JSON object representing the device-type specific event.

" } } }, "DeviceMethod": { "type": "structure", "members": { "DeviceType": { "shape": "__string", "locationName": "deviceType", "documentation": "

The type of the device, such as \"button\".

" }, "MethodName": { "shape": "__string", "locationName": "methodName", "documentation": "

The name of the method applicable to the deviceType.

" } } }, "FinalizeDeviceClaimRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "Tags": { "shape": "__mapOf__string", "locationName": "tags", "documentation": "

A collection of key/value pairs defining the resource tags. For example, {\n \"tags\": {\"key1\": \"value1\", \"key2\": \"value2\"} }. For more information, see AWS\n Tagging Strategies.

\n \n

" } }, "required": [ "DeviceId" ] }, "FinalizeDeviceClaimResponse": { "type": "structure", "members": { "State": { "shape": "__string", "locationName": "state", "documentation": "

The device's final claim state.

" } } }, "GetDeviceMethodsRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" } }, "required": [ "DeviceId" ] }, "GetDeviceMethodsResponse": { "type": "structure", "members": { "DeviceMethods": { "shape": "__listOfDeviceMethod", "locationName": "deviceMethods", "documentation": "

List of available device APIs.

" } } }, "InitiateDeviceClaimRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" } }, "required": [ "DeviceId" ] }, "InitiateDeviceClaimResponse": { "type": "structure", "members": { "State": { "shape": "__string", "locationName": "state", "documentation": "

The device's final claim state.

" } } }, "InvokeDeviceMethodRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "DeviceMethod": { "shape": "DeviceMethod", "locationName": "deviceMethod", "documentation": "

The device method to invoke.

" }, "DeviceMethodParameters": { "shape": "__string", "locationName": "deviceMethodParameters", "documentation": "

A JSON encoded string containing the device method request parameters.

" } }, "required": [ "DeviceId" ] }, "InvokeDeviceMethodResponse": { "type": "structure", "members": { "DeviceMethodResponse": { "shape": "__string", "locationName": "deviceMethodResponse", "documentation": "

A JSON encoded string containing the device method response.

" } } }, "ListDeviceEventsRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "FromTimeStamp": { "shape": "__timestampIso8601", "location": "querystring", "locationName": "fromTimeStamp", "documentation": "

The start date for the device event query, in ISO8061 format. For example,\n 2018-03-28T15:45:12.880Z\n

" }, "MaxResults": { "shape": "MaxResults", "location": "querystring", "locationName": "maxResults", "documentation": "

The maximum number of results to return per request. If not set, a default value of\n 100 is used.

" }, "NextToken": { "shape": "__string", "location": "querystring", "locationName": "nextToken", "documentation": "

The token to retrieve the next set of results.

" }, "ToTimeStamp": { "shape": "__timestampIso8601", "location": "querystring", "locationName": "toTimeStamp", "documentation": "

The end date for the device event query, in ISO8061 format. For example,\n 2018-03-28T15:45:12.880Z\n

" } }, "required": [ "DeviceId", "FromTimeStamp", "ToTimeStamp" ] }, "ListDeviceEventsResponse": { "type": "structure", "members": { "Events": { "shape": "__listOfDeviceEvent", "locationName": "events", "documentation": "

An array of zero or more elements describing the event(s) associated with the\n device.

" }, "NextToken": { "shape": "__string", "locationName": "nextToken", "documentation": "

The token to retrieve the next set of results.

" } } }, "ListDevicesRequest": { "type": "structure", "members": { "DeviceType": { "shape": "__string", "location": "querystring", "locationName": "deviceType", "documentation": "

The type of the device, such as \"button\".

" }, "MaxResults": { "shape": "MaxResults", "location": "querystring", "locationName": "maxResults", "documentation": "

The maximum number of results to return per request. If not set, a default value of\n 100 is used.

" }, "NextToken": { "shape": "__string", "location": "querystring", "locationName": "nextToken", "documentation": "

The token to retrieve the next set of results.

" } } }, "ListDevicesResponse": { "type": "structure", "members": { "Devices": { "shape": "__listOfDeviceDescription", "locationName": "devices", "documentation": "

A list of devices.

" }, "NextToken": { "shape": "__string", "locationName": "nextToken", "documentation": "

The token to retrieve the next set of results.

" } } }, "ListTagsForResourceRequest": { "type": "structure", "members": { "ResourceArn": { "shape": "__string", "location": "uri", "locationName": "resource-arn", "documentation": "

The ARN of the resource.

" } }, "required": [ "ResourceArn" ] }, "ListTagsForResourceResponse": { "type": "structure", "members": { "Tags": { "shape": "__mapOf__string", "locationName": "tags", "documentation": "

A collection of key/value pairs defining the resource tags. For example, {\n \"tags\": {\"key1\": \"value1\", \"key2\": \"value2\"} }. For more information, see AWS\n Tagging Strategies.

\n \n

" } } }, "MaxResults": { "type": "integer", "min": 1, "max": 250 }, "TagResourceRequest": { "type": "structure", "members": { "ResourceArn": { "shape": "__string", "location": "uri", "locationName": "resource-arn", "documentation": "

The ARN of the resource.

" }, "Tags": { "shape": "__mapOf__string", "locationName": "tags", "documentation": "

A collection of key/value pairs defining the resource tags. For example, {\n \"tags\": {\"key1\": \"value1\", \"key2\": \"value2\"} }. For more information, see AWS\n Tagging Strategies.

\n \n

" } }, "required": [ "ResourceArn", "Tags" ] }, "UnclaimDeviceRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" } }, "required": [ "DeviceId" ] }, "UnclaimDeviceResponse": { "type": "structure", "members": { "State": { "shape": "__string", "locationName": "state", "documentation": "

The device's final claim state.

" } } }, "UntagResourceRequest": { "type": "structure", "members": { "ResourceArn": { "shape": "__string", "location": "uri", "locationName": "resource-arn", "documentation": "

The ARN of the resource.

" }, "TagKeys": { "shape": "__listOf__string", "location": "querystring", "locationName": "tagKeys", "documentation": "

A collections of tag keys. For example, {\"key1\",\"key2\"}

" } }, "required": [ "TagKeys", "ResourceArn" ] }, "UpdateDeviceStateRequest": { "type": "structure", "members": { "DeviceId": { "shape": "__string", "location": "uri", "locationName": "deviceId", "documentation": "

The unique identifier of the device.

" }, "Enabled": { "shape": "__boolean", "locationName": "enabled", "documentation": "

If true, the device is enabled. If false, the device is\n disabled.

" } }, "required": [ "DeviceId" ] }, "UpdateDeviceStateResponse": { "type": "structure", "members": {} }, "__boolean": { "type": "boolean" }, "__doubleMin0Max100": { "type": "double" }, "__integer": { "type": "integer" }, "__listOfDeviceDescription": { "type": "list", "member": { "shape": "DeviceDescription" } }, "__listOfDeviceEvent": { "type": "list", "member": { "shape": "DeviceEvent" } }, "__listOfDeviceMethod": { "type": "list", "member": { "shape": "DeviceMethod" } }, "__listOf__string": { "type": "list", "member": { "shape": "__string" } }, "__mapOf__string": { "type": "map", "key": { "shape": "__string" }, "value": { "shape": "__string" } }, "__string": { "type": "string" }, "__stringMin12Max40": { "type": "string", "min": 12, "max": 40 }, "__timestampIso8601": { "type": "timestamp", "timestampFormat": "iso8601" } }, "documentation": "

Describes all of the AWS IoT 1-Click device-related API operations for the service.\n Also provides sample requests, responses, and errors for the supported web services\n protocols.

" }