Switch to using the dep tool and update all the dependencies

This commit is contained in:
Nick Craig-Wood 2017-05-11 15:39:54 +01:00
parent 5135ff73cb
commit 98c2d2c41b
5321 changed files with 4483201 additions and 5922 deletions

View file

@ -0,0 +1,713 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package iotdataplane
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol"
"github.com/aws/aws-sdk-go/private/protocol/restjson"
)
const opDeleteThingShadow = "DeleteThingShadow"
// DeleteThingShadowRequest generates a "aws/request.Request" representing the
// client's request for the DeleteThingShadow operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// See DeleteThingShadow for usage and error information.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DeleteThingShadow method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DeleteThingShadowRequest method.
// req, resp := client.DeleteThingShadowRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/DeleteThingShadow
func (c *IoTDataPlane) DeleteThingShadowRequest(input *DeleteThingShadowInput) (req *request.Request, output *DeleteThingShadowOutput) {
op := &request.Operation{
Name: opDeleteThingShadow,
HTTPMethod: "DELETE",
HTTPPath: "/things/{thingName}/shadow",
}
if input == nil {
input = &DeleteThingShadowInput{}
}
output = &DeleteThingShadowOutput{}
req = c.newRequest(op, input, output)
return
}
// DeleteThingShadow API operation for AWS IoT Data Plane.
//
// Deletes the thing 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.
//
// 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 DeleteThingShadow for usage and error information.
//
// Returned Error Codes:
// * ErrCodeResourceNotFoundException "ResourceNotFoundException"
// The specified resource does not exist.
//
// * ErrCodeInvalidRequestException "InvalidRequestException"
// The request is not valid.
//
// * ErrCodeThrottlingException "ThrottlingException"
// The rate exceeds the limit.
//
// * ErrCodeUnauthorizedException "UnauthorizedException"
// You are not authorized to perform this operation.
//
// * ErrCodeServiceUnavailableException "ServiceUnavailableException"
// The service is temporarily unavailable.
//
// * ErrCodeInternalFailureException "InternalFailureException"
// An unexpected error has occurred.
//
// * ErrCodeMethodNotAllowedException "MethodNotAllowedException"
// The specified combination of HTTP verb and URI is not supported.
//
// * ErrCodeUnsupportedDocumentEncodingException "UnsupportedDocumentEncodingException"
// The document encoding is not supported.
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/DeleteThingShadow
func (c *IoTDataPlane) DeleteThingShadow(input *DeleteThingShadowInput) (*DeleteThingShadowOutput, error) {
req, out := c.DeleteThingShadowRequest(input)
return out, req.Send()
}
// DeleteThingShadowWithContext is the same as DeleteThingShadow with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteThingShadow 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) DeleteThingShadowWithContext(ctx aws.Context, input *DeleteThingShadowInput, opts ...request.Option) (*DeleteThingShadowOutput, error) {
req, out := c.DeleteThingShadowRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opGetThingShadow = "GetThingShadow"
// GetThingShadowRequest generates a "aws/request.Request" representing the
// client's request for the GetThingShadow operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// See GetThingShadow for usage and error information.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the GetThingShadow method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the GetThingShadowRequest method.
// req, resp := client.GetThingShadowRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/GetThingShadow
func (c *IoTDataPlane) GetThingShadowRequest(input *GetThingShadowInput) (req *request.Request, output *GetThingShadowOutput) {
op := &request.Operation{
Name: opGetThingShadow,
HTTPMethod: "GET",
HTTPPath: "/things/{thingName}/shadow",
}
if input == nil {
input = &GetThingShadowInput{}
}
output = &GetThingShadowOutput{}
req = c.newRequest(op, input, output)
return
}
// GetThingShadow API operation for AWS IoT Data Plane.
//
// Gets the thing 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.
//
// 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 GetThingShadow for usage and error information.
//
// Returned Error Codes:
// * ErrCodeInvalidRequestException "InvalidRequestException"
// The request is not valid.
//
// * ErrCodeResourceNotFoundException "ResourceNotFoundException"
// The specified resource does not exist.
//
// * ErrCodeThrottlingException "ThrottlingException"
// The rate exceeds the limit.
//
// * ErrCodeUnauthorizedException "UnauthorizedException"
// You are not authorized to perform this operation.
//
// * ErrCodeServiceUnavailableException "ServiceUnavailableException"
// The service is temporarily unavailable.
//
// * ErrCodeInternalFailureException "InternalFailureException"
// An unexpected error has occurred.
//
// * ErrCodeMethodNotAllowedException "MethodNotAllowedException"
// The specified combination of HTTP verb and URI is not supported.
//
// * ErrCodeUnsupportedDocumentEncodingException "UnsupportedDocumentEncodingException"
// The document encoding is not supported.
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/GetThingShadow
func (c *IoTDataPlane) GetThingShadow(input *GetThingShadowInput) (*GetThingShadowOutput, error) {
req, out := c.GetThingShadowRequest(input)
return out, req.Send()
}
// GetThingShadowWithContext is the same as GetThingShadow with the addition of
// the ability to pass a context and additional request options.
//
// See GetThingShadow 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) GetThingShadowWithContext(ctx aws.Context, input *GetThingShadowInput, opts ...request.Option) (*GetThingShadowOutput, error) {
req, out := c.GetThingShadowRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opPublish = "Publish"
// PublishRequest generates a "aws/request.Request" representing the
// client's request for the Publish operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// See Publish for usage and error information.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the Publish method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the PublishRequest method.
// req, resp := client.PublishRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/Publish
func (c *IoTDataPlane) PublishRequest(input *PublishInput) (req *request.Request, output *PublishOutput) {
op := &request.Operation{
Name: opPublish,
HTTPMethod: "POST",
HTTPPath: "/topics/{topic}",
}
if input == nil {
input = &PublishInput{}
}
output = &PublishOutput{}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(restjson.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
return
}
// Publish API operation for AWS IoT Data Plane.
//
// Publishes state information.
//
// For more information, see HTTP Protocol (http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#http)
// in the AWS IoT Developer Guide.
//
// 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 Publish for usage and error information.
//
// Returned Error Codes:
// * ErrCodeInternalFailureException "InternalFailureException"
// An unexpected error has occurred.
//
// * ErrCodeInvalidRequestException "InvalidRequestException"
// The request is not valid.
//
// * ErrCodeUnauthorizedException "UnauthorizedException"
// You are not authorized to perform this operation.
//
// * ErrCodeMethodNotAllowedException "MethodNotAllowedException"
// The specified combination of HTTP verb and URI is not supported.
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/Publish
func (c *IoTDataPlane) Publish(input *PublishInput) (*PublishOutput, error) {
req, out := c.PublishRequest(input)
return out, req.Send()
}
// PublishWithContext is the same as Publish with the addition of
// the ability to pass a context and additional request options.
//
// See Publish 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) PublishWithContext(ctx aws.Context, input *PublishInput, opts ...request.Option) (*PublishOutput, error) {
req, out := c.PublishRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opUpdateThingShadow = "UpdateThingShadow"
// UpdateThingShadowRequest generates a "aws/request.Request" representing the
// client's request for the UpdateThingShadow operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// See UpdateThingShadow for usage and error information.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the UpdateThingShadow method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the UpdateThingShadowRequest method.
// req, resp := client.UpdateThingShadowRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/UpdateThingShadow
func (c *IoTDataPlane) UpdateThingShadowRequest(input *UpdateThingShadowInput) (req *request.Request, output *UpdateThingShadowOutput) {
op := &request.Operation{
Name: opUpdateThingShadow,
HTTPMethod: "POST",
HTTPPath: "/things/{thingName}/shadow",
}
if input == nil {
input = &UpdateThingShadowInput{}
}
output = &UpdateThingShadowOutput{}
req = c.newRequest(op, input, output)
return
}
// UpdateThingShadow API operation for AWS IoT Data Plane.
//
// Updates the thing 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.
//
// 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 UpdateThingShadow for usage and error information.
//
// Returned Error Codes:
// * ErrCodeConflictException "ConflictException"
// The specified version does not match the version of the document.
//
// * ErrCodeRequestEntityTooLargeException "RequestEntityTooLargeException"
// The payload exceeds the maximum size allowed.
//
// * ErrCodeInvalidRequestException "InvalidRequestException"
// The request is not valid.
//
// * ErrCodeThrottlingException "ThrottlingException"
// The rate exceeds the limit.
//
// * ErrCodeUnauthorizedException "UnauthorizedException"
// You are not authorized to perform this operation.
//
// * ErrCodeServiceUnavailableException "ServiceUnavailableException"
// The service is temporarily unavailable.
//
// * ErrCodeInternalFailureException "InternalFailureException"
// An unexpected error has occurred.
//
// * ErrCodeMethodNotAllowedException "MethodNotAllowedException"
// The specified combination of HTTP verb and URI is not supported.
//
// * ErrCodeUnsupportedDocumentEncodingException "UnsupportedDocumentEncodingException"
// The document encoding is not supported.
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/UpdateThingShadow
func (c *IoTDataPlane) UpdateThingShadow(input *UpdateThingShadowInput) (*UpdateThingShadowOutput, error) {
req, out := c.UpdateThingShadowRequest(input)
return out, req.Send()
}
// UpdateThingShadowWithContext is the same as UpdateThingShadow with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateThingShadow 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) UpdateThingShadowWithContext(ctx aws.Context, input *UpdateThingShadowInput, opts ...request.Option) (*UpdateThingShadowOutput, error) {
req, out := c.UpdateThingShadowRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
// The input for the DeleteThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/DeleteThingShadowRequest
type DeleteThingShadowInput struct {
_ struct{} `type:"structure"`
// 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 DeleteThingShadowInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DeleteThingShadowInput) GoString() string {
return s.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.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
}
// SetThingName sets the ThingName field's value.
func (s *DeleteThingShadowInput) SetThingName(v string) *DeleteThingShadowInput {
s.ThingName = &v
return s
}
// The output from the DeleteThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/DeleteThingShadowResponse
type DeleteThingShadowOutput struct {
_ struct{} `type:"structure" payload:"Payload"`
// The state information, in JSON format.
//
// Payload is a required field
Payload []byte `locationName:"payload" type:"blob" required:"true"`
}
// String returns the string representation
func (s DeleteThingShadowOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DeleteThingShadowOutput) GoString() string {
return s.String()
}
// SetPayload sets the Payload field's value.
func (s *DeleteThingShadowOutput) SetPayload(v []byte) *DeleteThingShadowOutput {
s.Payload = v
return s
}
// The input for the GetThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/GetThingShadowRequest
type GetThingShadowInput struct {
_ struct{} `type:"structure"`
// 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 GetThingShadowInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetThingShadowInput) GoString() string {
return s.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.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
}
// SetThingName sets the ThingName field's value.
func (s *GetThingShadowInput) SetThingName(v string) *GetThingShadowInput {
s.ThingName = &v
return s
}
// The output from the GetThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/GetThingShadowResponse
type GetThingShadowOutput struct {
_ struct{} `type:"structure" payload:"Payload"`
// The state information, in JSON format.
Payload []byte `locationName:"payload" type:"blob"`
}
// String returns the string representation
func (s GetThingShadowOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetThingShadowOutput) GoString() string {
return s.String()
}
// SetPayload sets the Payload field's value.
func (s *GetThingShadowOutput) SetPayload(v []byte) *GetThingShadowOutput {
s.Payload = v
return s
}
// The input for the Publish operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/PublishRequest
type PublishInput struct {
_ struct{} `type:"structure" payload:"Payload"`
// The state information, in JSON format.
Payload []byte `locationName:"payload" type:"blob"`
// The Quality of Service (QoS) level.
Qos *int64 `location:"querystring" locationName:"qos" type:"integer"`
// The name of the MQTT topic.
//
// Topic is a required field
Topic *string `location:"uri" locationName:"topic" type:"string" required:"true"`
}
// String returns the string representation
func (s PublishInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PublishInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *PublishInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "PublishInput"}
if s.Topic == nil {
invalidParams.Add(request.NewErrParamRequired("Topic"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetPayload sets the Payload field's value.
func (s *PublishInput) SetPayload(v []byte) *PublishInput {
s.Payload = v
return s
}
// SetQos sets the Qos field's value.
func (s *PublishInput) SetQos(v int64) *PublishInput {
s.Qos = &v
return s
}
// SetTopic sets the Topic field's value.
func (s *PublishInput) SetTopic(v string) *PublishInput {
s.Topic = &v
return s
}
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/PublishOutput
type PublishOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s PublishOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PublishOutput) GoString() string {
return s.String()
}
// The input for the UpdateThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/UpdateThingShadowRequest
type UpdateThingShadowInput struct {
_ struct{} `type:"structure" payload:"Payload"`
// The state information, in JSON format.
//
// Payload is a required field
Payload []byte `locationName:"payload" type:"blob" required:"true"`
// 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 UpdateThingShadowInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s UpdateThingShadowInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateThingShadowInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdateThingShadowInput"}
if s.Payload == nil {
invalidParams.Add(request.NewErrParamRequired("Payload"))
}
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
}
// SetPayload sets the Payload field's value.
func (s *UpdateThingShadowInput) SetPayload(v []byte) *UpdateThingShadowInput {
s.Payload = v
return s
}
// SetThingName sets the ThingName field's value.
func (s *UpdateThingShadowInput) SetThingName(v string) *UpdateThingShadowInput {
s.ThingName = &v
return s
}
// The output from the UpdateThingShadow operation.
// Please also see https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28/UpdateThingShadowResponse
type UpdateThingShadowOutput struct {
_ struct{} `type:"structure" payload:"Payload"`
// The state information, in JSON format.
Payload []byte `locationName:"payload" type:"blob"`
}
// String returns the string representation
func (s UpdateThingShadowOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s UpdateThingShadowOutput) GoString() string {
return s.String()
}
// SetPayload sets the Payload field's value.
func (s *UpdateThingShadowOutput) SetPayload(v []byte) *UpdateThingShadowOutput {
s.Payload = v
return s
}

View file

@ -0,0 +1,52 @@
package iotdataplane_test
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/awstesting/unit"
"github.com/aws/aws-sdk-go/service/iotdataplane"
)
func TestRequireEndpointIfRegionProvided(t *testing.T) {
svc := iotdataplane.New(unit.Session, &aws.Config{
Region: aws.String("mock-region"),
DisableParamValidation: aws.Bool(true),
})
req, _ := svc.GetThingShadowRequest(nil)
err := req.Build()
assert.Equal(t, "", svc.Endpoint)
assert.Error(t, err)
assert.Equal(t, aws.ErrMissingEndpoint, err)
}
func TestRequireEndpointIfNoRegionProvided(t *testing.T) {
svc := iotdataplane.New(unit.Session, &aws.Config{
DisableParamValidation: aws.Bool(true),
})
fmt.Println(svc.ClientInfo.SigningRegion)
req, _ := svc.GetThingShadowRequest(nil)
err := req.Build()
assert.Equal(t, "", svc.Endpoint)
assert.Error(t, err)
assert.Equal(t, aws.ErrMissingEndpoint, err)
}
func TestRequireEndpointUsed(t *testing.T) {
svc := iotdataplane.New(unit.Session, &aws.Config{
Region: aws.String("mock-region"),
DisableParamValidation: aws.Bool(true),
Endpoint: aws.String("https://endpoint"),
})
req, _ := svc.GetThingShadowRequest(nil)
err := req.Build()
assert.Equal(t, "https://endpoint", svc.Endpoint)
assert.NoError(t, err)
}

View file

@ -0,0 +1,85 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package iotdataplane provides the client and types for making API
// requests to AWS IoT Data Plane.
//
// 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.
//
// See https://docs.aws.amazon.com/goto/WebAPI/iot-data-2015-05-28 for more information on this service.
//
// See iotdataplane package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/iotdataplane/
//
// Using the Client
//
// To use the client for AWS IoT Data Plane you will first need
// to create a new instance of it.
//
// When creating a client for an AWS service you'll first need to have a Session
// already created. The Session provides configuration that can be shared
// between multiple service clients. Additional configuration can be applied to
// the Session and service's client when they are constructed. The aws package's
// Config type contains several fields such as Region for the AWS Region the
// client should make API requests too. The optional Config value can be provided
// as the variadic argument for Sessions and client creation.
//
// Once the service's client is created you can use it to make API requests the
// AWS service. These clients are safe to use concurrently.
//
// // Create a session to share configuration, and load external configuration.
// sess := session.Must(session.NewSession())
//
// // Create the service's client with the session.
// svc := iotdataplane.New(sess)
//
// See the SDK's documentation for more information on how to use service clients.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws package's Config type for more information on configuration options.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the AWS IoT Data Plane client IoTDataPlane for more
// information on creating the service's client.
// https://docs.aws.amazon.com/sdk-for-go/api/service/iotdataplane/#New
//
// Once the client is created you can make an API request to the service.
// Each API method takes a input parameter, and returns the service response
// and an error.
//
// The API method will document which error codes the service can be returned
// by the operation if the service models the API operation's errors. These
// errors will also be available as const strings prefixed with "ErrCode".
//
// result, err := svc.DeleteThingShadow(params)
// if err != nil {
// // Cast err to awserr.Error to handle specific error codes.
// aerr, ok := err.(awserr.Error)
// if ok && aerr.Code() == <error code to check for> {
// // Specific error code handling
// }
// return err
// }
//
// fmt.Println("DeleteThingShadow result:")
// fmt.Println(result)
//
// Using the Client with Context
//
// The service's client also provides methods to make API requests with a Context
// value. This allows you to control the timeout, and cancellation of pending
// requests. These methods also take request Option as variadic parameter to apply
// additional configuration to the API request.
//
// ctx := context.Background()
//
// result, err := svc.DeleteThingShadowWithContext(ctx, params)
//
// See the request package documentation for more information on using Context pattern
// with the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/request/
package iotdataplane

View file

@ -0,0 +1,66 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package iotdataplane
const (
// ErrCodeConflictException for service response error code
// "ConflictException".
//
// The specified version does not match the version of the document.
ErrCodeConflictException = "ConflictException"
// ErrCodeInternalFailureException for service response error code
// "InternalFailureException".
//
// An unexpected error has occurred.
ErrCodeInternalFailureException = "InternalFailureException"
// ErrCodeInvalidRequestException for service response error code
// "InvalidRequestException".
//
// The request is not valid.
ErrCodeInvalidRequestException = "InvalidRequestException"
// ErrCodeMethodNotAllowedException for service response error code
// "MethodNotAllowedException".
//
// The specified combination of HTTP verb and URI is not supported.
ErrCodeMethodNotAllowedException = "MethodNotAllowedException"
// ErrCodeRequestEntityTooLargeException for service response error code
// "RequestEntityTooLargeException".
//
// The payload exceeds the maximum size allowed.
ErrCodeRequestEntityTooLargeException = "RequestEntityTooLargeException"
// ErrCodeResourceNotFoundException for service response error code
// "ResourceNotFoundException".
//
// The specified resource does not exist.
ErrCodeResourceNotFoundException = "ResourceNotFoundException"
// ErrCodeServiceUnavailableException for service response error code
// "ServiceUnavailableException".
//
// The service is temporarily unavailable.
ErrCodeServiceUnavailableException = "ServiceUnavailableException"
// ErrCodeThrottlingException for service response error code
// "ThrottlingException".
//
// The rate exceeds the limit.
ErrCodeThrottlingException = "ThrottlingException"
// ErrCodeUnauthorizedException for service response error code
// "UnauthorizedException".
//
// You are not authorized to perform this operation.
ErrCodeUnauthorizedException = "UnauthorizedException"
// ErrCodeUnsupportedDocumentEncodingException for service response error code
// "UnsupportedDocumentEncodingException".
//
// The document encoding is not supported.
ErrCodeUnsupportedDocumentEncodingException = "UnsupportedDocumentEncodingException"
)

View file

@ -0,0 +1,103 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package iotdataplane_test
import (
"bytes"
"fmt"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/iotdataplane"
)
var _ time.Duration
var _ bytes.Buffer
func ExampleIoTDataPlane_DeleteThingShadow() {
sess := session.Must(session.NewSession())
svc := iotdataplane.New(sess)
params := &iotdataplane.DeleteThingShadowInput{
ThingName: aws.String("ThingName"), // Required
}
resp, err := svc.DeleteThingShadow(params)
if err != nil {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}
// Pretty-print the response data.
fmt.Println(resp)
}
func ExampleIoTDataPlane_GetThingShadow() {
sess := session.Must(session.NewSession())
svc := iotdataplane.New(sess)
params := &iotdataplane.GetThingShadowInput{
ThingName: aws.String("ThingName"), // Required
}
resp, err := svc.GetThingShadow(params)
if err != nil {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}
// Pretty-print the response data.
fmt.Println(resp)
}
func ExampleIoTDataPlane_Publish() {
sess := session.Must(session.NewSession())
svc := iotdataplane.New(sess)
params := &iotdataplane.PublishInput{
Topic: aws.String("Topic"), // Required
Payload: []byte("PAYLOAD"),
Qos: aws.Int64(1),
}
resp, err := svc.Publish(params)
if err != nil {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}
// Pretty-print the response data.
fmt.Println(resp)
}
func ExampleIoTDataPlane_UpdateThingShadow() {
sess := session.Must(session.NewSession())
svc := iotdataplane.New(sess)
params := &iotdataplane.UpdateThingShadowInput{
Payload: []byte("PAYLOAD"), // Required
ThingName: aws.String("ThingName"), // Required
}
resp, err := svc.UpdateThingShadow(params)
if err != nil {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
return
}
// Pretty-print the response data.
fmt.Println(resp)
}

View file

@ -0,0 +1,80 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package iotdataplaneiface provides an interface to enable mocking the AWS IoT Data Plane service client
// for testing your code.
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters.
package iotdataplaneiface
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/service/iotdataplane"
)
// IoTDataPlaneAPI provides an interface to enable mocking the
// iotdataplane.IoTDataPlane service client's API operation,
// paginators, and waiters. This make unit testing your code that calls out
// to the SDK's service client's calls easier.
//
// The best way to use this interface is so the SDK's service client's calls
// can be stubbed out for unit testing your code with the SDK without needing
// to inject custom request handlers into the the SDK's request pipeline.
//
// // myFunc uses an SDK service client to make a request to
// // AWS IoT Data Plane.
// func myFunc(svc iotdataplaneiface.IoTDataPlaneAPI) bool {
// // Make svc.DeleteThingShadow request
// }
//
// func main() {
// sess := session.New()
// svc := iotdataplane.New(sess)
//
// myFunc(svc)
// }
//
// In your _test.go file:
//
// // Define a mock struct to be used in your unit tests of myFunc.
// type mockIoTDataPlaneClient struct {
// iotdataplaneiface.IoTDataPlaneAPI
// }
// func (m *mockIoTDataPlaneClient) DeleteThingShadow(input *iotdataplane.DeleteThingShadowInput) (*iotdataplane.DeleteThingShadowOutput, error) {
// // mock response/functionality
// }
//
// func TestMyFunc(t *testing.T) {
// // Setup Test
// mockSvc := &mockIoTDataPlaneClient{}
//
// myfunc(mockSvc)
//
// // Verify myFunc's functionality
// }
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters. Its suggested to use the pattern above for testing, or using
// tooling to generate mocks to satisfy the interfaces.
type IoTDataPlaneAPI interface {
DeleteThingShadow(*iotdataplane.DeleteThingShadowInput) (*iotdataplane.DeleteThingShadowOutput, error)
DeleteThingShadowWithContext(aws.Context, *iotdataplane.DeleteThingShadowInput, ...request.Option) (*iotdataplane.DeleteThingShadowOutput, error)
DeleteThingShadowRequest(*iotdataplane.DeleteThingShadowInput) (*request.Request, *iotdataplane.DeleteThingShadowOutput)
GetThingShadow(*iotdataplane.GetThingShadowInput) (*iotdataplane.GetThingShadowOutput, error)
GetThingShadowWithContext(aws.Context, *iotdataplane.GetThingShadowInput, ...request.Option) (*iotdataplane.GetThingShadowOutput, error)
GetThingShadowRequest(*iotdataplane.GetThingShadowInput) (*request.Request, *iotdataplane.GetThingShadowOutput)
Publish(*iotdataplane.PublishInput) (*iotdataplane.PublishOutput, error)
PublishWithContext(aws.Context, *iotdataplane.PublishInput, ...request.Option) (*iotdataplane.PublishOutput, error)
PublishRequest(*iotdataplane.PublishInput) (*request.Request, *iotdataplane.PublishOutput)
UpdateThingShadow(*iotdataplane.UpdateThingShadowInput) (*iotdataplane.UpdateThingShadowOutput, error)
UpdateThingShadowWithContext(aws.Context, *iotdataplane.UpdateThingShadowInput, ...request.Option) (*iotdataplane.UpdateThingShadowOutput, error)
UpdateThingShadowRequest(*iotdataplane.UpdateThingShadowInput) (*request.Request, *iotdataplane.UpdateThingShadowOutput)
}
var _ IoTDataPlaneAPI = (*iotdataplane.IoTDataPlane)(nil)

View file

@ -0,0 +1,101 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package iotdataplane
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/restjson"
)
// IoTDataPlane provides the API operation methods for making requests to
// AWS IoT Data Plane. See this package's package overview docs
// for details on the service.
//
// IoTDataPlane methods are safe to use concurrently. It is not safe to
// modify mutate any of the struct's properties though.
type IoTDataPlane struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "data.iot" // Service endpoint prefix API calls made to.
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)
// New creates a new instance of the IoTDataPlane client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a IoTDataPlane client from just a session.
// svc := iotdataplane.New(mySession)
//
// // Create a IoTDataPlane client with additional configuration
// svc := iotdataplane.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *IoTDataPlane {
var c client.Config
if v, ok := p.(client.ConfigNoResolveEndpointProvider); ok {
c = v.ClientConfigNoResolveEndpoint(cfgs...)
} else {
c = p.ClientConfig(EndpointsID, cfgs...)
}
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *IoTDataPlane {
if len(signingName) == 0 {
signingName = "iotdata"
}
svc := &IoTDataPlane{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2015-05-28",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(restjson.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a IoTDataPlane operation and runs any
// custom request initialization.
func (c *IoTDataPlane) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}