1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package iotwireless 4 5import ( 6 "context" 7 "fmt" 8 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 9 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 10 "github.com/aws/aws-sdk-go-v2/service/iotwireless/types" 11 "github.com/aws/smithy-go/middleware" 12 smithyhttp "github.com/aws/smithy-go/transport/http" 13) 14 15// Provisions a wireless device. 16func (c *Client) CreateWirelessDevice(ctx context.Context, params *CreateWirelessDeviceInput, optFns ...func(*Options)) (*CreateWirelessDeviceOutput, error) { 17 if params == nil { 18 params = &CreateWirelessDeviceInput{} 19 } 20 21 result, metadata, err := c.invokeOperation(ctx, "CreateWirelessDevice", params, optFns, c.addOperationCreateWirelessDeviceMiddlewares) 22 if err != nil { 23 return nil, err 24 } 25 26 out := result.(*CreateWirelessDeviceOutput) 27 out.ResultMetadata = metadata 28 return out, nil 29} 30 31type CreateWirelessDeviceInput struct { 32 33 // The name of the destination to assign to the new wireless device. 34 // 35 // This member is required. 36 DestinationName *string 37 38 // The wireless device type. 39 // 40 // This member is required. 41 Type types.WirelessDeviceType 42 43 // Each resource must have a unique client request token. If you try to create a 44 // new resource with the same token as a resource that already exists, an exception 45 // occurs. If you omit this value, AWS SDKs will automatically generate a unique 46 // client request. 47 ClientRequestToken *string 48 49 // The description of the new resource. 50 Description *string 51 52 // The device configuration information to use to create the wireless device. 53 LoRaWAN *types.LoRaWANDevice 54 55 // The name of the new resource. 56 Name *string 57 58 // The tags to attach to the new wireless device. Tags are metadata that you can 59 // use to manage a resource. 60 Tags []types.Tag 61 62 noSmithyDocumentSerde 63} 64 65type CreateWirelessDeviceOutput struct { 66 67 // The Amazon Resource Name of the new resource. 68 Arn *string 69 70 // The ID of the new wireless device. 71 Id *string 72 73 // Metadata pertaining to the operation's result. 74 ResultMetadata middleware.Metadata 75 76 noSmithyDocumentSerde 77} 78 79func (c *Client) addOperationCreateWirelessDeviceMiddlewares(stack *middleware.Stack, options Options) (err error) { 80 err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateWirelessDevice{}, middleware.After) 81 if err != nil { 82 return err 83 } 84 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateWirelessDevice{}, middleware.After) 85 if err != nil { 86 return err 87 } 88 if err = addSetLoggerMiddleware(stack, options); err != nil { 89 return err 90 } 91 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 92 return err 93 } 94 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 95 return err 96 } 97 if err = addResolveEndpointMiddleware(stack, options); err != nil { 98 return err 99 } 100 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 101 return err 102 } 103 if err = addRetryMiddlewares(stack, options); err != nil { 104 return err 105 } 106 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 107 return err 108 } 109 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 110 return err 111 } 112 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 113 return err 114 } 115 if err = addClientUserAgent(stack); err != nil { 116 return err 117 } 118 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 119 return err 120 } 121 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 122 return err 123 } 124 if err = addIdempotencyToken_opCreateWirelessDeviceMiddleware(stack, options); err != nil { 125 return err 126 } 127 if err = addOpCreateWirelessDeviceValidationMiddleware(stack); err != nil { 128 return err 129 } 130 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateWirelessDevice(options.Region), middleware.Before); err != nil { 131 return err 132 } 133 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 134 return err 135 } 136 if err = addResponseErrorMiddleware(stack); err != nil { 137 return err 138 } 139 if err = addRequestResponseLogging(stack, options); err != nil { 140 return err 141 } 142 return nil 143} 144 145type idempotencyToken_initializeOpCreateWirelessDevice struct { 146 tokenProvider IdempotencyTokenProvider 147} 148 149func (*idempotencyToken_initializeOpCreateWirelessDevice) ID() string { 150 return "OperationIdempotencyTokenAutoFill" 151} 152 153func (m *idempotencyToken_initializeOpCreateWirelessDevice) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) ( 154 out middleware.InitializeOutput, metadata middleware.Metadata, err error, 155) { 156 if m.tokenProvider == nil { 157 return next.HandleInitialize(ctx, in) 158 } 159 160 input, ok := in.Parameters.(*CreateWirelessDeviceInput) 161 if !ok { 162 return out, metadata, fmt.Errorf("expected middleware input to be of type *CreateWirelessDeviceInput ") 163 } 164 165 if input.ClientRequestToken == nil { 166 t, err := m.tokenProvider.GetIdempotencyToken() 167 if err != nil { 168 return out, metadata, err 169 } 170 input.ClientRequestToken = &t 171 } 172 return next.HandleInitialize(ctx, in) 173} 174func addIdempotencyToken_opCreateWirelessDeviceMiddleware(stack *middleware.Stack, cfg Options) error { 175 return stack.Initialize.Add(&idempotencyToken_initializeOpCreateWirelessDevice{tokenProvider: cfg.IdempotencyTokenProvider}, middleware.Before) 176} 177 178func newServiceMetadataMiddleware_opCreateWirelessDevice(region string) *awsmiddleware.RegisterServiceMetadata { 179 return &awsmiddleware.RegisterServiceMetadata{ 180 Region: region, 181 ServiceID: ServiceID, 182 SigningName: "iotwireless", 183 OperationName: "CreateWirelessDevice", 184 } 185} 186