Skip to content

Commit

Permalink
IoT Data Model Updates (#4073)
Browse files Browse the repository at this point in the history
* Updated Model Files
* Regenerated Client
* Add CHANGELOG_PENDING.md entry
  • Loading branch information
skmcgrail committed Aug 24, 2021
1 parent ddbcb5b commit cff3c38
Show file tree
Hide file tree
Showing 7 changed files with 744 additions and 30 deletions.
1 change: 1 addition & 0 deletions CHANGELOG_PENDING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
### SDK Features

### SDK Enhancements
* `service/iotdataplane`: Updated Publish with support for new Retain flag and added two new API operations: GetRetainedMessage, ListRetainedMessages.

### SDK Bugs
102 changes: 102 additions & 0 deletions models/apis/iot-data/2015-05-28/api-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@
{"shape":"UnsupportedDocumentEncodingException"}
]
},
"GetRetainedMessage":{
"name":"GetRetainedMessage",
"http":{
"method":"GET",
"requestUri":"/retainedMessage/{topic}"
},
"input":{"shape":"GetRetainedMessageRequest"},
"output":{"shape":"GetRetainedMessageResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"ResourceNotFoundException"},
{"shape":"ThrottlingException"},
{"shape":"UnauthorizedException"},
{"shape":"ServiceUnavailableException"},
{"shape":"InternalFailureException"},
{"shape":"MethodNotAllowedException"}
]
},
"GetThingShadow":{
"name":"GetThingShadow",
"http":{
Expand Down Expand Up @@ -67,6 +85,23 @@
{"shape":"MethodNotAllowedException"}
]
},
"ListRetainedMessages":{
"name":"ListRetainedMessages",
"http":{
"method":"GET",
"requestUri":"/retainedMessage"
},
"input":{"shape":"ListRetainedMessagesRequest"},
"output":{"shape":"ListRetainedMessagesResponse"},
"errors":[
{"shape":"InvalidRequestException"},
{"shape":"ThrottlingException"},
{"shape":"UnauthorizedException"},
{"shape":"ServiceUnavailableException"},
{"shape":"InternalFailureException"},
{"shape":"MethodNotAllowedException"}
]
},
"Publish":{
"name":"Publish",
"http":{
Expand Down Expand Up @@ -135,6 +170,26 @@
},
"payload":"payload"
},
"GetRetainedMessageRequest":{
"type":"structure",
"required":["topic"],
"members":{
"topic":{
"shape":"Topic",
"location":"uri",
"locationName":"topic"
}
}
},
"GetRetainedMessageResponse":{
"type":"structure",
"members":{
"topic":{"shape":"Topic"},
"payload":{"shape":"Payload"},
"qos":{"shape":"Qos"},
"lastModifiedTime":{"shape":"Timestamp"}
}
},
"GetThingShadowRequest":{
"type":"structure",
"required":["thingName"],
Expand Down Expand Up @@ -205,6 +260,33 @@
"timestamp":{"shape":"Timestamp"}
}
},
"ListRetainedMessagesRequest":{
"type":"structure",
"members":{
"nextToken":{
"shape":"NextToken",
"location":"querystring",
"locationName":"nextToken"
},
"maxResults":{
"shape":"MaxResults",
"location":"querystring",
"locationName":"maxResults"
}
}
},
"ListRetainedMessagesResponse":{
"type":"structure",
"members":{
"retainedTopics":{"shape":"RetainedMessageList"},
"nextToken":{"shape":"NextToken"}
}
},
"MaxResults":{
"type":"integer",
"max":200,
"min":1
},
"MethodNotAllowedException":{
"type":"structure",
"members":{
Expand All @@ -224,6 +306,7 @@
"min":1
},
"Payload":{"type":"blob"},
"PayloadSize":{"type":"long"},
"PublishRequest":{
"type":"structure",
"required":["topic"],
Expand All @@ -238,6 +321,11 @@
"location":"querystring",
"locationName":"qos"
},
"retain":{
"shape":"Retain",
"location":"querystring",
"locationName":"retain"
},
"payload":{"shape":"Payload"}
},
"payload":"payload"
Expand All @@ -263,6 +351,20 @@
"error":{"httpStatusCode":404},
"exception":true
},
"Retain":{"type":"boolean"},
"RetainedMessageList":{
"type":"list",
"member":{"shape":"RetainedMessageSummary"}
},
"RetainedMessageSummary":{
"type":"structure",
"members":{
"topic":{"shape":"Topic"},
"payloadSize":{"shape":"PayloadSize"},
"qos":{"shape":"Qos"},
"lastModifiedTime":{"shape":"Timestamp"}
}
},
"ServiceUnavailableException":{
"type":"structure",
"members":{
Expand Down
84 changes: 73 additions & 11 deletions models/apis/iot-data/2015-05-28/docs-2.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
{
"version": "2.0",
"service": "<fullname>AWS IoT</fullname> <p>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.</p> <p>Find the endpoint address for actions in the AWS IoT data plane by running this CLI command:</p> <p> <code>aws iot describe-endpoint --endpoint-type iot:Data-ATS</code> </p> <p>The service name used by <a href=\"https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\">AWS Signature Version 4</a> to sign requests is: <i>iotdevicegateway</i>.</p>",
"service": "<fullname>IoT data</fullname> <p>IoT data enables secure, bi-directional communication between Internet-connected things (such as sensors, actuators, embedded devices, or smart appliances) and the Amazon Web Services 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 Amazon Web Services cloud.</p> <p>Find the endpoint address for actions in IoT data by running this CLI command:</p> <p> <code>aws iot describe-endpoint --endpoint-type iot:Data-ATS</code> </p> <p>The service name used by <a href=\"https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html\">Amazon Web ServicesSignature Version 4</a> to sign requests is: <i>iotdevicegateway</i>.</p>",
"operations": {
"DeleteThingShadow": "<p>Deletes the shadow for the specified thing.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html\">DeleteThingShadow</a> in the AWS IoT Developer Guide.</p>",
"GetThingShadow": "<p>Gets the shadow for the specified thing.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html\">GetThingShadow</a> in the AWS IoT Developer Guide.</p>",
"ListNamedShadowsForThing": "<p>Lists the shadows for the specified thing.</p>",
"Publish": "<p>Publishes state information.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http\">HTTP Protocol</a> in the AWS IoT Developer Guide.</p>",
"UpdateThingShadow": "<p>Updates the shadow for the specified thing.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html\">UpdateThingShadow</a> in the AWS IoT Developer Guide.</p>"
"DeleteThingShadow": "<p>Deletes the shadow for the specified thing.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">DeleteThingShadow</a> action.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html\">DeleteThingShadow</a> in the IoT Developer Guide.</p>",
"GetRetainedMessage": "<p>Gets the details of a single retained message for the specified topic.</p> <p>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 <a href=\"/iot/latest/developerguide/API_iotdata_ListRetainedMessages.html\">ListRetainedMessages</a>.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleethubfordevicemanagement.html#awsiotfleethubfordevicemanagement-actions-as-permissions\">GetRetainedMessage</a> action.</p> <p>For more information about messaging costs, see <a href=\"http:https://aws.amazon.com/iot-core/pricing/#Messaging\">IoT Core pricing - Messaging</a>.</p>",
"GetThingShadow": "<p>Gets the shadow for the specified thing.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">GetThingShadow</a> action.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html\">GetThingShadow</a> in the IoT Developer Guide.</p>",
"ListNamedShadowsForThing": "<p>Lists the shadows for the specified thing.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">ListNamedShadowsForThing</a> action.</p>",
"ListRetainedMessages": "<p>Lists summary information about the retained messages stored for the account.</p> <p>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.</p> <p>To get the message payload of a retained message, call <a href=\"https://docs.aws.amazon.com/iot/latest/developerguide/API_iotdata_GetRetainedMessage.html\">GetRetainedMessage</a> with the topic name of the retained message.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotfleethubfordevicemanagement.html#awsiotfleethubfordevicemanagement-actions-as-permissions\">ListRetainedMessages</a> action.</p> <p>For more information about messaging costs, see <a href=\"http:https://aws.amazon.com/iot-core/pricing/#Messaging\">IoT Core pricing - Messaging</a>.</p>",
"Publish": "<p>Publishes an MQTT message.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">Publish</a> action.</p> <p>For more information about MQTT messages, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html\">MQTT Protocol</a> in the IoT Developer Guide.</p> <p>For more information about messaging costs, see <a href=\"http:https://aws.amazon.com/iot-core/pricing/#Messaging\">IoT Core pricing - Messaging</a>.</p>",
"UpdateThingShadow": "<p>Updates the shadow for the specified thing.</p> <p>Requires permission to access the <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions\">UpdateThingShadow</a> action.</p> <p>For more information, see <a href=\"http:https://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html\">UpdateThingShadow</a> in the IoT Developer Guide.</p>"
},
"shapes": {
"ConflictException": {
Expand All @@ -24,6 +26,16 @@
"refs": {
}
},
"GetRetainedMessageRequest": {
"base": "<p>The input for the GetRetainedMessage operation.</p>",
"refs": {
}
},
"GetRetainedMessageResponse": {
"base": "<p>The output from the GetRetainedMessage operation.</p>",
"refs": {
}
},
"GetThingShadowRequest": {
"base": "<p>The input for the GetThingShadow operation.</p>",
"refs": {
Expand Down Expand Up @@ -63,6 +75,22 @@
"refs": {
}
},
"ListRetainedMessagesRequest": {
"base": null,
"refs": {
}
},
"ListRetainedMessagesResponse": {
"base": null,
"refs": {
}
},
"MaxResults": {
"base": null,
"refs": {
"ListRetainedMessagesRequest$maxResults": "<p>The maximum number of results to return at one time.</p>"
}
},
"MethodNotAllowedException": {
"base": "<p>The specified combination of HTTP verb and URI is not supported.</p>",
"refs": {
Expand All @@ -78,7 +106,9 @@
"base": null,
"refs": {
"ListNamedShadowsForThingRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
"ListNamedShadowsForThingResponse$nextToken": "<p>The token for the next set of results, or null if there are no additional results.</p>"
"ListNamedShadowsForThingResponse$nextToken": "<p>The token to use to get the next set of results, or <b>null</b> if there are no additional results.</p>",
"ListRetainedMessagesRequest$nextToken": "<p>To retrieve the next set of results, the <code>nextToken</code> value from a previous response; otherwise <b>null</b> to receive the first set of results.</p>",
"ListRetainedMessagesResponse$nextToken": "<p>The token for the next set of results, or null if there are no additional results.</p>"
}
},
"PageSize": {
Expand All @@ -90,7 +120,14 @@
"Payload": {
"base": null,
"refs": {
"PublishRequest$payload": "<p>The state information, in JSON format.</p>"
"GetRetainedMessageResponse$payload": "<p>The Base64-encoded message payload of the retained message body.</p>",
"PublishRequest$payload": "<p>The message body. MQTT accepts text, binary, and empty (null) message payloads.</p> <p>Publishing an empty (null) payload with <b>retain</b> = <code>true</code> deletes the retained message identified by <b>topic</b> from IoT Core.</p>"
}
},
"PayloadSize": {
"base": null,
"refs": {
"RetainedMessageSummary$payloadSize": "<p>The size of the retained message's payload in bytes.</p>"
}
},
"PublishRequest": {
Expand All @@ -101,7 +138,9 @@
"Qos": {
"base": null,
"refs": {
"PublishRequest$qos": "<p>The Quality of Service (QoS) level.</p>"
"GetRetainedMessageResponse$qos": "<p>The quality of service (QoS) level used to publish the retained message.</p>",
"PublishRequest$qos": "<p>The Quality of Service (QoS) level.</p>",
"RetainedMessageSummary$qos": "<p>The quality of service (QoS) level used to publish the retained message.</p>"
}
},
"RequestEntityTooLargeException": {
Expand All @@ -114,6 +153,24 @@
"refs": {
}
},
"Retain": {
"base": null,
"refs": {
"PublishRequest$retain": "<p>A Boolean value that determines whether to set the RETAIN flag when the message is published.</p> <p>Setting the RETAIN flag causes the message to be retained and sent to new subscribers to the topic.</p> <p>Valid values: <code>true</code> | <code>false</code> </p> <p>Default value: <code>false</code> </p>"
}
},
"RetainedMessageList": {
"base": null,
"refs": {
"ListRetainedMessagesResponse$retainedTopics": "<p>A summary list the account's retained messages. The information returned doesn't include the message payloads of the retained messages.</p>"
}
},
"RetainedMessageSummary": {
"base": "<p>Information about a single retained message.</p>",
"refs": {
"RetainedMessageList$member": null
}
},
"ServiceUnavailableException": {
"base": "<p>The service is temporarily unavailable.</p>",
"refs": {
Expand Down Expand Up @@ -145,13 +202,18 @@
"Timestamp": {
"base": null,
"refs": {
"ListNamedShadowsForThingResponse$timestamp": "<p>The Epoch date and time the response was generated by AWS IoT.</p>"
"GetRetainedMessageResponse$lastModifiedTime": "<p>The Epoch date and time, in milliseconds, when the retained message was stored by IoT.</p>",
"ListNamedShadowsForThingResponse$timestamp": "<p>The Epoch date and time the response was generated by IoT.</p>",
"RetainedMessageSummary$lastModifiedTime": "<p>The Epoch date and time, in milliseconds, when the retained message was stored by IoT.</p>"
}
},
"Topic": {
"base": null,
"refs": {
"PublishRequest$topic": "<p>The name of the MQTT topic.</p>"
"GetRetainedMessageRequest$topic": "<p>The topic name of the retained message to retrieve.</p>",
"GetRetainedMessageResponse$topic": "<p>The topic name to which the retained message was published.</p>",
"PublishRequest$topic": "<p>The name of the MQTT topic.</p>",
"RetainedMessageSummary$topic": "<p>The topic name to which the retained message was published.</p>"
}
},
"UnauthorizedException": {
Expand Down
8 changes: 7 additions & 1 deletion models/apis/iot-data/2015-05-28/paginators-1.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
{
"pagination": {
"ListRetainedMessages": {
"input_token": "nextToken",
"limit_key": "maxResults",
"output_token": "nextToken",
"result_key": "retainedTopics"
}
}
}
}
Loading

0 comments on commit cff3c38

Please sign in to comment.