diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 8a1927a39ca..739ea17b3dc 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,4 +1,5 @@ ### SDK Features +* `service/iotdataplane`: As part of this release, we are introducing a new feature called named shadow, which extends the capability of AWS IoT Device Shadow to support multiple shadows for a single IoT device. With this release, customers can store different device state data into different shadows, and as a result access only the required state data when needed and reduce individual shadow size. ### SDK Enhancements diff --git a/models/apis/iot-data/2015-05-28/api-2.json b/models/apis/iot-data/2015-05-28/api-2.json index 3d4bd1e56fe..f0401262563 100644 --- a/models/apis/iot-data/2015-05-28/api-2.json +++ b/models/apis/iot-data/2015-05-28/api-2.json @@ -1,13 +1,14 @@ { "version":"2.0", "metadata":{ - "uid":"iot-data-2015-05-28", "apiVersion":"2015-05-28", "endpointPrefix":"data.iot", "protocol":"rest-json", "serviceFullName":"AWS IoT Data Plane", + "serviceId":"IoT Data Plane", "signatureVersion":"v4", - "signingName":"iotdata" + "signingName":"iotdata", + "uid":"iot-data-2015-05-28" }, "operations":{ "DeleteThingShadow":{ @@ -48,6 +49,24 @@ {"shape":"UnsupportedDocumentEncodingException"} ] }, + "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"} + ] + }, "Publish":{ "name":"Publish", "http":{ @@ -87,7 +106,7 @@ "ConflictException":{ "type":"structure", "members":{ - "message":{"shape":"ErrorMessage"} + "message":{"shape":"errorMessage"} }, "error":{"httpStatusCode":409}, "exception":true @@ -100,6 +119,11 @@ "shape":"ThingName", "location":"uri", "locationName":"thingName" + }, + "shadowName":{ + "shape":"ShadowName", + "location":"querystring", + "locationName":"name" } } }, @@ -111,7 +135,6 @@ }, "payload":"payload" }, - "ErrorMessage":{"type":"string"}, "GetThingShadowRequest":{ "type":"structure", "required":["thingName"], @@ -120,6 +143,11 @@ "shape":"ThingName", "location":"uri", "locationName":"thingName" + }, + "shadowName":{ + "shape":"ShadowName", + "location":"querystring", + "locationName":"name" } } }, @@ -148,14 +176,53 @@ "exception":true }, "JsonDocument":{"type":"blob"}, + "ListNamedShadowsForThingRequest":{ + "type":"structure", + "required":["thingName"], + "members":{ + "thingName":{ + "shape":"ThingName", + "location":"uri", + "locationName":"thingName" + }, + "nextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "pageSize":{ + "shape":"PageSize", + "location":"querystring", + "locationName":"pageSize" + } + } + }, + "ListNamedShadowsForThingResponse":{ + "type":"structure", + "members":{ + "results":{"shape":"NamedShadowList"}, + "nextToken":{"shape":"NextToken"}, + "timestamp":{"shape":"Timestamp"} + } + }, "MethodNotAllowedException":{ "type":"structure", "members":{ - "message":{"shape":"ErrorMessage"} + "message":{"shape":"errorMessage"} }, "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", @@ -183,7 +250,7 @@ "RequestEntityTooLargeException":{ "type":"structure", "members":{ - "message":{"shape":"ErrorMessage"} + "message":{"shape":"errorMessage"} }, "error":{"httpStatusCode":413}, "exception":true @@ -205,11 +272,17 @@ "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_-]+" + "pattern":"[a-zA-Z0-9:_-]+" }, "ThrottlingException":{ "type":"structure", @@ -219,6 +292,7 @@ "error":{"httpStatusCode":429}, "exception":true }, + "Timestamp":{"type":"long"}, "Topic":{"type":"string"}, "UnauthorizedException":{ "type":"structure", @@ -248,6 +322,11 @@ "location":"uri", "locationName":"thingName" }, + "shadowName":{ + "shape":"ShadowName", + "location":"querystring", + "locationName":"name" + }, "payload":{"shape":"JsonDocument"} }, "payload":"payload" diff --git a/models/apis/iot-data/2015-05-28/docs-2.json b/models/apis/iot-data/2015-05-28/docs-2.json index 09e16dbd7ac..6a158698410 100644 --- a/models/apis/iot-data/2015-05-28/docs-2.json +++ b/models/apis/iot-data/2015-05-28/docs-2.json @@ -1,11 +1,12 @@ { "version": "2.0", - "service": "AWS IoT

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 thing shadows. A thing shadow is a persistent representation of your things and their state in the AWS cloud.

", + "service": "AWS IoT

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.

", "operations": { - "DeleteThingShadow": "

Deletes the thing shadow for the specified thing.

For more information, see DeleteThingShadow in the AWS IoT Developer Guide.

", - "GetThingShadow": "

Gets the thing shadow for the specified thing.

For more information, see GetThingShadow in the AWS IoT Developer Guide.

", - "Publish": "

Publishes state information.

For more information, see HTTP Protocol in the AWS IoT Developer Guide.

", - "UpdateThingShadow": "

Updates the thing shadow for the specified thing.

For more information, see UpdateThingShadow in the AWS IoT Developer Guide.

" + "DeleteThingShadow": "

Deletes the shadow for the specified thing.

For more information, see DeleteThingShadow in the AWS IoT Developer Guide.

", + "GetThingShadow": "

Gets the shadow for the specified thing.

For more information, see GetThingShadow in the AWS IoT Developer Guide.

", + "ListNamedShadowsForThing": "

Lists the shadows for the specified thing.

", + "Publish": "

Publishes state information.

For more information, see HTTP Protocol in the AWS IoT Developer Guide.

", + "UpdateThingShadow": "

Updates the shadow for the specified thing.

For more information, see UpdateThingShadow in the AWS IoT Developer Guide.

" }, "shapes": { "ConflictException": { @@ -23,14 +24,6 @@ "refs": { } }, - "ErrorMessage": { - "base": null, - "refs": { - "ConflictException$message": "

The message for the exception.

", - "MethodNotAllowedException$message": "

The message for the exception.

", - "RequestEntityTooLargeException$message": "

The message for the exception.

" - } - }, "GetThingShadowRequest": { "base": "

The input for the GetThingShadow operation.

", "refs": { @@ -60,11 +53,40 @@ "UpdateThingShadowResponse$payload": "

The state information, in JSON format.

" } }, + "ListNamedShadowsForThingRequest": { + "base": null, + "refs": { + } + }, + "ListNamedShadowsForThingResponse": { + "base": null, + "refs": { + } + }, "MethodNotAllowedException": { "base": "

The specified combination of HTTP verb and URI is not supported.

", "refs": { } }, + "NamedShadowList": { + "base": null, + "refs": { + "ListNamedShadowsForThingResponse$results": "

The list of shadows for the specified thing.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListNamedShadowsForThingRequest$nextToken": "

The token to retrieve the next set of results.

", + "ListNamedShadowsForThingResponse$nextToken": "

The token for the next set of results, or null if there are no additional results.

" + } + }, + "PageSize": { + "base": null, + "refs": { + "ListNamedShadowsForThingRequest$pageSize": "

The result page size.

" + } + }, "Payload": { "base": null, "refs": { @@ -97,11 +119,21 @@ "refs": { } }, + "ShadowName": { + "base": null, + "refs": { + "DeleteThingShadowRequest$shadowName": "

The name of the shadow.

", + "GetThingShadowRequest$shadowName": "

The name of the shadow.

", + "NamedShadowList$member": null, + "UpdateThingShadowRequest$shadowName": "

The name of the shadow.

" + } + }, "ThingName": { "base": null, "refs": { "DeleteThingShadowRequest$thingName": "

The name of the thing.

", "GetThingShadowRequest$thingName": "

The name of the thing.

", + "ListNamedShadowsForThingRequest$thingName": "

The name of the thing.

", "UpdateThingShadowRequest$thingName": "

The name of the thing.

" } }, @@ -110,6 +142,12 @@ "refs": { } }, + "Timestamp": { + "base": null, + "refs": { + "ListNamedShadowsForThingResponse$timestamp": "

The Epoch date and time the response was generated by AWS IoT.

" + } + }, "Topic": { "base": null, "refs": { @@ -139,8 +177,11 @@ "errorMessage": { "base": null, "refs": { + "ConflictException$message": "

The message for the exception.

", "InternalFailureException$message": "

The message for the exception.

", "InvalidRequestException$message": "

The message for the exception.

", + "MethodNotAllowedException$message": "

The message for the exception.

", + "RequestEntityTooLargeException$message": "

The message for the exception.

", "ResourceNotFoundException$message": "

The message for the exception.

", "ServiceUnavailableException$message": "

The message for the exception.

", "ThrottlingException$message": "

The message for the exception.

", diff --git a/models/apis/iot-data/2015-05-28/paginators-1.json b/models/apis/iot-data/2015-05-28/paginators-1.json new file mode 100644 index 00000000000..5677bd8e4a2 --- /dev/null +++ b/models/apis/iot-data/2015-05-28/paginators-1.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/service/iotdataplane/api.go b/service/iotdataplane/api.go index 5cb393c59b3..21c55e968f6 100644 --- a/service/iotdataplane/api.go +++ b/service/iotdataplane/api.go @@ -54,7 +54,7 @@ func (c *IoTDataPlane) DeleteThingShadowRequest(input *DeleteThingShadowInput) ( // DeleteThingShadow API operation for AWS IoT Data Plane. // -// Deletes the thing shadow for the specified thing. +// Deletes the shadow for the specified thing. // // For more information, see DeleteThingShadow (http://docs.aws.amazon.com/iot/latest/developerguide/API_DeleteThingShadow.html) // in the AWS IoT Developer Guide. @@ -154,7 +154,7 @@ func (c *IoTDataPlane) GetThingShadowRequest(input *GetThingShadowInput) (req *r // GetThingShadow API operation for AWS IoT Data Plane. // -// Gets the thing shadow for the specified thing. +// Gets the shadow for the specified thing. // // For more information, see GetThingShadow (http://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html) // in the AWS IoT Developer Guide. @@ -212,6 +212,100 @@ func (c *IoTDataPlane) GetThingShadowWithContext(ctx aws.Context, input *GetThin return out, req.Send() } +const opListNamedShadowsForThing = "ListNamedShadowsForThing" + +// ListNamedShadowsForThingRequest generates a "aws/request.Request" representing the +// client's request for the ListNamedShadowsForThing operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListNamedShadowsForThing for more information on using the ListNamedShadowsForThing +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListNamedShadowsForThingRequest method. +// req, resp := client.ListNamedShadowsForThingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +func (c *IoTDataPlane) ListNamedShadowsForThingRequest(input *ListNamedShadowsForThingInput) (req *request.Request, output *ListNamedShadowsForThingOutput) { + op := &request.Operation{ + Name: opListNamedShadowsForThing, + HTTPMethod: "GET", + HTTPPath: "/api/things/shadow/ListNamedShadowsForThing/{thingName}", + } + + if input == nil { + input = &ListNamedShadowsForThingInput{} + } + + output = &ListNamedShadowsForThingOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListNamedShadowsForThing API operation for AWS IoT Data Plane. +// +// Lists the shadows for the specified thing. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS IoT Data Plane's +// API operation ListNamedShadowsForThing for usage and error information. +// +// Returned Error Types: +// * ResourceNotFoundException +// The specified resource does not exist. +// +// * InvalidRequestException +// The request is not valid. +// +// * ThrottlingException +// The rate exceeds the limit. +// +// * UnauthorizedException +// You are not authorized to perform this operation. +// +// * ServiceUnavailableException +// The service is temporarily unavailable. +// +// * InternalFailureException +// An unexpected error has occurred. +// +// * MethodNotAllowedException +// The specified combination of HTTP verb and URI is not supported. +// +func (c *IoTDataPlane) ListNamedShadowsForThing(input *ListNamedShadowsForThingInput) (*ListNamedShadowsForThingOutput, error) { + req, out := c.ListNamedShadowsForThingRequest(input) + return out, req.Send() +} + +// ListNamedShadowsForThingWithContext is the same as ListNamedShadowsForThing with the addition of +// the ability to pass a context and additional request options. +// +// See ListNamedShadowsForThing for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *IoTDataPlane) ListNamedShadowsForThingWithContext(ctx aws.Context, input *ListNamedShadowsForThingInput, opts ...request.Option) (*ListNamedShadowsForThingOutput, error) { + req, out := c.ListNamedShadowsForThingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opPublish = "Publish" // PublishRequest generates a "aws/request.Request" representing the @@ -343,7 +437,7 @@ func (c *IoTDataPlane) UpdateThingShadowRequest(input *UpdateThingShadowInput) ( // UpdateThingShadow API operation for AWS IoT Data Plane. // -// Updates the thing shadow for the specified thing. +// Updates the shadow for the specified thing. // // For more information, see UpdateThingShadow (http://docs.aws.amazon.com/iot/latest/developerguide/API_UpdateThingShadow.html) // in the AWS IoT Developer Guide. @@ -465,6 +559,9 @@ func (s *ConflictException) RequestID() string { type DeleteThingShadowInput struct { _ struct{} `type:"structure"` + // The name of the shadow. + ShadowName *string `location:"querystring" locationName:"name" min:"1" type:"string"` + // The name of the thing. // // ThingName is a required field @@ -484,6 +581,9 @@ func (s DeleteThingShadowInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *DeleteThingShadowInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DeleteThingShadowInput"} + if s.ShadowName != nil && len(*s.ShadowName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ShadowName", 1)) + } if s.ThingName == nil { invalidParams.Add(request.NewErrParamRequired("ThingName")) } @@ -497,6 +597,12 @@ func (s *DeleteThingShadowInput) Validate() error { return nil } +// SetShadowName sets the ShadowName field's value. +func (s *DeleteThingShadowInput) SetShadowName(v string) *DeleteThingShadowInput { + s.ShadowName = &v + return s +} + // SetThingName sets the ThingName field's value. func (s *DeleteThingShadowInput) SetThingName(v string) *DeleteThingShadowInput { s.ThingName = &v @@ -533,6 +639,9 @@ func (s *DeleteThingShadowOutput) SetPayload(v []byte) *DeleteThingShadowOutput type GetThingShadowInput struct { _ struct{} `type:"structure"` + // The name of the shadow. + ShadowName *string `location:"querystring" locationName:"name" min:"1" type:"string"` + // The name of the thing. // // ThingName is a required field @@ -552,6 +661,9 @@ func (s GetThingShadowInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *GetThingShadowInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetThingShadowInput"} + if s.ShadowName != nil && len(*s.ShadowName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ShadowName", 1)) + } if s.ThingName == nil { invalidParams.Add(request.NewErrParamRequired("ThingName")) } @@ -565,6 +677,12 @@ func (s *GetThingShadowInput) Validate() error { return nil } +// SetShadowName sets the ShadowName field's value. +func (s *GetThingShadowInput) SetShadowName(v string) *GetThingShadowInput { + s.ShadowName = &v + return s +} + // SetThingName sets the ThingName field's value. func (s *GetThingShadowInput) SetThingName(v string) *GetThingShadowInput { s.ThingName = &v @@ -709,6 +827,110 @@ func (s *InvalidRequestException) RequestID() string { return s.RespMetadata.RequestID } +type ListNamedShadowsForThingInput struct { + _ struct{} `type:"structure"` + + // The token to retrieve the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The result page size. + PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"` + + // The name of the thing. + // + // ThingName is a required field + ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListNamedShadowsForThingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListNamedShadowsForThingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListNamedShadowsForThingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListNamedShadowsForThingInput"} + if s.PageSize != nil && *s.PageSize < 1 { + invalidParams.Add(request.NewErrParamMinValue("PageSize", 1)) + } + if s.ThingName == nil { + invalidParams.Add(request.NewErrParamRequired("ThingName")) + } + if s.ThingName != nil && len(*s.ThingName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ThingName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetNextToken sets the NextToken field's value. +func (s *ListNamedShadowsForThingInput) SetNextToken(v string) *ListNamedShadowsForThingInput { + s.NextToken = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *ListNamedShadowsForThingInput) SetPageSize(v int64) *ListNamedShadowsForThingInput { + s.PageSize = &v + return s +} + +// SetThingName sets the ThingName field's value. +func (s *ListNamedShadowsForThingInput) SetThingName(v string) *ListNamedShadowsForThingInput { + s.ThingName = &v + return s +} + +type ListNamedShadowsForThingOutput struct { + _ struct{} `type:"structure"` + + // The token for the next set of results, or null if there are no additional + // results. + NextToken *string `locationName:"nextToken" type:"string"` + + // The list of shadows for the specified thing. + Results []*string `locationName:"results" type:"list"` + + // The Epoch date and time the response was generated by AWS IoT. + Timestamp *int64 `locationName:"timestamp" type:"long"` +} + +// String returns the string representation +func (s ListNamedShadowsForThingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListNamedShadowsForThingOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListNamedShadowsForThingOutput) SetNextToken(v string) *ListNamedShadowsForThingOutput { + s.NextToken = &v + return s +} + +// SetResults sets the Results field's value. +func (s *ListNamedShadowsForThingOutput) SetResults(v []*string) *ListNamedShadowsForThingOutput { + s.Results = v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *ListNamedShadowsForThingOutput) SetTimestamp(v int64) *ListNamedShadowsForThingOutput { + s.Timestamp = &v + return s +} + // The specified combination of HTTP verb and URI is not supported. type MethodNotAllowedException struct { _ struct{} `type:"structure"` @@ -1191,6 +1413,9 @@ type UpdateThingShadowInput struct { // Payload is a required field Payload []byte `locationName:"payload" type:"blob" required:"true"` + // The name of the shadow. + ShadowName *string `location:"querystring" locationName:"name" min:"1" type:"string"` + // The name of the thing. // // ThingName is a required field @@ -1213,6 +1438,9 @@ func (s *UpdateThingShadowInput) Validate() error { if s.Payload == nil { invalidParams.Add(request.NewErrParamRequired("Payload")) } + if s.ShadowName != nil && len(*s.ShadowName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ShadowName", 1)) + } if s.ThingName == nil { invalidParams.Add(request.NewErrParamRequired("ThingName")) } @@ -1232,6 +1460,12 @@ func (s *UpdateThingShadowInput) SetPayload(v []byte) *UpdateThingShadowInput { return s } +// SetShadowName sets the ShadowName field's value. +func (s *UpdateThingShadowInput) SetShadowName(v string) *UpdateThingShadowInput { + s.ShadowName = &v + return s +} + // SetThingName sets the ThingName field's value. func (s *UpdateThingShadowInput) SetThingName(v string) *UpdateThingShadowInput { s.ThingName = &v diff --git a/service/iotdataplane/doc.go b/service/iotdataplane/doc.go index 9729ae6e36a..8f7b7f30691 100644 --- a/service/iotdataplane/doc.go +++ b/service/iotdataplane/doc.go @@ -6,9 +6,17 @@ // 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 thing -// shadows. A thing shadow is a persistent representation of your things and -// their state in the AWS cloud. +// 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 (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) +// to sign requests is: iotdevicegateway. // // See iotdataplane package documentation for more information. // https://docs.aws.amazon.com/sdk-for-go/api/service/iotdataplane/ diff --git a/service/iotdataplane/iotdataplaneiface/interface.go b/service/iotdataplane/iotdataplaneiface/interface.go index c6cff032a29..5edee048980 100644 --- a/service/iotdataplane/iotdataplaneiface/interface.go +++ b/service/iotdataplane/iotdataplaneiface/interface.go @@ -68,6 +68,10 @@ type IoTDataPlaneAPI interface { GetThingShadowWithContext(aws.Context, *iotdataplane.GetThingShadowInput, ...request.Option) (*iotdataplane.GetThingShadowOutput, error) GetThingShadowRequest(*iotdataplane.GetThingShadowInput) (*request.Request, *iotdataplane.GetThingShadowOutput) + ListNamedShadowsForThing(*iotdataplane.ListNamedShadowsForThingInput) (*iotdataplane.ListNamedShadowsForThingOutput, error) + ListNamedShadowsForThingWithContext(aws.Context, *iotdataplane.ListNamedShadowsForThingInput, ...request.Option) (*iotdataplane.ListNamedShadowsForThingOutput, error) + ListNamedShadowsForThingRequest(*iotdataplane.ListNamedShadowsForThingInput) (*request.Request, *iotdataplane.ListNamedShadowsForThingOutput) + Publish(*iotdataplane.PublishInput) (*iotdataplane.PublishOutput, error) PublishWithContext(aws.Context, *iotdataplane.PublishInput, ...request.Option) (*iotdataplane.PublishOutput, error) PublishRequest(*iotdataplane.PublishInput) (*request.Request, *iotdataplane.PublishOutput)