1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package iot
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opAcceptCertificateTransfer = "AcceptCertificateTransfer"
17
18// AcceptCertificateTransferRequest generates a "aws/request.Request" representing the
19// client's request for the AcceptCertificateTransfer operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AcceptCertificateTransfer for more information on using the AcceptCertificateTransfer
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AcceptCertificateTransferRequest method.
34//    req, resp := client.AcceptCertificateTransferRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40func (c *IoT) AcceptCertificateTransferRequest(input *AcceptCertificateTransferInput) (req *request.Request, output *AcceptCertificateTransferOutput) {
41	op := &request.Operation{
42		Name:       opAcceptCertificateTransfer,
43		HTTPMethod: "PATCH",
44		HTTPPath:   "/accept-certificate-transfer/{certificateId}",
45	}
46
47	if input == nil {
48		input = &AcceptCertificateTransferInput{}
49	}
50
51	output = &AcceptCertificateTransferOutput{}
52	req = c.newRequest(op, input, output)
53	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
54	return
55}
56
57// AcceptCertificateTransfer API operation for AWS IoT.
58//
59// Accepts a pending certificate transfer. The default state of the certificate
60// is INACTIVE.
61//
62// To check for pending certificate transfers, call ListCertificates to enumerate
63// your certificates.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for AWS IoT's
70// API operation AcceptCertificateTransfer for usage and error information.
71//
72// Returned Error Types:
73//   * ResourceNotFoundException
74//   The specified resource does not exist.
75//
76//   * TransferAlreadyCompletedException
77//   You can't revert the certificate transfer because the transfer is already
78//   complete.
79//
80//   * InvalidRequestException
81//   The request is not valid.
82//
83//   * ThrottlingException
84//   The rate exceeds the limit.
85//
86//   * UnauthorizedException
87//   You are not authorized to perform this operation.
88//
89//   * ServiceUnavailableException
90//   The service is temporarily unavailable.
91//
92//   * InternalFailureException
93//   An unexpected error has occurred.
94//
95func (c *IoT) AcceptCertificateTransfer(input *AcceptCertificateTransferInput) (*AcceptCertificateTransferOutput, error) {
96	req, out := c.AcceptCertificateTransferRequest(input)
97	return out, req.Send()
98}
99
100// AcceptCertificateTransferWithContext is the same as AcceptCertificateTransfer with the addition of
101// the ability to pass a context and additional request options.
102//
103// See AcceptCertificateTransfer for details on how to use this API operation.
104//
105// The context must be non-nil and will be used for request cancellation. If
106// the context is nil a panic will occur. In the future the SDK may create
107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
108// for more information on using Contexts.
109func (c *IoT) AcceptCertificateTransferWithContext(ctx aws.Context, input *AcceptCertificateTransferInput, opts ...request.Option) (*AcceptCertificateTransferOutput, error) {
110	req, out := c.AcceptCertificateTransferRequest(input)
111	req.SetContext(ctx)
112	req.ApplyOptions(opts...)
113	return out, req.Send()
114}
115
116const opAddThingToBillingGroup = "AddThingToBillingGroup"
117
118// AddThingToBillingGroupRequest generates a "aws/request.Request" representing the
119// client's request for the AddThingToBillingGroup operation. The "output" return
120// value will be populated with the request's response once the request completes
121// successfully.
122//
123// Use "Send" method on the returned Request to send the API call to the service.
124// the "output" return value is not valid until after Send returns without error.
125//
126// See AddThingToBillingGroup for more information on using the AddThingToBillingGroup
127// API call, and error handling.
128//
129// This method is useful when you want to inject custom logic or configuration
130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
131//
132//
133//    // Example sending a request using the AddThingToBillingGroupRequest method.
134//    req, resp := client.AddThingToBillingGroupRequest(params)
135//
136//    err := req.Send()
137//    if err == nil { // resp is now filled
138//        fmt.Println(resp)
139//    }
140func (c *IoT) AddThingToBillingGroupRequest(input *AddThingToBillingGroupInput) (req *request.Request, output *AddThingToBillingGroupOutput) {
141	op := &request.Operation{
142		Name:       opAddThingToBillingGroup,
143		HTTPMethod: "PUT",
144		HTTPPath:   "/billing-groups/addThingToBillingGroup",
145	}
146
147	if input == nil {
148		input = &AddThingToBillingGroupInput{}
149	}
150
151	output = &AddThingToBillingGroupOutput{}
152	req = c.newRequest(op, input, output)
153	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
154	return
155}
156
157// AddThingToBillingGroup API operation for AWS IoT.
158//
159// Adds a thing to a billing group.
160//
161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162// with awserr.Error's Code and Message methods to get detailed information about
163// the error.
164//
165// See the AWS API reference guide for AWS IoT's
166// API operation AddThingToBillingGroup for usage and error information.
167//
168// Returned Error Types:
169//   * InvalidRequestException
170//   The request is not valid.
171//
172//   * ThrottlingException
173//   The rate exceeds the limit.
174//
175//   * InternalFailureException
176//   An unexpected error has occurred.
177//
178//   * ResourceNotFoundException
179//   The specified resource does not exist.
180//
181func (c *IoT) AddThingToBillingGroup(input *AddThingToBillingGroupInput) (*AddThingToBillingGroupOutput, error) {
182	req, out := c.AddThingToBillingGroupRequest(input)
183	return out, req.Send()
184}
185
186// AddThingToBillingGroupWithContext is the same as AddThingToBillingGroup with the addition of
187// the ability to pass a context and additional request options.
188//
189// See AddThingToBillingGroup for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *IoT) AddThingToBillingGroupWithContext(ctx aws.Context, input *AddThingToBillingGroupInput, opts ...request.Option) (*AddThingToBillingGroupOutput, error) {
196	req, out := c.AddThingToBillingGroupRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opAddThingToThingGroup = "AddThingToThingGroup"
203
204// AddThingToThingGroupRequest generates a "aws/request.Request" representing the
205// client's request for the AddThingToThingGroup operation. The "output" return
206// value will be populated with the request's response once the request completes
207// successfully.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See AddThingToThingGroup for more information on using the AddThingToThingGroup
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the AddThingToThingGroupRequest method.
220//    req, resp := client.AddThingToThingGroupRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226func (c *IoT) AddThingToThingGroupRequest(input *AddThingToThingGroupInput) (req *request.Request, output *AddThingToThingGroupOutput) {
227	op := &request.Operation{
228		Name:       opAddThingToThingGroup,
229		HTTPMethod: "PUT",
230		HTTPPath:   "/thing-groups/addThingToThingGroup",
231	}
232
233	if input == nil {
234		input = &AddThingToThingGroupInput{}
235	}
236
237	output = &AddThingToThingGroupOutput{}
238	req = c.newRequest(op, input, output)
239	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
240	return
241}
242
243// AddThingToThingGroup API operation for AWS IoT.
244//
245// Adds a thing to a thing group.
246//
247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
248// with awserr.Error's Code and Message methods to get detailed information about
249// the error.
250//
251// See the AWS API reference guide for AWS IoT's
252// API operation AddThingToThingGroup for usage and error information.
253//
254// Returned Error Types:
255//   * InvalidRequestException
256//   The request is not valid.
257//
258//   * ThrottlingException
259//   The rate exceeds the limit.
260//
261//   * InternalFailureException
262//   An unexpected error has occurred.
263//
264//   * ResourceNotFoundException
265//   The specified resource does not exist.
266//
267func (c *IoT) AddThingToThingGroup(input *AddThingToThingGroupInput) (*AddThingToThingGroupOutput, error) {
268	req, out := c.AddThingToThingGroupRequest(input)
269	return out, req.Send()
270}
271
272// AddThingToThingGroupWithContext is the same as AddThingToThingGroup with the addition of
273// the ability to pass a context and additional request options.
274//
275// See AddThingToThingGroup for details on how to use this API operation.
276//
277// The context must be non-nil and will be used for request cancellation. If
278// the context is nil a panic will occur. In the future the SDK may create
279// sub-contexts for http.Requests. See https://golang.org/pkg/context/
280// for more information on using Contexts.
281func (c *IoT) AddThingToThingGroupWithContext(ctx aws.Context, input *AddThingToThingGroupInput, opts ...request.Option) (*AddThingToThingGroupOutput, error) {
282	req, out := c.AddThingToThingGroupRequest(input)
283	req.SetContext(ctx)
284	req.ApplyOptions(opts...)
285	return out, req.Send()
286}
287
288const opAssociateTargetsWithJob = "AssociateTargetsWithJob"
289
290// AssociateTargetsWithJobRequest generates a "aws/request.Request" representing the
291// client's request for the AssociateTargetsWithJob operation. The "output" return
292// value will be populated with the request's response once the request completes
293// successfully.
294//
295// Use "Send" method on the returned Request to send the API call to the service.
296// the "output" return value is not valid until after Send returns without error.
297//
298// See AssociateTargetsWithJob for more information on using the AssociateTargetsWithJob
299// API call, and error handling.
300//
301// This method is useful when you want to inject custom logic or configuration
302// into the SDK's request lifecycle. Such as custom headers, or retry logic.
303//
304//
305//    // Example sending a request using the AssociateTargetsWithJobRequest method.
306//    req, resp := client.AssociateTargetsWithJobRequest(params)
307//
308//    err := req.Send()
309//    if err == nil { // resp is now filled
310//        fmt.Println(resp)
311//    }
312func (c *IoT) AssociateTargetsWithJobRequest(input *AssociateTargetsWithJobInput) (req *request.Request, output *AssociateTargetsWithJobOutput) {
313	op := &request.Operation{
314		Name:       opAssociateTargetsWithJob,
315		HTTPMethod: "POST",
316		HTTPPath:   "/jobs/{jobId}/targets",
317	}
318
319	if input == nil {
320		input = &AssociateTargetsWithJobInput{}
321	}
322
323	output = &AssociateTargetsWithJobOutput{}
324	req = c.newRequest(op, input, output)
325	return
326}
327
328// AssociateTargetsWithJob API operation for AWS IoT.
329//
330// Associates a group with a continuous job. The following criteria must be
331// met:
332//
333//    * The job must have been created with the targetSelection field set to
334//    "CONTINUOUS".
335//
336//    * The job status must currently be "IN_PROGRESS".
337//
338//    * The total number of targets associated with a job must not exceed 100.
339//
340// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
341// with awserr.Error's Code and Message methods to get detailed information about
342// the error.
343//
344// See the AWS API reference guide for AWS IoT's
345// API operation AssociateTargetsWithJob for usage and error information.
346//
347// Returned Error Types:
348//   * InvalidRequestException
349//   The request is not valid.
350//
351//   * ResourceNotFoundException
352//   The specified resource does not exist.
353//
354//   * LimitExceededException
355//   A limit has been exceeded.
356//
357//   * ThrottlingException
358//   The rate exceeds the limit.
359//
360//   * ServiceUnavailableException
361//   The service is temporarily unavailable.
362//
363func (c *IoT) AssociateTargetsWithJob(input *AssociateTargetsWithJobInput) (*AssociateTargetsWithJobOutput, error) {
364	req, out := c.AssociateTargetsWithJobRequest(input)
365	return out, req.Send()
366}
367
368// AssociateTargetsWithJobWithContext is the same as AssociateTargetsWithJob with the addition of
369// the ability to pass a context and additional request options.
370//
371// See AssociateTargetsWithJob for details on how to use this API operation.
372//
373// The context must be non-nil and will be used for request cancellation. If
374// the context is nil a panic will occur. In the future the SDK may create
375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
376// for more information on using Contexts.
377func (c *IoT) AssociateTargetsWithJobWithContext(ctx aws.Context, input *AssociateTargetsWithJobInput, opts ...request.Option) (*AssociateTargetsWithJobOutput, error) {
378	req, out := c.AssociateTargetsWithJobRequest(input)
379	req.SetContext(ctx)
380	req.ApplyOptions(opts...)
381	return out, req.Send()
382}
383
384const opAttachPolicy = "AttachPolicy"
385
386// AttachPolicyRequest generates a "aws/request.Request" representing the
387// client's request for the AttachPolicy operation. The "output" return
388// value will be populated with the request's response once the request completes
389// successfully.
390//
391// Use "Send" method on the returned Request to send the API call to the service.
392// the "output" return value is not valid until after Send returns without error.
393//
394// See AttachPolicy for more information on using the AttachPolicy
395// API call, and error handling.
396//
397// This method is useful when you want to inject custom logic or configuration
398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
399//
400//
401//    // Example sending a request using the AttachPolicyRequest method.
402//    req, resp := client.AttachPolicyRequest(params)
403//
404//    err := req.Send()
405//    if err == nil { // resp is now filled
406//        fmt.Println(resp)
407//    }
408func (c *IoT) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
409	op := &request.Operation{
410		Name:       opAttachPolicy,
411		HTTPMethod: "PUT",
412		HTTPPath:   "/target-policies/{policyName}",
413	}
414
415	if input == nil {
416		input = &AttachPolicyInput{}
417	}
418
419	output = &AttachPolicyOutput{}
420	req = c.newRequest(op, input, output)
421	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
422	return
423}
424
425// AttachPolicy API operation for AWS IoT.
426//
427// Attaches a policy to the specified target.
428//
429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
430// with awserr.Error's Code and Message methods to get detailed information about
431// the error.
432//
433// See the AWS API reference guide for AWS IoT's
434// API operation AttachPolicy for usage and error information.
435//
436// Returned Error Types:
437//   * ResourceNotFoundException
438//   The specified resource does not exist.
439//
440//   * InvalidRequestException
441//   The request is not valid.
442//
443//   * ThrottlingException
444//   The rate exceeds the limit.
445//
446//   * UnauthorizedException
447//   You are not authorized to perform this operation.
448//
449//   * ServiceUnavailableException
450//   The service is temporarily unavailable.
451//
452//   * InternalFailureException
453//   An unexpected error has occurred.
454//
455//   * LimitExceededException
456//   A limit has been exceeded.
457//
458func (c *IoT) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
459	req, out := c.AttachPolicyRequest(input)
460	return out, req.Send()
461}
462
463// AttachPolicyWithContext is the same as AttachPolicy with the addition of
464// the ability to pass a context and additional request options.
465//
466// See AttachPolicy for details on how to use this API operation.
467//
468// The context must be non-nil and will be used for request cancellation. If
469// the context is nil a panic will occur. In the future the SDK may create
470// sub-contexts for http.Requests. See https://golang.org/pkg/context/
471// for more information on using Contexts.
472func (c *IoT) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
473	req, out := c.AttachPolicyRequest(input)
474	req.SetContext(ctx)
475	req.ApplyOptions(opts...)
476	return out, req.Send()
477}
478
479const opAttachPrincipalPolicy = "AttachPrincipalPolicy"
480
481// AttachPrincipalPolicyRequest generates a "aws/request.Request" representing the
482// client's request for the AttachPrincipalPolicy operation. The "output" return
483// value will be populated with the request's response once the request completes
484// successfully.
485//
486// Use "Send" method on the returned Request to send the API call to the service.
487// the "output" return value is not valid until after Send returns without error.
488//
489// See AttachPrincipalPolicy for more information on using the AttachPrincipalPolicy
490// API call, and error handling.
491//
492// This method is useful when you want to inject custom logic or configuration
493// into the SDK's request lifecycle. Such as custom headers, or retry logic.
494//
495//
496//    // Example sending a request using the AttachPrincipalPolicyRequest method.
497//    req, resp := client.AttachPrincipalPolicyRequest(params)
498//
499//    err := req.Send()
500//    if err == nil { // resp is now filled
501//        fmt.Println(resp)
502//    }
503//
504// Deprecated: AttachPrincipalPolicy has been deprecated
505func (c *IoT) AttachPrincipalPolicyRequest(input *AttachPrincipalPolicyInput) (req *request.Request, output *AttachPrincipalPolicyOutput) {
506	if c.Client.Config.Logger != nil {
507		c.Client.Config.Logger.Log("This operation, AttachPrincipalPolicy, has been deprecated")
508	}
509	op := &request.Operation{
510		Name:       opAttachPrincipalPolicy,
511		HTTPMethod: "PUT",
512		HTTPPath:   "/principal-policies/{policyName}",
513	}
514
515	if input == nil {
516		input = &AttachPrincipalPolicyInput{}
517	}
518
519	output = &AttachPrincipalPolicyOutput{}
520	req = c.newRequest(op, input, output)
521	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
522	return
523}
524
525// AttachPrincipalPolicy API operation for AWS IoT.
526//
527// Attaches the specified policy to the specified principal (certificate or
528// other credential).
529//
530// Note: This API is deprecated. Please use AttachPolicy instead.
531//
532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
533// with awserr.Error's Code and Message methods to get detailed information about
534// the error.
535//
536// See the AWS API reference guide for AWS IoT's
537// API operation AttachPrincipalPolicy for usage and error information.
538//
539// Returned Error Types:
540//   * ResourceNotFoundException
541//   The specified resource does not exist.
542//
543//   * InvalidRequestException
544//   The request is not valid.
545//
546//   * ThrottlingException
547//   The rate exceeds the limit.
548//
549//   * UnauthorizedException
550//   You are not authorized to perform this operation.
551//
552//   * ServiceUnavailableException
553//   The service is temporarily unavailable.
554//
555//   * InternalFailureException
556//   An unexpected error has occurred.
557//
558//   * LimitExceededException
559//   A limit has been exceeded.
560//
561//
562// Deprecated: AttachPrincipalPolicy has been deprecated
563func (c *IoT) AttachPrincipalPolicy(input *AttachPrincipalPolicyInput) (*AttachPrincipalPolicyOutput, error) {
564	req, out := c.AttachPrincipalPolicyRequest(input)
565	return out, req.Send()
566}
567
568// AttachPrincipalPolicyWithContext is the same as AttachPrincipalPolicy with the addition of
569// the ability to pass a context and additional request options.
570//
571// See AttachPrincipalPolicy for details on how to use this API operation.
572//
573// The context must be non-nil and will be used for request cancellation. If
574// the context is nil a panic will occur. In the future the SDK may create
575// sub-contexts for http.Requests. See https://golang.org/pkg/context/
576// for more information on using Contexts.
577//
578// Deprecated: AttachPrincipalPolicyWithContext has been deprecated
579func (c *IoT) AttachPrincipalPolicyWithContext(ctx aws.Context, input *AttachPrincipalPolicyInput, opts ...request.Option) (*AttachPrincipalPolicyOutput, error) {
580	req, out := c.AttachPrincipalPolicyRequest(input)
581	req.SetContext(ctx)
582	req.ApplyOptions(opts...)
583	return out, req.Send()
584}
585
586const opAttachSecurityProfile = "AttachSecurityProfile"
587
588// AttachSecurityProfileRequest generates a "aws/request.Request" representing the
589// client's request for the AttachSecurityProfile operation. The "output" return
590// value will be populated with the request's response once the request completes
591// successfully.
592//
593// Use "Send" method on the returned Request to send the API call to the service.
594// the "output" return value is not valid until after Send returns without error.
595//
596// See AttachSecurityProfile for more information on using the AttachSecurityProfile
597// API call, and error handling.
598//
599// This method is useful when you want to inject custom logic or configuration
600// into the SDK's request lifecycle. Such as custom headers, or retry logic.
601//
602//
603//    // Example sending a request using the AttachSecurityProfileRequest method.
604//    req, resp := client.AttachSecurityProfileRequest(params)
605//
606//    err := req.Send()
607//    if err == nil { // resp is now filled
608//        fmt.Println(resp)
609//    }
610func (c *IoT) AttachSecurityProfileRequest(input *AttachSecurityProfileInput) (req *request.Request, output *AttachSecurityProfileOutput) {
611	op := &request.Operation{
612		Name:       opAttachSecurityProfile,
613		HTTPMethod: "PUT",
614		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
615	}
616
617	if input == nil {
618		input = &AttachSecurityProfileInput{}
619	}
620
621	output = &AttachSecurityProfileOutput{}
622	req = c.newRequest(op, input, output)
623	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
624	return
625}
626
627// AttachSecurityProfile API operation for AWS IoT.
628//
629// Associates a Device Defender security profile with a thing group or this
630// account. Each thing group or account can have up to five security profiles
631// associated with it.
632//
633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
634// with awserr.Error's Code and Message methods to get detailed information about
635// the error.
636//
637// See the AWS API reference guide for AWS IoT's
638// API operation AttachSecurityProfile for usage and error information.
639//
640// Returned Error Types:
641//   * InvalidRequestException
642//   The request is not valid.
643//
644//   * ResourceNotFoundException
645//   The specified resource does not exist.
646//
647//   * LimitExceededException
648//   A limit has been exceeded.
649//
650//   * VersionConflictException
651//   An exception thrown when the version of an entity specified with the expectedVersion
652//   parameter does not match the latest version in the system.
653//
654//   * ThrottlingException
655//   The rate exceeds the limit.
656//
657//   * InternalFailureException
658//   An unexpected error has occurred.
659//
660func (c *IoT) AttachSecurityProfile(input *AttachSecurityProfileInput) (*AttachSecurityProfileOutput, error) {
661	req, out := c.AttachSecurityProfileRequest(input)
662	return out, req.Send()
663}
664
665// AttachSecurityProfileWithContext is the same as AttachSecurityProfile with the addition of
666// the ability to pass a context and additional request options.
667//
668// See AttachSecurityProfile for details on how to use this API operation.
669//
670// The context must be non-nil and will be used for request cancellation. If
671// the context is nil a panic will occur. In the future the SDK may create
672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
673// for more information on using Contexts.
674func (c *IoT) AttachSecurityProfileWithContext(ctx aws.Context, input *AttachSecurityProfileInput, opts ...request.Option) (*AttachSecurityProfileOutput, error) {
675	req, out := c.AttachSecurityProfileRequest(input)
676	req.SetContext(ctx)
677	req.ApplyOptions(opts...)
678	return out, req.Send()
679}
680
681const opAttachThingPrincipal = "AttachThingPrincipal"
682
683// AttachThingPrincipalRequest generates a "aws/request.Request" representing the
684// client's request for the AttachThingPrincipal operation. The "output" return
685// value will be populated with the request's response once the request completes
686// successfully.
687//
688// Use "Send" method on the returned Request to send the API call to the service.
689// the "output" return value is not valid until after Send returns without error.
690//
691// See AttachThingPrincipal for more information on using the AttachThingPrincipal
692// API call, and error handling.
693//
694// This method is useful when you want to inject custom logic or configuration
695// into the SDK's request lifecycle. Such as custom headers, or retry logic.
696//
697//
698//    // Example sending a request using the AttachThingPrincipalRequest method.
699//    req, resp := client.AttachThingPrincipalRequest(params)
700//
701//    err := req.Send()
702//    if err == nil { // resp is now filled
703//        fmt.Println(resp)
704//    }
705func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req *request.Request, output *AttachThingPrincipalOutput) {
706	op := &request.Operation{
707		Name:       opAttachThingPrincipal,
708		HTTPMethod: "PUT",
709		HTTPPath:   "/things/{thingName}/principals",
710	}
711
712	if input == nil {
713		input = &AttachThingPrincipalInput{}
714	}
715
716	output = &AttachThingPrincipalOutput{}
717	req = c.newRequest(op, input, output)
718	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
719	return
720}
721
722// AttachThingPrincipal API operation for AWS IoT.
723//
724// Attaches the specified principal to the specified thing. A principal can
725// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
726// or federated identities.
727//
728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
729// with awserr.Error's Code and Message methods to get detailed information about
730// the error.
731//
732// See the AWS API reference guide for AWS IoT's
733// API operation AttachThingPrincipal for usage and error information.
734//
735// Returned Error Types:
736//   * ResourceNotFoundException
737//   The specified resource does not exist.
738//
739//   * InvalidRequestException
740//   The request is not valid.
741//
742//   * ThrottlingException
743//   The rate exceeds the limit.
744//
745//   * UnauthorizedException
746//   You are not authorized to perform this operation.
747//
748//   * ServiceUnavailableException
749//   The service is temporarily unavailable.
750//
751//   * InternalFailureException
752//   An unexpected error has occurred.
753//
754func (c *IoT) AttachThingPrincipal(input *AttachThingPrincipalInput) (*AttachThingPrincipalOutput, error) {
755	req, out := c.AttachThingPrincipalRequest(input)
756	return out, req.Send()
757}
758
759// AttachThingPrincipalWithContext is the same as AttachThingPrincipal with the addition of
760// the ability to pass a context and additional request options.
761//
762// See AttachThingPrincipal for details on how to use this API operation.
763//
764// The context must be non-nil and will be used for request cancellation. If
765// the context is nil a panic will occur. In the future the SDK may create
766// sub-contexts for http.Requests. See https://golang.org/pkg/context/
767// for more information on using Contexts.
768func (c *IoT) AttachThingPrincipalWithContext(ctx aws.Context, input *AttachThingPrincipalInput, opts ...request.Option) (*AttachThingPrincipalOutput, error) {
769	req, out := c.AttachThingPrincipalRequest(input)
770	req.SetContext(ctx)
771	req.ApplyOptions(opts...)
772	return out, req.Send()
773}
774
775const opCancelAuditMitigationActionsTask = "CancelAuditMitigationActionsTask"
776
777// CancelAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
778// client's request for the CancelAuditMitigationActionsTask operation. The "output" return
779// value will be populated with the request's response once the request completes
780// successfully.
781//
782// Use "Send" method on the returned Request to send the API call to the service.
783// the "output" return value is not valid until after Send returns without error.
784//
785// See CancelAuditMitigationActionsTask for more information on using the CancelAuditMitigationActionsTask
786// API call, and error handling.
787//
788// This method is useful when you want to inject custom logic or configuration
789// into the SDK's request lifecycle. Such as custom headers, or retry logic.
790//
791//
792//    // Example sending a request using the CancelAuditMitigationActionsTaskRequest method.
793//    req, resp := client.CancelAuditMitigationActionsTaskRequest(params)
794//
795//    err := req.Send()
796//    if err == nil { // resp is now filled
797//        fmt.Println(resp)
798//    }
799func (c *IoT) CancelAuditMitigationActionsTaskRequest(input *CancelAuditMitigationActionsTaskInput) (req *request.Request, output *CancelAuditMitigationActionsTaskOutput) {
800	op := &request.Operation{
801		Name:       opCancelAuditMitigationActionsTask,
802		HTTPMethod: "PUT",
803		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}/cancel",
804	}
805
806	if input == nil {
807		input = &CancelAuditMitigationActionsTaskInput{}
808	}
809
810	output = &CancelAuditMitigationActionsTaskOutput{}
811	req = c.newRequest(op, input, output)
812	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
813	return
814}
815
816// CancelAuditMitigationActionsTask API operation for AWS IoT.
817//
818// Cancels a mitigation action task that is in progress. If the task is not
819// in progress, an InvalidRequestException occurs.
820//
821// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
822// with awserr.Error's Code and Message methods to get detailed information about
823// the error.
824//
825// See the AWS API reference guide for AWS IoT's
826// API operation CancelAuditMitigationActionsTask for usage and error information.
827//
828// Returned Error Types:
829//   * ResourceNotFoundException
830//   The specified resource does not exist.
831//
832//   * InvalidRequestException
833//   The request is not valid.
834//
835//   * ThrottlingException
836//   The rate exceeds the limit.
837//
838//   * InternalFailureException
839//   An unexpected error has occurred.
840//
841func (c *IoT) CancelAuditMitigationActionsTask(input *CancelAuditMitigationActionsTaskInput) (*CancelAuditMitigationActionsTaskOutput, error) {
842	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
843	return out, req.Send()
844}
845
846// CancelAuditMitigationActionsTaskWithContext is the same as CancelAuditMitigationActionsTask with the addition of
847// the ability to pass a context and additional request options.
848//
849// See CancelAuditMitigationActionsTask for details on how to use this API operation.
850//
851// The context must be non-nil and will be used for request cancellation. If
852// the context is nil a panic will occur. In the future the SDK may create
853// sub-contexts for http.Requests. See https://golang.org/pkg/context/
854// for more information on using Contexts.
855func (c *IoT) CancelAuditMitigationActionsTaskWithContext(ctx aws.Context, input *CancelAuditMitigationActionsTaskInput, opts ...request.Option) (*CancelAuditMitigationActionsTaskOutput, error) {
856	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
857	req.SetContext(ctx)
858	req.ApplyOptions(opts...)
859	return out, req.Send()
860}
861
862const opCancelAuditTask = "CancelAuditTask"
863
864// CancelAuditTaskRequest generates a "aws/request.Request" representing the
865// client's request for the CancelAuditTask operation. The "output" return
866// value will be populated with the request's response once the request completes
867// successfully.
868//
869// Use "Send" method on the returned Request to send the API call to the service.
870// the "output" return value is not valid until after Send returns without error.
871//
872// See CancelAuditTask for more information on using the CancelAuditTask
873// API call, and error handling.
874//
875// This method is useful when you want to inject custom logic or configuration
876// into the SDK's request lifecycle. Such as custom headers, or retry logic.
877//
878//
879//    // Example sending a request using the CancelAuditTaskRequest method.
880//    req, resp := client.CancelAuditTaskRequest(params)
881//
882//    err := req.Send()
883//    if err == nil { // resp is now filled
884//        fmt.Println(resp)
885//    }
886func (c *IoT) CancelAuditTaskRequest(input *CancelAuditTaskInput) (req *request.Request, output *CancelAuditTaskOutput) {
887	op := &request.Operation{
888		Name:       opCancelAuditTask,
889		HTTPMethod: "PUT",
890		HTTPPath:   "/audit/tasks/{taskId}/cancel",
891	}
892
893	if input == nil {
894		input = &CancelAuditTaskInput{}
895	}
896
897	output = &CancelAuditTaskOutput{}
898	req = c.newRequest(op, input, output)
899	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
900	return
901}
902
903// CancelAuditTask API operation for AWS IoT.
904//
905// Cancels an audit that is in progress. The audit can be either scheduled or
906// on-demand. If the audit is not in progress, an "InvalidRequestException"
907// occurs.
908//
909// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
910// with awserr.Error's Code and Message methods to get detailed information about
911// the error.
912//
913// See the AWS API reference guide for AWS IoT's
914// API operation CancelAuditTask for usage and error information.
915//
916// Returned Error Types:
917//   * ResourceNotFoundException
918//   The specified resource does not exist.
919//
920//   * InvalidRequestException
921//   The request is not valid.
922//
923//   * ThrottlingException
924//   The rate exceeds the limit.
925//
926//   * InternalFailureException
927//   An unexpected error has occurred.
928//
929func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
930	req, out := c.CancelAuditTaskRequest(input)
931	return out, req.Send()
932}
933
934// CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
935// the ability to pass a context and additional request options.
936//
937// See CancelAuditTask for details on how to use this API operation.
938//
939// The context must be non-nil and will be used for request cancellation. If
940// the context is nil a panic will occur. In the future the SDK may create
941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
942// for more information on using Contexts.
943func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
944	req, out := c.CancelAuditTaskRequest(input)
945	req.SetContext(ctx)
946	req.ApplyOptions(opts...)
947	return out, req.Send()
948}
949
950const opCancelCertificateTransfer = "CancelCertificateTransfer"
951
952// CancelCertificateTransferRequest generates a "aws/request.Request" representing the
953// client's request for the CancelCertificateTransfer operation. The "output" return
954// value will be populated with the request's response once the request completes
955// successfully.
956//
957// Use "Send" method on the returned Request to send the API call to the service.
958// the "output" return value is not valid until after Send returns without error.
959//
960// See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
961// API call, and error handling.
962//
963// This method is useful when you want to inject custom logic or configuration
964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
965//
966//
967//    // Example sending a request using the CancelCertificateTransferRequest method.
968//    req, resp := client.CancelCertificateTransferRequest(params)
969//
970//    err := req.Send()
971//    if err == nil { // resp is now filled
972//        fmt.Println(resp)
973//    }
974func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
975	op := &request.Operation{
976		Name:       opCancelCertificateTransfer,
977		HTTPMethod: "PATCH",
978		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
979	}
980
981	if input == nil {
982		input = &CancelCertificateTransferInput{}
983	}
984
985	output = &CancelCertificateTransferOutput{}
986	req = c.newRequest(op, input, output)
987	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
988	return
989}
990
991// CancelCertificateTransfer API operation for AWS IoT.
992//
993// Cancels a pending transfer for the specified certificate.
994//
995// Note Only the transfer source account can use this operation to cancel a
996// transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
997// After transfer, AWS IoT returns the certificate to the source account in
998// the INACTIVE state. After the destination account has accepted the transfer,
999// the transfer cannot be cancelled.
1000//
1001// After a certificate transfer is cancelled, the status of the certificate
1002// changes from PENDING_TRANSFER to INACTIVE.
1003//
1004// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1005// with awserr.Error's Code and Message methods to get detailed information about
1006// the error.
1007//
1008// See the AWS API reference guide for AWS IoT's
1009// API operation CancelCertificateTransfer for usage and error information.
1010//
1011// Returned Error Types:
1012//   * ResourceNotFoundException
1013//   The specified resource does not exist.
1014//
1015//   * TransferAlreadyCompletedException
1016//   You can't revert the certificate transfer because the transfer is already
1017//   complete.
1018//
1019//   * InvalidRequestException
1020//   The request is not valid.
1021//
1022//   * ThrottlingException
1023//   The rate exceeds the limit.
1024//
1025//   * UnauthorizedException
1026//   You are not authorized to perform this operation.
1027//
1028//   * ServiceUnavailableException
1029//   The service is temporarily unavailable.
1030//
1031//   * InternalFailureException
1032//   An unexpected error has occurred.
1033//
1034func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
1035	req, out := c.CancelCertificateTransferRequest(input)
1036	return out, req.Send()
1037}
1038
1039// CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
1040// the ability to pass a context and additional request options.
1041//
1042// See CancelCertificateTransfer for details on how to use this API operation.
1043//
1044// The context must be non-nil and will be used for request cancellation. If
1045// the context is nil a panic will occur. In the future the SDK may create
1046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1047// for more information on using Contexts.
1048func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
1049	req, out := c.CancelCertificateTransferRequest(input)
1050	req.SetContext(ctx)
1051	req.ApplyOptions(opts...)
1052	return out, req.Send()
1053}
1054
1055const opCancelJob = "CancelJob"
1056
1057// CancelJobRequest generates a "aws/request.Request" representing the
1058// client's request for the CancelJob operation. The "output" return
1059// value will be populated with the request's response once the request completes
1060// successfully.
1061//
1062// Use "Send" method on the returned Request to send the API call to the service.
1063// the "output" return value is not valid until after Send returns without error.
1064//
1065// See CancelJob for more information on using the CancelJob
1066// API call, and error handling.
1067//
1068// This method is useful when you want to inject custom logic or configuration
1069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1070//
1071//
1072//    // Example sending a request using the CancelJobRequest method.
1073//    req, resp := client.CancelJobRequest(params)
1074//
1075//    err := req.Send()
1076//    if err == nil { // resp is now filled
1077//        fmt.Println(resp)
1078//    }
1079func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
1080	op := &request.Operation{
1081		Name:       opCancelJob,
1082		HTTPMethod: "PUT",
1083		HTTPPath:   "/jobs/{jobId}/cancel",
1084	}
1085
1086	if input == nil {
1087		input = &CancelJobInput{}
1088	}
1089
1090	output = &CancelJobOutput{}
1091	req = c.newRequest(op, input, output)
1092	return
1093}
1094
1095// CancelJob API operation for AWS IoT.
1096//
1097// Cancels a job.
1098//
1099// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1100// with awserr.Error's Code and Message methods to get detailed information about
1101// the error.
1102//
1103// See the AWS API reference guide for AWS IoT's
1104// API operation CancelJob for usage and error information.
1105//
1106// Returned Error Types:
1107//   * InvalidRequestException
1108//   The request is not valid.
1109//
1110//   * ResourceNotFoundException
1111//   The specified resource does not exist.
1112//
1113//   * ThrottlingException
1114//   The rate exceeds the limit.
1115//
1116//   * ServiceUnavailableException
1117//   The service is temporarily unavailable.
1118//
1119func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
1120	req, out := c.CancelJobRequest(input)
1121	return out, req.Send()
1122}
1123
1124// CancelJobWithContext is the same as CancelJob with the addition of
1125// the ability to pass a context and additional request options.
1126//
1127// See CancelJob for details on how to use this API operation.
1128//
1129// The context must be non-nil and will be used for request cancellation. If
1130// the context is nil a panic will occur. In the future the SDK may create
1131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1132// for more information on using Contexts.
1133func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
1134	req, out := c.CancelJobRequest(input)
1135	req.SetContext(ctx)
1136	req.ApplyOptions(opts...)
1137	return out, req.Send()
1138}
1139
1140const opCancelJobExecution = "CancelJobExecution"
1141
1142// CancelJobExecutionRequest generates a "aws/request.Request" representing the
1143// client's request for the CancelJobExecution operation. The "output" return
1144// value will be populated with the request's response once the request completes
1145// successfully.
1146//
1147// Use "Send" method on the returned Request to send the API call to the service.
1148// the "output" return value is not valid until after Send returns without error.
1149//
1150// See CancelJobExecution for more information on using the CancelJobExecution
1151// API call, and error handling.
1152//
1153// This method is useful when you want to inject custom logic or configuration
1154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1155//
1156//
1157//    // Example sending a request using the CancelJobExecutionRequest method.
1158//    req, resp := client.CancelJobExecutionRequest(params)
1159//
1160//    err := req.Send()
1161//    if err == nil { // resp is now filled
1162//        fmt.Println(resp)
1163//    }
1164func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
1165	op := &request.Operation{
1166		Name:       opCancelJobExecution,
1167		HTTPMethod: "PUT",
1168		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
1169	}
1170
1171	if input == nil {
1172		input = &CancelJobExecutionInput{}
1173	}
1174
1175	output = &CancelJobExecutionOutput{}
1176	req = c.newRequest(op, input, output)
1177	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1178	return
1179}
1180
1181// CancelJobExecution API operation for AWS IoT.
1182//
1183// Cancels the execution of a job for a given thing.
1184//
1185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1186// with awserr.Error's Code and Message methods to get detailed information about
1187// the error.
1188//
1189// See the AWS API reference guide for AWS IoT's
1190// API operation CancelJobExecution for usage and error information.
1191//
1192// Returned Error Types:
1193//   * InvalidRequestException
1194//   The request is not valid.
1195//
1196//   * InvalidStateTransitionException
1197//   An attempt was made to change to an invalid state, for example by deleting
1198//   a job or a job execution which is "IN_PROGRESS" without setting the force
1199//   parameter.
1200//
1201//   * ResourceNotFoundException
1202//   The specified resource does not exist.
1203//
1204//   * ThrottlingException
1205//   The rate exceeds the limit.
1206//
1207//   * ServiceUnavailableException
1208//   The service is temporarily unavailable.
1209//
1210//   * VersionConflictException
1211//   An exception thrown when the version of an entity specified with the expectedVersion
1212//   parameter does not match the latest version in the system.
1213//
1214func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
1215	req, out := c.CancelJobExecutionRequest(input)
1216	return out, req.Send()
1217}
1218
1219// CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
1220// the ability to pass a context and additional request options.
1221//
1222// See CancelJobExecution for details on how to use this API operation.
1223//
1224// The context must be non-nil and will be used for request cancellation. If
1225// the context is nil a panic will occur. In the future the SDK may create
1226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1227// for more information on using Contexts.
1228func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
1229	req, out := c.CancelJobExecutionRequest(input)
1230	req.SetContext(ctx)
1231	req.ApplyOptions(opts...)
1232	return out, req.Send()
1233}
1234
1235const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
1236
1237// ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
1238// client's request for the ClearDefaultAuthorizer operation. The "output" return
1239// value will be populated with the request's response once the request completes
1240// successfully.
1241//
1242// Use "Send" method on the returned Request to send the API call to the service.
1243// the "output" return value is not valid until after Send returns without error.
1244//
1245// See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
1246// API call, and error handling.
1247//
1248// This method is useful when you want to inject custom logic or configuration
1249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1250//
1251//
1252//    // Example sending a request using the ClearDefaultAuthorizerRequest method.
1253//    req, resp := client.ClearDefaultAuthorizerRequest(params)
1254//
1255//    err := req.Send()
1256//    if err == nil { // resp is now filled
1257//        fmt.Println(resp)
1258//    }
1259func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
1260	op := &request.Operation{
1261		Name:       opClearDefaultAuthorizer,
1262		HTTPMethod: "DELETE",
1263		HTTPPath:   "/default-authorizer",
1264	}
1265
1266	if input == nil {
1267		input = &ClearDefaultAuthorizerInput{}
1268	}
1269
1270	output = &ClearDefaultAuthorizerOutput{}
1271	req = c.newRequest(op, input, output)
1272	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1273	return
1274}
1275
1276// ClearDefaultAuthorizer API operation for AWS IoT.
1277//
1278// Clears the default authorizer.
1279//
1280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1281// with awserr.Error's Code and Message methods to get detailed information about
1282// the error.
1283//
1284// See the AWS API reference guide for AWS IoT's
1285// API operation ClearDefaultAuthorizer for usage and error information.
1286//
1287// Returned Error Types:
1288//   * ResourceNotFoundException
1289//   The specified resource does not exist.
1290//
1291//   * InvalidRequestException
1292//   The request is not valid.
1293//
1294//   * ThrottlingException
1295//   The rate exceeds the limit.
1296//
1297//   * UnauthorizedException
1298//   You are not authorized to perform this operation.
1299//
1300//   * ServiceUnavailableException
1301//   The service is temporarily unavailable.
1302//
1303//   * InternalFailureException
1304//   An unexpected error has occurred.
1305//
1306func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
1307	req, out := c.ClearDefaultAuthorizerRequest(input)
1308	return out, req.Send()
1309}
1310
1311// ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
1312// the ability to pass a context and additional request options.
1313//
1314// See ClearDefaultAuthorizer for details on how to use this API operation.
1315//
1316// The context must be non-nil and will be used for request cancellation. If
1317// the context is nil a panic will occur. In the future the SDK may create
1318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1319// for more information on using Contexts.
1320func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
1321	req, out := c.ClearDefaultAuthorizerRequest(input)
1322	req.SetContext(ctx)
1323	req.ApplyOptions(opts...)
1324	return out, req.Send()
1325}
1326
1327const opConfirmTopicRuleDestination = "ConfirmTopicRuleDestination"
1328
1329// ConfirmTopicRuleDestinationRequest generates a "aws/request.Request" representing the
1330// client's request for the ConfirmTopicRuleDestination operation. The "output" return
1331// value will be populated with the request's response once the request completes
1332// successfully.
1333//
1334// Use "Send" method on the returned Request to send the API call to the service.
1335// the "output" return value is not valid until after Send returns without error.
1336//
1337// See ConfirmTopicRuleDestination for more information on using the ConfirmTopicRuleDestination
1338// API call, and error handling.
1339//
1340// This method is useful when you want to inject custom logic or configuration
1341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1342//
1343//
1344//    // Example sending a request using the ConfirmTopicRuleDestinationRequest method.
1345//    req, resp := client.ConfirmTopicRuleDestinationRequest(params)
1346//
1347//    err := req.Send()
1348//    if err == nil { // resp is now filled
1349//        fmt.Println(resp)
1350//    }
1351func (c *IoT) ConfirmTopicRuleDestinationRequest(input *ConfirmTopicRuleDestinationInput) (req *request.Request, output *ConfirmTopicRuleDestinationOutput) {
1352	op := &request.Operation{
1353		Name:       opConfirmTopicRuleDestination,
1354		HTTPMethod: "GET",
1355		HTTPPath:   "/confirmdestination/{confirmationToken+}",
1356	}
1357
1358	if input == nil {
1359		input = &ConfirmTopicRuleDestinationInput{}
1360	}
1361
1362	output = &ConfirmTopicRuleDestinationOutput{}
1363	req = c.newRequest(op, input, output)
1364	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1365	return
1366}
1367
1368// ConfirmTopicRuleDestination API operation for AWS IoT.
1369//
1370// Confirms a topic rule destination. When you create a rule requiring a destination,
1371// AWS IoT sends a confirmation message to the endpoint or base address you
1372// specify. The message includes a token which you pass back when calling ConfirmTopicRuleDestination
1373// to confirm that you own or have access to the endpoint.
1374//
1375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1376// with awserr.Error's Code and Message methods to get detailed information about
1377// the error.
1378//
1379// See the AWS API reference guide for AWS IoT's
1380// API operation ConfirmTopicRuleDestination for usage and error information.
1381//
1382// Returned Error Types:
1383//   * InternalException
1384//   An unexpected error has occurred.
1385//
1386//   * InvalidRequestException
1387//   The request is not valid.
1388//
1389//   * ServiceUnavailableException
1390//   The service is temporarily unavailable.
1391//
1392//   * UnauthorizedException
1393//   You are not authorized to perform this operation.
1394//
1395//   * ConflictingResourceUpdateException
1396//   A conflicting resource update exception. This exception is thrown when two
1397//   pending updates cause a conflict.
1398//
1399func (c *IoT) ConfirmTopicRuleDestination(input *ConfirmTopicRuleDestinationInput) (*ConfirmTopicRuleDestinationOutput, error) {
1400	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1401	return out, req.Send()
1402}
1403
1404// ConfirmTopicRuleDestinationWithContext is the same as ConfirmTopicRuleDestination with the addition of
1405// the ability to pass a context and additional request options.
1406//
1407// See ConfirmTopicRuleDestination for details on how to use this API operation.
1408//
1409// The context must be non-nil and will be used for request cancellation. If
1410// the context is nil a panic will occur. In the future the SDK may create
1411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1412// for more information on using Contexts.
1413func (c *IoT) ConfirmTopicRuleDestinationWithContext(ctx aws.Context, input *ConfirmTopicRuleDestinationInput, opts ...request.Option) (*ConfirmTopicRuleDestinationOutput, error) {
1414	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1415	req.SetContext(ctx)
1416	req.ApplyOptions(opts...)
1417	return out, req.Send()
1418}
1419
1420const opCreateAuthorizer = "CreateAuthorizer"
1421
1422// CreateAuthorizerRequest generates a "aws/request.Request" representing the
1423// client's request for the CreateAuthorizer operation. The "output" return
1424// value will be populated with the request's response once the request completes
1425// successfully.
1426//
1427// Use "Send" method on the returned Request to send the API call to the service.
1428// the "output" return value is not valid until after Send returns without error.
1429//
1430// See CreateAuthorizer for more information on using the CreateAuthorizer
1431// API call, and error handling.
1432//
1433// This method is useful when you want to inject custom logic or configuration
1434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1435//
1436//
1437//    // Example sending a request using the CreateAuthorizerRequest method.
1438//    req, resp := client.CreateAuthorizerRequest(params)
1439//
1440//    err := req.Send()
1441//    if err == nil { // resp is now filled
1442//        fmt.Println(resp)
1443//    }
1444func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
1445	op := &request.Operation{
1446		Name:       opCreateAuthorizer,
1447		HTTPMethod: "POST",
1448		HTTPPath:   "/authorizer/{authorizerName}",
1449	}
1450
1451	if input == nil {
1452		input = &CreateAuthorizerInput{}
1453	}
1454
1455	output = &CreateAuthorizerOutput{}
1456	req = c.newRequest(op, input, output)
1457	return
1458}
1459
1460// CreateAuthorizer API operation for AWS IoT.
1461//
1462// Creates an authorizer.
1463//
1464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1465// with awserr.Error's Code and Message methods to get detailed information about
1466// the error.
1467//
1468// See the AWS API reference guide for AWS IoT's
1469// API operation CreateAuthorizer for usage and error information.
1470//
1471// Returned Error Types:
1472//   * ResourceAlreadyExistsException
1473//   The resource already exists.
1474//
1475//   * InvalidRequestException
1476//   The request is not valid.
1477//
1478//   * LimitExceededException
1479//   A limit has been exceeded.
1480//
1481//   * ThrottlingException
1482//   The rate exceeds the limit.
1483//
1484//   * UnauthorizedException
1485//   You are not authorized to perform this operation.
1486//
1487//   * ServiceUnavailableException
1488//   The service is temporarily unavailable.
1489//
1490//   * InternalFailureException
1491//   An unexpected error has occurred.
1492//
1493func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
1494	req, out := c.CreateAuthorizerRequest(input)
1495	return out, req.Send()
1496}
1497
1498// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
1499// the ability to pass a context and additional request options.
1500//
1501// See CreateAuthorizer for details on how to use this API operation.
1502//
1503// The context must be non-nil and will be used for request cancellation. If
1504// the context is nil a panic will occur. In the future the SDK may create
1505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1506// for more information on using Contexts.
1507func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
1508	req, out := c.CreateAuthorizerRequest(input)
1509	req.SetContext(ctx)
1510	req.ApplyOptions(opts...)
1511	return out, req.Send()
1512}
1513
1514const opCreateBillingGroup = "CreateBillingGroup"
1515
1516// CreateBillingGroupRequest generates a "aws/request.Request" representing the
1517// client's request for the CreateBillingGroup operation. The "output" return
1518// value will be populated with the request's response once the request completes
1519// successfully.
1520//
1521// Use "Send" method on the returned Request to send the API call to the service.
1522// the "output" return value is not valid until after Send returns without error.
1523//
1524// See CreateBillingGroup for more information on using the CreateBillingGroup
1525// API call, and error handling.
1526//
1527// This method is useful when you want to inject custom logic or configuration
1528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1529//
1530//
1531//    // Example sending a request using the CreateBillingGroupRequest method.
1532//    req, resp := client.CreateBillingGroupRequest(params)
1533//
1534//    err := req.Send()
1535//    if err == nil { // resp is now filled
1536//        fmt.Println(resp)
1537//    }
1538func (c *IoT) CreateBillingGroupRequest(input *CreateBillingGroupInput) (req *request.Request, output *CreateBillingGroupOutput) {
1539	op := &request.Operation{
1540		Name:       opCreateBillingGroup,
1541		HTTPMethod: "POST",
1542		HTTPPath:   "/billing-groups/{billingGroupName}",
1543	}
1544
1545	if input == nil {
1546		input = &CreateBillingGroupInput{}
1547	}
1548
1549	output = &CreateBillingGroupOutput{}
1550	req = c.newRequest(op, input, output)
1551	return
1552}
1553
1554// CreateBillingGroup API operation for AWS IoT.
1555//
1556// Creates a billing group.
1557//
1558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1559// with awserr.Error's Code and Message methods to get detailed information about
1560// the error.
1561//
1562// See the AWS API reference guide for AWS IoT's
1563// API operation CreateBillingGroup for usage and error information.
1564//
1565// Returned Error Types:
1566//   * InvalidRequestException
1567//   The request is not valid.
1568//
1569//   * ResourceAlreadyExistsException
1570//   The resource already exists.
1571//
1572//   * ThrottlingException
1573//   The rate exceeds the limit.
1574//
1575//   * InternalFailureException
1576//   An unexpected error has occurred.
1577//
1578func (c *IoT) CreateBillingGroup(input *CreateBillingGroupInput) (*CreateBillingGroupOutput, error) {
1579	req, out := c.CreateBillingGroupRequest(input)
1580	return out, req.Send()
1581}
1582
1583// CreateBillingGroupWithContext is the same as CreateBillingGroup with the addition of
1584// the ability to pass a context and additional request options.
1585//
1586// See CreateBillingGroup for details on how to use this API operation.
1587//
1588// The context must be non-nil and will be used for request cancellation. If
1589// the context is nil a panic will occur. In the future the SDK may create
1590// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1591// for more information on using Contexts.
1592func (c *IoT) CreateBillingGroupWithContext(ctx aws.Context, input *CreateBillingGroupInput, opts ...request.Option) (*CreateBillingGroupOutput, error) {
1593	req, out := c.CreateBillingGroupRequest(input)
1594	req.SetContext(ctx)
1595	req.ApplyOptions(opts...)
1596	return out, req.Send()
1597}
1598
1599const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
1600
1601// CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
1602// client's request for the CreateCertificateFromCsr operation. The "output" return
1603// value will be populated with the request's response once the request completes
1604// successfully.
1605//
1606// Use "Send" method on the returned Request to send the API call to the service.
1607// the "output" return value is not valid until after Send returns without error.
1608//
1609// See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
1610// API call, and error handling.
1611//
1612// This method is useful when you want to inject custom logic or configuration
1613// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1614//
1615//
1616//    // Example sending a request using the CreateCertificateFromCsrRequest method.
1617//    req, resp := client.CreateCertificateFromCsrRequest(params)
1618//
1619//    err := req.Send()
1620//    if err == nil { // resp is now filled
1621//        fmt.Println(resp)
1622//    }
1623func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
1624	op := &request.Operation{
1625		Name:       opCreateCertificateFromCsr,
1626		HTTPMethod: "POST",
1627		HTTPPath:   "/certificates",
1628	}
1629
1630	if input == nil {
1631		input = &CreateCertificateFromCsrInput{}
1632	}
1633
1634	output = &CreateCertificateFromCsrOutput{}
1635	req = c.newRequest(op, input, output)
1636	return
1637}
1638
1639// CreateCertificateFromCsr API operation for AWS IoT.
1640//
1641// Creates an X.509 certificate using the specified certificate signing request.
1642//
1643// Note: The CSR must include a public key that is either an RSA key with a
1644// length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
1645// curves.
1646//
1647// Note: Reusing the same certificate signing request (CSR) results in a distinct
1648// certificate.
1649//
1650// You can create multiple certificates in a batch by creating a directory,
1651// copying multiple .csr files into that directory, and then specifying that
1652// directory on the command line. The following commands show how to create
1653// a batch of certificates given a batch of CSRs.
1654//
1655// Assuming a set of CSRs are located inside of the directory my-csr-directory:
1656//
1657// On Linux and OS X, the command is:
1658//
1659// $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
1660// --certificate-signing-request file://my-csr-directory/{}
1661//
1662// This command lists all of the CSRs in my-csr-directory and pipes each CSR
1663// file name to the aws iot create-certificate-from-csr AWS CLI command to create
1664// a certificate for the corresponding CSR.
1665//
1666// The aws iot create-certificate-from-csr part of the command can also be run
1667// in parallel to speed up the certificate creation process:
1668//
1669// $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
1670// --certificate-signing-request file://my-csr-directory/{}
1671//
1672// On Windows PowerShell, the command to create certificates for all CSRs in
1673// my-csr-directory is:
1674//
1675// > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
1676// file://my-csr-directory/$_}
1677//
1678// On a Windows command prompt, the command to create certificates for all CSRs
1679// in my-csr-directory is:
1680//
1681// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
1682// --certificate-signing-request file://@path"
1683//
1684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1685// with awserr.Error's Code and Message methods to get detailed information about
1686// the error.
1687//
1688// See the AWS API reference guide for AWS IoT's
1689// API operation CreateCertificateFromCsr for usage and error information.
1690//
1691// Returned Error Types:
1692//   * InvalidRequestException
1693//   The request is not valid.
1694//
1695//   * ThrottlingException
1696//   The rate exceeds the limit.
1697//
1698//   * UnauthorizedException
1699//   You are not authorized to perform this operation.
1700//
1701//   * ServiceUnavailableException
1702//   The service is temporarily unavailable.
1703//
1704//   * InternalFailureException
1705//   An unexpected error has occurred.
1706//
1707func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
1708	req, out := c.CreateCertificateFromCsrRequest(input)
1709	return out, req.Send()
1710}
1711
1712// CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
1713// the ability to pass a context and additional request options.
1714//
1715// See CreateCertificateFromCsr for details on how to use this API operation.
1716//
1717// The context must be non-nil and will be used for request cancellation. If
1718// the context is nil a panic will occur. In the future the SDK may create
1719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1720// for more information on using Contexts.
1721func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
1722	req, out := c.CreateCertificateFromCsrRequest(input)
1723	req.SetContext(ctx)
1724	req.ApplyOptions(opts...)
1725	return out, req.Send()
1726}
1727
1728const opCreateDimension = "CreateDimension"
1729
1730// CreateDimensionRequest generates a "aws/request.Request" representing the
1731// client's request for the CreateDimension operation. The "output" return
1732// value will be populated with the request's response once the request completes
1733// successfully.
1734//
1735// Use "Send" method on the returned Request to send the API call to the service.
1736// the "output" return value is not valid until after Send returns without error.
1737//
1738// See CreateDimension for more information on using the CreateDimension
1739// API call, and error handling.
1740//
1741// This method is useful when you want to inject custom logic or configuration
1742// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1743//
1744//
1745//    // Example sending a request using the CreateDimensionRequest method.
1746//    req, resp := client.CreateDimensionRequest(params)
1747//
1748//    err := req.Send()
1749//    if err == nil { // resp is now filled
1750//        fmt.Println(resp)
1751//    }
1752func (c *IoT) CreateDimensionRequest(input *CreateDimensionInput) (req *request.Request, output *CreateDimensionOutput) {
1753	op := &request.Operation{
1754		Name:       opCreateDimension,
1755		HTTPMethod: "POST",
1756		HTTPPath:   "/dimensions/{name}",
1757	}
1758
1759	if input == nil {
1760		input = &CreateDimensionInput{}
1761	}
1762
1763	output = &CreateDimensionOutput{}
1764	req = c.newRequest(op, input, output)
1765	return
1766}
1767
1768// CreateDimension API operation for AWS IoT.
1769//
1770// Create a dimension that you can use to limit the scope of a metric used in
1771// a security profile for AWS IoT Device Defender. For example, using a TOPIC_FILTER
1772// dimension, you can narrow down the scope of the metric only to MQTT topics
1773// whose name match the pattern specified in the dimension.
1774//
1775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1776// with awserr.Error's Code and Message methods to get detailed information about
1777// the error.
1778//
1779// See the AWS API reference guide for AWS IoT's
1780// API operation CreateDimension for usage and error information.
1781//
1782// Returned Error Types:
1783//   * InternalFailureException
1784//   An unexpected error has occurred.
1785//
1786//   * InvalidRequestException
1787//   The request is not valid.
1788//
1789//   * LimitExceededException
1790//   A limit has been exceeded.
1791//
1792//   * ResourceAlreadyExistsException
1793//   The resource already exists.
1794//
1795//   * ThrottlingException
1796//   The rate exceeds the limit.
1797//
1798func (c *IoT) CreateDimension(input *CreateDimensionInput) (*CreateDimensionOutput, error) {
1799	req, out := c.CreateDimensionRequest(input)
1800	return out, req.Send()
1801}
1802
1803// CreateDimensionWithContext is the same as CreateDimension with the addition of
1804// the ability to pass a context and additional request options.
1805//
1806// See CreateDimension for details on how to use this API operation.
1807//
1808// The context must be non-nil and will be used for request cancellation. If
1809// the context is nil a panic will occur. In the future the SDK may create
1810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1811// for more information on using Contexts.
1812func (c *IoT) CreateDimensionWithContext(ctx aws.Context, input *CreateDimensionInput, opts ...request.Option) (*CreateDimensionOutput, error) {
1813	req, out := c.CreateDimensionRequest(input)
1814	req.SetContext(ctx)
1815	req.ApplyOptions(opts...)
1816	return out, req.Send()
1817}
1818
1819const opCreateDomainConfiguration = "CreateDomainConfiguration"
1820
1821// CreateDomainConfigurationRequest generates a "aws/request.Request" representing the
1822// client's request for the CreateDomainConfiguration operation. The "output" return
1823// value will be populated with the request's response once the request completes
1824// successfully.
1825//
1826// Use "Send" method on the returned Request to send the API call to the service.
1827// the "output" return value is not valid until after Send returns without error.
1828//
1829// See CreateDomainConfiguration for more information on using the CreateDomainConfiguration
1830// API call, and error handling.
1831//
1832// This method is useful when you want to inject custom logic or configuration
1833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1834//
1835//
1836//    // Example sending a request using the CreateDomainConfigurationRequest method.
1837//    req, resp := client.CreateDomainConfigurationRequest(params)
1838//
1839//    err := req.Send()
1840//    if err == nil { // resp is now filled
1841//        fmt.Println(resp)
1842//    }
1843func (c *IoT) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) (req *request.Request, output *CreateDomainConfigurationOutput) {
1844	op := &request.Operation{
1845		Name:       opCreateDomainConfiguration,
1846		HTTPMethod: "POST",
1847		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
1848	}
1849
1850	if input == nil {
1851		input = &CreateDomainConfigurationInput{}
1852	}
1853
1854	output = &CreateDomainConfigurationOutput{}
1855	req = c.newRequest(op, input, output)
1856	return
1857}
1858
1859// CreateDomainConfiguration API operation for AWS IoT.
1860//
1861// Creates a domain configuration.
1862//
1863// The domain configuration feature is in public preview and is subject to change.
1864//
1865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1866// with awserr.Error's Code and Message methods to get detailed information about
1867// the error.
1868//
1869// See the AWS API reference guide for AWS IoT's
1870// API operation CreateDomainConfiguration for usage and error information.
1871//
1872// Returned Error Types:
1873//   * LimitExceededException
1874//   A limit has been exceeded.
1875//
1876//   * CertificateValidationException
1877//   The certificate is invalid.
1878//
1879//   * ResourceAlreadyExistsException
1880//   The resource already exists.
1881//
1882//   * ServiceUnavailableException
1883//   The service is temporarily unavailable.
1884//
1885//   * InternalFailureException
1886//   An unexpected error has occurred.
1887//
1888//   * InvalidRequestException
1889//   The request is not valid.
1890//
1891//   * UnauthorizedException
1892//   You are not authorized to perform this operation.
1893//
1894//   * ThrottlingException
1895//   The rate exceeds the limit.
1896//
1897func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
1898	req, out := c.CreateDomainConfigurationRequest(input)
1899	return out, req.Send()
1900}
1901
1902// CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
1903// the ability to pass a context and additional request options.
1904//
1905// See CreateDomainConfiguration for details on how to use this API operation.
1906//
1907// The context must be non-nil and will be used for request cancellation. If
1908// the context is nil a panic will occur. In the future the SDK may create
1909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1910// for more information on using Contexts.
1911func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
1912	req, out := c.CreateDomainConfigurationRequest(input)
1913	req.SetContext(ctx)
1914	req.ApplyOptions(opts...)
1915	return out, req.Send()
1916}
1917
1918const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
1919
1920// CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
1921// client's request for the CreateDynamicThingGroup operation. The "output" return
1922// value will be populated with the request's response once the request completes
1923// successfully.
1924//
1925// Use "Send" method on the returned Request to send the API call to the service.
1926// the "output" return value is not valid until after Send returns without error.
1927//
1928// See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
1929// API call, and error handling.
1930//
1931// This method is useful when you want to inject custom logic or configuration
1932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1933//
1934//
1935//    // Example sending a request using the CreateDynamicThingGroupRequest method.
1936//    req, resp := client.CreateDynamicThingGroupRequest(params)
1937//
1938//    err := req.Send()
1939//    if err == nil { // resp is now filled
1940//        fmt.Println(resp)
1941//    }
1942func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
1943	op := &request.Operation{
1944		Name:       opCreateDynamicThingGroup,
1945		HTTPMethod: "POST",
1946		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
1947	}
1948
1949	if input == nil {
1950		input = &CreateDynamicThingGroupInput{}
1951	}
1952
1953	output = &CreateDynamicThingGroupOutput{}
1954	req = c.newRequest(op, input, output)
1955	return
1956}
1957
1958// CreateDynamicThingGroup API operation for AWS IoT.
1959//
1960// Creates a dynamic thing group.
1961//
1962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1963// with awserr.Error's Code and Message methods to get detailed information about
1964// the error.
1965//
1966// See the AWS API reference guide for AWS IoT's
1967// API operation CreateDynamicThingGroup for usage and error information.
1968//
1969// Returned Error Types:
1970//   * InvalidRequestException
1971//   The request is not valid.
1972//
1973//   * ResourceAlreadyExistsException
1974//   The resource already exists.
1975//
1976//   * ResourceNotFoundException
1977//   The specified resource does not exist.
1978//
1979//   * ThrottlingException
1980//   The rate exceeds the limit.
1981//
1982//   * InternalFailureException
1983//   An unexpected error has occurred.
1984//
1985//   * InvalidQueryException
1986//   The query is invalid.
1987//
1988//   * LimitExceededException
1989//   A limit has been exceeded.
1990//
1991func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
1992	req, out := c.CreateDynamicThingGroupRequest(input)
1993	return out, req.Send()
1994}
1995
1996// CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
1997// the ability to pass a context and additional request options.
1998//
1999// See CreateDynamicThingGroup for details on how to use this API operation.
2000//
2001// The context must be non-nil and will be used for request cancellation. If
2002// the context is nil a panic will occur. In the future the SDK may create
2003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2004// for more information on using Contexts.
2005func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
2006	req, out := c.CreateDynamicThingGroupRequest(input)
2007	req.SetContext(ctx)
2008	req.ApplyOptions(opts...)
2009	return out, req.Send()
2010}
2011
2012const opCreateJob = "CreateJob"
2013
2014// CreateJobRequest generates a "aws/request.Request" representing the
2015// client's request for the CreateJob operation. The "output" return
2016// value will be populated with the request's response once the request completes
2017// successfully.
2018//
2019// Use "Send" method on the returned Request to send the API call to the service.
2020// the "output" return value is not valid until after Send returns without error.
2021//
2022// See CreateJob for more information on using the CreateJob
2023// API call, and error handling.
2024//
2025// This method is useful when you want to inject custom logic or configuration
2026// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2027//
2028//
2029//    // Example sending a request using the CreateJobRequest method.
2030//    req, resp := client.CreateJobRequest(params)
2031//
2032//    err := req.Send()
2033//    if err == nil { // resp is now filled
2034//        fmt.Println(resp)
2035//    }
2036func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
2037	op := &request.Operation{
2038		Name:       opCreateJob,
2039		HTTPMethod: "PUT",
2040		HTTPPath:   "/jobs/{jobId}",
2041	}
2042
2043	if input == nil {
2044		input = &CreateJobInput{}
2045	}
2046
2047	output = &CreateJobOutput{}
2048	req = c.newRequest(op, input, output)
2049	return
2050}
2051
2052// CreateJob API operation for AWS IoT.
2053//
2054// Creates a job.
2055//
2056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2057// with awserr.Error's Code and Message methods to get detailed information about
2058// the error.
2059//
2060// See the AWS API reference guide for AWS IoT's
2061// API operation CreateJob for usage and error information.
2062//
2063// Returned Error Types:
2064//   * InvalidRequestException
2065//   The request is not valid.
2066//
2067//   * ResourceNotFoundException
2068//   The specified resource does not exist.
2069//
2070//   * ResourceAlreadyExistsException
2071//   The resource already exists.
2072//
2073//   * LimitExceededException
2074//   A limit has been exceeded.
2075//
2076//   * ThrottlingException
2077//   The rate exceeds the limit.
2078//
2079//   * ServiceUnavailableException
2080//   The service is temporarily unavailable.
2081//
2082func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
2083	req, out := c.CreateJobRequest(input)
2084	return out, req.Send()
2085}
2086
2087// CreateJobWithContext is the same as CreateJob with the addition of
2088// the ability to pass a context and additional request options.
2089//
2090// See CreateJob for details on how to use this API operation.
2091//
2092// The context must be non-nil and will be used for request cancellation. If
2093// the context is nil a panic will occur. In the future the SDK may create
2094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2095// for more information on using Contexts.
2096func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
2097	req, out := c.CreateJobRequest(input)
2098	req.SetContext(ctx)
2099	req.ApplyOptions(opts...)
2100	return out, req.Send()
2101}
2102
2103const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
2104
2105// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
2106// client's request for the CreateKeysAndCertificate operation. The "output" return
2107// value will be populated with the request's response once the request completes
2108// successfully.
2109//
2110// Use "Send" method on the returned Request to send the API call to the service.
2111// the "output" return value is not valid until after Send returns without error.
2112//
2113// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
2114// API call, and error handling.
2115//
2116// This method is useful when you want to inject custom logic or configuration
2117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2118//
2119//
2120//    // Example sending a request using the CreateKeysAndCertificateRequest method.
2121//    req, resp := client.CreateKeysAndCertificateRequest(params)
2122//
2123//    err := req.Send()
2124//    if err == nil { // resp is now filled
2125//        fmt.Println(resp)
2126//    }
2127func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
2128	op := &request.Operation{
2129		Name:       opCreateKeysAndCertificate,
2130		HTTPMethod: "POST",
2131		HTTPPath:   "/keys-and-certificate",
2132	}
2133
2134	if input == nil {
2135		input = &CreateKeysAndCertificateInput{}
2136	}
2137
2138	output = &CreateKeysAndCertificateOutput{}
2139	req = c.newRequest(op, input, output)
2140	return
2141}
2142
2143// CreateKeysAndCertificate API operation for AWS IoT.
2144//
2145// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
2146// issued public key. You can also call CreateKeysAndCertificate over MQTT from
2147// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
2148//
2149// Note This is the only time AWS IoT issues the private key for this certificate,
2150// so it is important to keep it in a secure location.
2151//
2152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2153// with awserr.Error's Code and Message methods to get detailed information about
2154// the error.
2155//
2156// See the AWS API reference guide for AWS IoT's
2157// API operation CreateKeysAndCertificate for usage and error information.
2158//
2159// Returned Error Types:
2160//   * InvalidRequestException
2161//   The request is not valid.
2162//
2163//   * ThrottlingException
2164//   The rate exceeds the limit.
2165//
2166//   * UnauthorizedException
2167//   You are not authorized to perform this operation.
2168//
2169//   * ServiceUnavailableException
2170//   The service is temporarily unavailable.
2171//
2172//   * InternalFailureException
2173//   An unexpected error has occurred.
2174//
2175func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
2176	req, out := c.CreateKeysAndCertificateRequest(input)
2177	return out, req.Send()
2178}
2179
2180// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
2181// the ability to pass a context and additional request options.
2182//
2183// See CreateKeysAndCertificate for details on how to use this API operation.
2184//
2185// The context must be non-nil and will be used for request cancellation. If
2186// the context is nil a panic will occur. In the future the SDK may create
2187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2188// for more information on using Contexts.
2189func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
2190	req, out := c.CreateKeysAndCertificateRequest(input)
2191	req.SetContext(ctx)
2192	req.ApplyOptions(opts...)
2193	return out, req.Send()
2194}
2195
2196const opCreateMitigationAction = "CreateMitigationAction"
2197
2198// CreateMitigationActionRequest generates a "aws/request.Request" representing the
2199// client's request for the CreateMitigationAction operation. The "output" return
2200// value will be populated with the request's response once the request completes
2201// successfully.
2202//
2203// Use "Send" method on the returned Request to send the API call to the service.
2204// the "output" return value is not valid until after Send returns without error.
2205//
2206// See CreateMitigationAction for more information on using the CreateMitigationAction
2207// API call, and error handling.
2208//
2209// This method is useful when you want to inject custom logic or configuration
2210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2211//
2212//
2213//    // Example sending a request using the CreateMitigationActionRequest method.
2214//    req, resp := client.CreateMitigationActionRequest(params)
2215//
2216//    err := req.Send()
2217//    if err == nil { // resp is now filled
2218//        fmt.Println(resp)
2219//    }
2220func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
2221	op := &request.Operation{
2222		Name:       opCreateMitigationAction,
2223		HTTPMethod: "POST",
2224		HTTPPath:   "/mitigationactions/actions/{actionName}",
2225	}
2226
2227	if input == nil {
2228		input = &CreateMitigationActionInput{}
2229	}
2230
2231	output = &CreateMitigationActionOutput{}
2232	req = c.newRequest(op, input, output)
2233	return
2234}
2235
2236// CreateMitigationAction API operation for AWS IoT.
2237//
2238// Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
2239// Each mitigation action can apply only one type of change.
2240//
2241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2242// with awserr.Error's Code and Message methods to get detailed information about
2243// the error.
2244//
2245// See the AWS API reference guide for AWS IoT's
2246// API operation CreateMitigationAction for usage and error information.
2247//
2248// Returned Error Types:
2249//   * InvalidRequestException
2250//   The request is not valid.
2251//
2252//   * ResourceAlreadyExistsException
2253//   The resource already exists.
2254//
2255//   * LimitExceededException
2256//   A limit has been exceeded.
2257//
2258//   * ThrottlingException
2259//   The rate exceeds the limit.
2260//
2261//   * InternalFailureException
2262//   An unexpected error has occurred.
2263//
2264func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
2265	req, out := c.CreateMitigationActionRequest(input)
2266	return out, req.Send()
2267}
2268
2269// CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
2270// the ability to pass a context and additional request options.
2271//
2272// See CreateMitigationAction for details on how to use this API operation.
2273//
2274// The context must be non-nil and will be used for request cancellation. If
2275// the context is nil a panic will occur. In the future the SDK may create
2276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2277// for more information on using Contexts.
2278func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
2279	req, out := c.CreateMitigationActionRequest(input)
2280	req.SetContext(ctx)
2281	req.ApplyOptions(opts...)
2282	return out, req.Send()
2283}
2284
2285const opCreateOTAUpdate = "CreateOTAUpdate"
2286
2287// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
2288// client's request for the CreateOTAUpdate operation. The "output" return
2289// value will be populated with the request's response once the request completes
2290// successfully.
2291//
2292// Use "Send" method on the returned Request to send the API call to the service.
2293// the "output" return value is not valid until after Send returns without error.
2294//
2295// See CreateOTAUpdate for more information on using the CreateOTAUpdate
2296// API call, and error handling.
2297//
2298// This method is useful when you want to inject custom logic or configuration
2299// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2300//
2301//
2302//    // Example sending a request using the CreateOTAUpdateRequest method.
2303//    req, resp := client.CreateOTAUpdateRequest(params)
2304//
2305//    err := req.Send()
2306//    if err == nil { // resp is now filled
2307//        fmt.Println(resp)
2308//    }
2309func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
2310	op := &request.Operation{
2311		Name:       opCreateOTAUpdate,
2312		HTTPMethod: "POST",
2313		HTTPPath:   "/otaUpdates/{otaUpdateId}",
2314	}
2315
2316	if input == nil {
2317		input = &CreateOTAUpdateInput{}
2318	}
2319
2320	output = &CreateOTAUpdateOutput{}
2321	req = c.newRequest(op, input, output)
2322	return
2323}
2324
2325// CreateOTAUpdate API operation for AWS IoT.
2326//
2327// Creates an AWS IoT OTAUpdate on a target group of things or groups.
2328//
2329// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2330// with awserr.Error's Code and Message methods to get detailed information about
2331// the error.
2332//
2333// See the AWS API reference guide for AWS IoT's
2334// API operation CreateOTAUpdate for usage and error information.
2335//
2336// Returned Error Types:
2337//   * InvalidRequestException
2338//   The request is not valid.
2339//
2340//   * LimitExceededException
2341//   A limit has been exceeded.
2342//
2343//   * ResourceNotFoundException
2344//   The specified resource does not exist.
2345//
2346//   * ResourceAlreadyExistsException
2347//   The resource already exists.
2348//
2349//   * ThrottlingException
2350//   The rate exceeds the limit.
2351//
2352//   * UnauthorizedException
2353//   You are not authorized to perform this operation.
2354//
2355//   * InternalFailureException
2356//   An unexpected error has occurred.
2357//
2358//   * ServiceUnavailableException
2359//   The service is temporarily unavailable.
2360//
2361func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
2362	req, out := c.CreateOTAUpdateRequest(input)
2363	return out, req.Send()
2364}
2365
2366// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
2367// the ability to pass a context and additional request options.
2368//
2369// See CreateOTAUpdate for details on how to use this API operation.
2370//
2371// The context must be non-nil and will be used for request cancellation. If
2372// the context is nil a panic will occur. In the future the SDK may create
2373// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2374// for more information on using Contexts.
2375func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
2376	req, out := c.CreateOTAUpdateRequest(input)
2377	req.SetContext(ctx)
2378	req.ApplyOptions(opts...)
2379	return out, req.Send()
2380}
2381
2382const opCreatePolicy = "CreatePolicy"
2383
2384// CreatePolicyRequest generates a "aws/request.Request" representing the
2385// client's request for the CreatePolicy operation. The "output" return
2386// value will be populated with the request's response once the request completes
2387// successfully.
2388//
2389// Use "Send" method on the returned Request to send the API call to the service.
2390// the "output" return value is not valid until after Send returns without error.
2391//
2392// See CreatePolicy for more information on using the CreatePolicy
2393// API call, and error handling.
2394//
2395// This method is useful when you want to inject custom logic or configuration
2396// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2397//
2398//
2399//    // Example sending a request using the CreatePolicyRequest method.
2400//    req, resp := client.CreatePolicyRequest(params)
2401//
2402//    err := req.Send()
2403//    if err == nil { // resp is now filled
2404//        fmt.Println(resp)
2405//    }
2406func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
2407	op := &request.Operation{
2408		Name:       opCreatePolicy,
2409		HTTPMethod: "POST",
2410		HTTPPath:   "/policies/{policyName}",
2411	}
2412
2413	if input == nil {
2414		input = &CreatePolicyInput{}
2415	}
2416
2417	output = &CreatePolicyOutput{}
2418	req = c.newRequest(op, input, output)
2419	return
2420}
2421
2422// CreatePolicy API operation for AWS IoT.
2423//
2424// Creates an AWS IoT policy.
2425//
2426// The created policy is the default version for the policy. This operation
2427// creates a policy version with a version identifier of 1 and sets 1 as the
2428// policy's default version.
2429//
2430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2431// with awserr.Error's Code and Message methods to get detailed information about
2432// the error.
2433//
2434// See the AWS API reference guide for AWS IoT's
2435// API operation CreatePolicy for usage and error information.
2436//
2437// Returned Error Types:
2438//   * ResourceAlreadyExistsException
2439//   The resource already exists.
2440//
2441//   * MalformedPolicyException
2442//   The policy documentation is not valid.
2443//
2444//   * InvalidRequestException
2445//   The request is not valid.
2446//
2447//   * ThrottlingException
2448//   The rate exceeds the limit.
2449//
2450//   * UnauthorizedException
2451//   You are not authorized to perform this operation.
2452//
2453//   * ServiceUnavailableException
2454//   The service is temporarily unavailable.
2455//
2456//   * InternalFailureException
2457//   An unexpected error has occurred.
2458//
2459func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
2460	req, out := c.CreatePolicyRequest(input)
2461	return out, req.Send()
2462}
2463
2464// CreatePolicyWithContext is the same as CreatePolicy with the addition of
2465// the ability to pass a context and additional request options.
2466//
2467// See CreatePolicy for details on how to use this API operation.
2468//
2469// The context must be non-nil and will be used for request cancellation. If
2470// the context is nil a panic will occur. In the future the SDK may create
2471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2472// for more information on using Contexts.
2473func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
2474	req, out := c.CreatePolicyRequest(input)
2475	req.SetContext(ctx)
2476	req.ApplyOptions(opts...)
2477	return out, req.Send()
2478}
2479
2480const opCreatePolicyVersion = "CreatePolicyVersion"
2481
2482// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
2483// client's request for the CreatePolicyVersion operation. The "output" return
2484// value will be populated with the request's response once the request completes
2485// successfully.
2486//
2487// Use "Send" method on the returned Request to send the API call to the service.
2488// the "output" return value is not valid until after Send returns without error.
2489//
2490// See CreatePolicyVersion for more information on using the CreatePolicyVersion
2491// API call, and error handling.
2492//
2493// This method is useful when you want to inject custom logic or configuration
2494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2495//
2496//
2497//    // Example sending a request using the CreatePolicyVersionRequest method.
2498//    req, resp := client.CreatePolicyVersionRequest(params)
2499//
2500//    err := req.Send()
2501//    if err == nil { // resp is now filled
2502//        fmt.Println(resp)
2503//    }
2504func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
2505	op := &request.Operation{
2506		Name:       opCreatePolicyVersion,
2507		HTTPMethod: "POST",
2508		HTTPPath:   "/policies/{policyName}/version",
2509	}
2510
2511	if input == nil {
2512		input = &CreatePolicyVersionInput{}
2513	}
2514
2515	output = &CreatePolicyVersionOutput{}
2516	req = c.newRequest(op, input, output)
2517	return
2518}
2519
2520// CreatePolicyVersion API operation for AWS IoT.
2521//
2522// Creates a new version of the specified AWS IoT policy. To update a policy,
2523// create a new policy version. A managed policy can have up to five versions.
2524// If the policy has five versions, you must use DeletePolicyVersion to delete
2525// an existing version before you create a new one.
2526//
2527// Optionally, you can set the new version as the policy's default version.
2528// The default version is the operative version (that is, the version that is
2529// in effect for the certificates to which the policy is attached).
2530//
2531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2532// with awserr.Error's Code and Message methods to get detailed information about
2533// the error.
2534//
2535// See the AWS API reference guide for AWS IoT's
2536// API operation CreatePolicyVersion for usage and error information.
2537//
2538// Returned Error Types:
2539//   * ResourceNotFoundException
2540//   The specified resource does not exist.
2541//
2542//   * MalformedPolicyException
2543//   The policy documentation is not valid.
2544//
2545//   * VersionsLimitExceededException
2546//   The number of policy versions exceeds the limit.
2547//
2548//   * InvalidRequestException
2549//   The request is not valid.
2550//
2551//   * ThrottlingException
2552//   The rate exceeds the limit.
2553//
2554//   * UnauthorizedException
2555//   You are not authorized to perform this operation.
2556//
2557//   * ServiceUnavailableException
2558//   The service is temporarily unavailable.
2559//
2560//   * InternalFailureException
2561//   An unexpected error has occurred.
2562//
2563func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
2564	req, out := c.CreatePolicyVersionRequest(input)
2565	return out, req.Send()
2566}
2567
2568// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
2569// the ability to pass a context and additional request options.
2570//
2571// See CreatePolicyVersion for details on how to use this API operation.
2572//
2573// The context must be non-nil and will be used for request cancellation. If
2574// the context is nil a panic will occur. In the future the SDK may create
2575// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2576// for more information on using Contexts.
2577func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
2578	req, out := c.CreatePolicyVersionRequest(input)
2579	req.SetContext(ctx)
2580	req.ApplyOptions(opts...)
2581	return out, req.Send()
2582}
2583
2584const opCreateProvisioningClaim = "CreateProvisioningClaim"
2585
2586// CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
2587// client's request for the CreateProvisioningClaim operation. The "output" return
2588// value will be populated with the request's response once the request completes
2589// successfully.
2590//
2591// Use "Send" method on the returned Request to send the API call to the service.
2592// the "output" return value is not valid until after Send returns without error.
2593//
2594// See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
2595// API call, and error handling.
2596//
2597// This method is useful when you want to inject custom logic or configuration
2598// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2599//
2600//
2601//    // Example sending a request using the CreateProvisioningClaimRequest method.
2602//    req, resp := client.CreateProvisioningClaimRequest(params)
2603//
2604//    err := req.Send()
2605//    if err == nil { // resp is now filled
2606//        fmt.Println(resp)
2607//    }
2608func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
2609	op := &request.Operation{
2610		Name:       opCreateProvisioningClaim,
2611		HTTPMethod: "POST",
2612		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
2613	}
2614
2615	if input == nil {
2616		input = &CreateProvisioningClaimInput{}
2617	}
2618
2619	output = &CreateProvisioningClaimOutput{}
2620	req = c.newRequest(op, input, output)
2621	return
2622}
2623
2624// CreateProvisioningClaim API operation for AWS IoT.
2625//
2626// Creates a provisioning claim.
2627//
2628// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2629// with awserr.Error's Code and Message methods to get detailed information about
2630// the error.
2631//
2632// See the AWS API reference guide for AWS IoT's
2633// API operation CreateProvisioningClaim for usage and error information.
2634//
2635// Returned Error Types:
2636//   * InvalidRequestException
2637//   The request is not valid.
2638//
2639//   * ResourceNotFoundException
2640//   The specified resource does not exist.
2641//
2642//   * ThrottlingException
2643//   The rate exceeds the limit.
2644//
2645//   * UnauthorizedException
2646//   You are not authorized to perform this operation.
2647//
2648//   * ServiceUnavailableException
2649//   The service is temporarily unavailable.
2650//
2651//   * InternalFailureException
2652//   An unexpected error has occurred.
2653//
2654func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
2655	req, out := c.CreateProvisioningClaimRequest(input)
2656	return out, req.Send()
2657}
2658
2659// CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
2660// the ability to pass a context and additional request options.
2661//
2662// See CreateProvisioningClaim for details on how to use this API operation.
2663//
2664// The context must be non-nil and will be used for request cancellation. If
2665// the context is nil a panic will occur. In the future the SDK may create
2666// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2667// for more information on using Contexts.
2668func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
2669	req, out := c.CreateProvisioningClaimRequest(input)
2670	req.SetContext(ctx)
2671	req.ApplyOptions(opts...)
2672	return out, req.Send()
2673}
2674
2675const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
2676
2677// CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
2678// client's request for the CreateProvisioningTemplate operation. The "output" return
2679// value will be populated with the request's response once the request completes
2680// successfully.
2681//
2682// Use "Send" method on the returned Request to send the API call to the service.
2683// the "output" return value is not valid until after Send returns without error.
2684//
2685// See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
2686// API call, and error handling.
2687//
2688// This method is useful when you want to inject custom logic or configuration
2689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2690//
2691//
2692//    // Example sending a request using the CreateProvisioningTemplateRequest method.
2693//    req, resp := client.CreateProvisioningTemplateRequest(params)
2694//
2695//    err := req.Send()
2696//    if err == nil { // resp is now filled
2697//        fmt.Println(resp)
2698//    }
2699func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
2700	op := &request.Operation{
2701		Name:       opCreateProvisioningTemplate,
2702		HTTPMethod: "POST",
2703		HTTPPath:   "/provisioning-templates",
2704	}
2705
2706	if input == nil {
2707		input = &CreateProvisioningTemplateInput{}
2708	}
2709
2710	output = &CreateProvisioningTemplateOutput{}
2711	req = c.newRequest(op, input, output)
2712	return
2713}
2714
2715// CreateProvisioningTemplate API operation for AWS IoT.
2716//
2717// Creates a fleet provisioning template.
2718//
2719// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2720// with awserr.Error's Code and Message methods to get detailed information about
2721// the error.
2722//
2723// See the AWS API reference guide for AWS IoT's
2724// API operation CreateProvisioningTemplate for usage and error information.
2725//
2726// Returned Error Types:
2727//   * InternalFailureException
2728//   An unexpected error has occurred.
2729//
2730//   * InvalidRequestException
2731//   The request is not valid.
2732//
2733//   * LimitExceededException
2734//   A limit has been exceeded.
2735//
2736//   * ThrottlingException
2737//   The rate exceeds the limit.
2738//
2739//   * UnauthorizedException
2740//   You are not authorized to perform this operation.
2741//
2742//   * ResourceAlreadyExistsException
2743//   The resource already exists.
2744//
2745func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
2746	req, out := c.CreateProvisioningTemplateRequest(input)
2747	return out, req.Send()
2748}
2749
2750// CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
2751// the ability to pass a context and additional request options.
2752//
2753// See CreateProvisioningTemplate for details on how to use this API operation.
2754//
2755// The context must be non-nil and will be used for request cancellation. If
2756// the context is nil a panic will occur. In the future the SDK may create
2757// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2758// for more information on using Contexts.
2759func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
2760	req, out := c.CreateProvisioningTemplateRequest(input)
2761	req.SetContext(ctx)
2762	req.ApplyOptions(opts...)
2763	return out, req.Send()
2764}
2765
2766const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
2767
2768// CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
2769// client's request for the CreateProvisioningTemplateVersion operation. The "output" return
2770// value will be populated with the request's response once the request completes
2771// successfully.
2772//
2773// Use "Send" method on the returned Request to send the API call to the service.
2774// the "output" return value is not valid until after Send returns without error.
2775//
2776// See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
2777// API call, and error handling.
2778//
2779// This method is useful when you want to inject custom logic or configuration
2780// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2781//
2782//
2783//    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
2784//    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
2785//
2786//    err := req.Send()
2787//    if err == nil { // resp is now filled
2788//        fmt.Println(resp)
2789//    }
2790func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
2791	op := &request.Operation{
2792		Name:       opCreateProvisioningTemplateVersion,
2793		HTTPMethod: "POST",
2794		HTTPPath:   "/provisioning-templates/{templateName}/versions",
2795	}
2796
2797	if input == nil {
2798		input = &CreateProvisioningTemplateVersionInput{}
2799	}
2800
2801	output = &CreateProvisioningTemplateVersionOutput{}
2802	req = c.newRequest(op, input, output)
2803	return
2804}
2805
2806// CreateProvisioningTemplateVersion API operation for AWS IoT.
2807//
2808// Creates a new version of a fleet provisioning template.
2809//
2810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2811// with awserr.Error's Code and Message methods to get detailed information about
2812// the error.
2813//
2814// See the AWS API reference guide for AWS IoT's
2815// API operation CreateProvisioningTemplateVersion for usage and error information.
2816//
2817// Returned Error Types:
2818//   * VersionsLimitExceededException
2819//   The number of policy versions exceeds the limit.
2820//
2821//   * InternalFailureException
2822//   An unexpected error has occurred.
2823//
2824//   * InvalidRequestException
2825//   The request is not valid.
2826//
2827//   * ThrottlingException
2828//   The rate exceeds the limit.
2829//
2830//   * ResourceNotFoundException
2831//   The specified resource does not exist.
2832//
2833//   * UnauthorizedException
2834//   You are not authorized to perform this operation.
2835//
2836//   * ConflictingResourceUpdateException
2837//   A conflicting resource update exception. This exception is thrown when two
2838//   pending updates cause a conflict.
2839//
2840func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
2841	req, out := c.CreateProvisioningTemplateVersionRequest(input)
2842	return out, req.Send()
2843}
2844
2845// CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
2846// the ability to pass a context and additional request options.
2847//
2848// See CreateProvisioningTemplateVersion for details on how to use this API operation.
2849//
2850// The context must be non-nil and will be used for request cancellation. If
2851// the context is nil a panic will occur. In the future the SDK may create
2852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2853// for more information on using Contexts.
2854func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
2855	req, out := c.CreateProvisioningTemplateVersionRequest(input)
2856	req.SetContext(ctx)
2857	req.ApplyOptions(opts...)
2858	return out, req.Send()
2859}
2860
2861const opCreateRoleAlias = "CreateRoleAlias"
2862
2863// CreateRoleAliasRequest generates a "aws/request.Request" representing the
2864// client's request for the CreateRoleAlias operation. The "output" return
2865// value will be populated with the request's response once the request completes
2866// successfully.
2867//
2868// Use "Send" method on the returned Request to send the API call to the service.
2869// the "output" return value is not valid until after Send returns without error.
2870//
2871// See CreateRoleAlias for more information on using the CreateRoleAlias
2872// API call, and error handling.
2873//
2874// This method is useful when you want to inject custom logic or configuration
2875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2876//
2877//
2878//    // Example sending a request using the CreateRoleAliasRequest method.
2879//    req, resp := client.CreateRoleAliasRequest(params)
2880//
2881//    err := req.Send()
2882//    if err == nil { // resp is now filled
2883//        fmt.Println(resp)
2884//    }
2885func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
2886	op := &request.Operation{
2887		Name:       opCreateRoleAlias,
2888		HTTPMethod: "POST",
2889		HTTPPath:   "/role-aliases/{roleAlias}",
2890	}
2891
2892	if input == nil {
2893		input = &CreateRoleAliasInput{}
2894	}
2895
2896	output = &CreateRoleAliasOutput{}
2897	req = c.newRequest(op, input, output)
2898	return
2899}
2900
2901// CreateRoleAlias API operation for AWS IoT.
2902//
2903// Creates a role alias.
2904//
2905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2906// with awserr.Error's Code and Message methods to get detailed information about
2907// the error.
2908//
2909// See the AWS API reference guide for AWS IoT's
2910// API operation CreateRoleAlias for usage and error information.
2911//
2912// Returned Error Types:
2913//   * ResourceAlreadyExistsException
2914//   The resource already exists.
2915//
2916//   * InvalidRequestException
2917//   The request is not valid.
2918//
2919//   * LimitExceededException
2920//   A limit has been exceeded.
2921//
2922//   * ThrottlingException
2923//   The rate exceeds the limit.
2924//
2925//   * UnauthorizedException
2926//   You are not authorized to perform this operation.
2927//
2928//   * ServiceUnavailableException
2929//   The service is temporarily unavailable.
2930//
2931//   * InternalFailureException
2932//   An unexpected error has occurred.
2933//
2934func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
2935	req, out := c.CreateRoleAliasRequest(input)
2936	return out, req.Send()
2937}
2938
2939// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
2940// the ability to pass a context and additional request options.
2941//
2942// See CreateRoleAlias for details on how to use this API operation.
2943//
2944// The context must be non-nil and will be used for request cancellation. If
2945// the context is nil a panic will occur. In the future the SDK may create
2946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2947// for more information on using Contexts.
2948func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
2949	req, out := c.CreateRoleAliasRequest(input)
2950	req.SetContext(ctx)
2951	req.ApplyOptions(opts...)
2952	return out, req.Send()
2953}
2954
2955const opCreateScheduledAudit = "CreateScheduledAudit"
2956
2957// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
2958// client's request for the CreateScheduledAudit operation. The "output" return
2959// value will be populated with the request's response once the request completes
2960// successfully.
2961//
2962// Use "Send" method on the returned Request to send the API call to the service.
2963// the "output" return value is not valid until after Send returns without error.
2964//
2965// See CreateScheduledAudit for more information on using the CreateScheduledAudit
2966// API call, and error handling.
2967//
2968// This method is useful when you want to inject custom logic or configuration
2969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2970//
2971//
2972//    // Example sending a request using the CreateScheduledAuditRequest method.
2973//    req, resp := client.CreateScheduledAuditRequest(params)
2974//
2975//    err := req.Send()
2976//    if err == nil { // resp is now filled
2977//        fmt.Println(resp)
2978//    }
2979func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
2980	op := &request.Operation{
2981		Name:       opCreateScheduledAudit,
2982		HTTPMethod: "POST",
2983		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
2984	}
2985
2986	if input == nil {
2987		input = &CreateScheduledAuditInput{}
2988	}
2989
2990	output = &CreateScheduledAuditOutput{}
2991	req = c.newRequest(op, input, output)
2992	return
2993}
2994
2995// CreateScheduledAudit API operation for AWS IoT.
2996//
2997// Creates a scheduled audit that is run at a specified time interval.
2998//
2999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3000// with awserr.Error's Code and Message methods to get detailed information about
3001// the error.
3002//
3003// See the AWS API reference guide for AWS IoT's
3004// API operation CreateScheduledAudit for usage and error information.
3005//
3006// Returned Error Types:
3007//   * InvalidRequestException
3008//   The request is not valid.
3009//
3010//   * ResourceAlreadyExistsException
3011//   The resource already exists.
3012//
3013//   * ThrottlingException
3014//   The rate exceeds the limit.
3015//
3016//   * InternalFailureException
3017//   An unexpected error has occurred.
3018//
3019//   * LimitExceededException
3020//   A limit has been exceeded.
3021//
3022func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
3023	req, out := c.CreateScheduledAuditRequest(input)
3024	return out, req.Send()
3025}
3026
3027// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
3028// the ability to pass a context and additional request options.
3029//
3030// See CreateScheduledAudit for details on how to use this API operation.
3031//
3032// The context must be non-nil and will be used for request cancellation. If
3033// the context is nil a panic will occur. In the future the SDK may create
3034// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3035// for more information on using Contexts.
3036func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
3037	req, out := c.CreateScheduledAuditRequest(input)
3038	req.SetContext(ctx)
3039	req.ApplyOptions(opts...)
3040	return out, req.Send()
3041}
3042
3043const opCreateSecurityProfile = "CreateSecurityProfile"
3044
3045// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
3046// client's request for the CreateSecurityProfile operation. The "output" return
3047// value will be populated with the request's response once the request completes
3048// successfully.
3049//
3050// Use "Send" method on the returned Request to send the API call to the service.
3051// the "output" return value is not valid until after Send returns without error.
3052//
3053// See CreateSecurityProfile for more information on using the CreateSecurityProfile
3054// API call, and error handling.
3055//
3056// This method is useful when you want to inject custom logic or configuration
3057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3058//
3059//
3060//    // Example sending a request using the CreateSecurityProfileRequest method.
3061//    req, resp := client.CreateSecurityProfileRequest(params)
3062//
3063//    err := req.Send()
3064//    if err == nil { // resp is now filled
3065//        fmt.Println(resp)
3066//    }
3067func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
3068	op := &request.Operation{
3069		Name:       opCreateSecurityProfile,
3070		HTTPMethod: "POST",
3071		HTTPPath:   "/security-profiles/{securityProfileName}",
3072	}
3073
3074	if input == nil {
3075		input = &CreateSecurityProfileInput{}
3076	}
3077
3078	output = &CreateSecurityProfileOutput{}
3079	req = c.newRequest(op, input, output)
3080	return
3081}
3082
3083// CreateSecurityProfile API operation for AWS IoT.
3084//
3085// Creates a Device Defender security profile.
3086//
3087// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3088// with awserr.Error's Code and Message methods to get detailed information about
3089// the error.
3090//
3091// See the AWS API reference guide for AWS IoT's
3092// API operation CreateSecurityProfile for usage and error information.
3093//
3094// Returned Error Types:
3095//   * InvalidRequestException
3096//   The request is not valid.
3097//
3098//   * ResourceAlreadyExistsException
3099//   The resource already exists.
3100//
3101//   * ThrottlingException
3102//   The rate exceeds the limit.
3103//
3104//   * InternalFailureException
3105//   An unexpected error has occurred.
3106//
3107func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
3108	req, out := c.CreateSecurityProfileRequest(input)
3109	return out, req.Send()
3110}
3111
3112// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
3113// the ability to pass a context and additional request options.
3114//
3115// See CreateSecurityProfile for details on how to use this API operation.
3116//
3117// The context must be non-nil and will be used for request cancellation. If
3118// the context is nil a panic will occur. In the future the SDK may create
3119// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3120// for more information on using Contexts.
3121func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
3122	req, out := c.CreateSecurityProfileRequest(input)
3123	req.SetContext(ctx)
3124	req.ApplyOptions(opts...)
3125	return out, req.Send()
3126}
3127
3128const opCreateStream = "CreateStream"
3129
3130// CreateStreamRequest generates a "aws/request.Request" representing the
3131// client's request for the CreateStream operation. The "output" return
3132// value will be populated with the request's response once the request completes
3133// successfully.
3134//
3135// Use "Send" method on the returned Request to send the API call to the service.
3136// the "output" return value is not valid until after Send returns without error.
3137//
3138// See CreateStream for more information on using the CreateStream
3139// API call, and error handling.
3140//
3141// This method is useful when you want to inject custom logic or configuration
3142// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3143//
3144//
3145//    // Example sending a request using the CreateStreamRequest method.
3146//    req, resp := client.CreateStreamRequest(params)
3147//
3148//    err := req.Send()
3149//    if err == nil { // resp is now filled
3150//        fmt.Println(resp)
3151//    }
3152func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
3153	op := &request.Operation{
3154		Name:       opCreateStream,
3155		HTTPMethod: "POST",
3156		HTTPPath:   "/streams/{streamId}",
3157	}
3158
3159	if input == nil {
3160		input = &CreateStreamInput{}
3161	}
3162
3163	output = &CreateStreamOutput{}
3164	req = c.newRequest(op, input, output)
3165	return
3166}
3167
3168// CreateStream API operation for AWS IoT.
3169//
3170// Creates a stream for delivering one or more large files in chunks over MQTT.
3171// A stream transports data bytes in chunks or blocks packaged as MQTT messages
3172// from a source like S3. You can have one or more files associated with a stream.
3173//
3174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3175// with awserr.Error's Code and Message methods to get detailed information about
3176// the error.
3177//
3178// See the AWS API reference guide for AWS IoT's
3179// API operation CreateStream for usage and error information.
3180//
3181// Returned Error Types:
3182//   * InvalidRequestException
3183//   The request is not valid.
3184//
3185//   * LimitExceededException
3186//   A limit has been exceeded.
3187//
3188//   * ResourceNotFoundException
3189//   The specified resource does not exist.
3190//
3191//   * ResourceAlreadyExistsException
3192//   The resource already exists.
3193//
3194//   * ThrottlingException
3195//   The rate exceeds the limit.
3196//
3197//   * UnauthorizedException
3198//   You are not authorized to perform this operation.
3199//
3200//   * ServiceUnavailableException
3201//   The service is temporarily unavailable.
3202//
3203//   * InternalFailureException
3204//   An unexpected error has occurred.
3205//
3206func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
3207	req, out := c.CreateStreamRequest(input)
3208	return out, req.Send()
3209}
3210
3211// CreateStreamWithContext is the same as CreateStream with the addition of
3212// the ability to pass a context and additional request options.
3213//
3214// See CreateStream for details on how to use this API operation.
3215//
3216// The context must be non-nil and will be used for request cancellation. If
3217// the context is nil a panic will occur. In the future the SDK may create
3218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3219// for more information on using Contexts.
3220func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
3221	req, out := c.CreateStreamRequest(input)
3222	req.SetContext(ctx)
3223	req.ApplyOptions(opts...)
3224	return out, req.Send()
3225}
3226
3227const opCreateThing = "CreateThing"
3228
3229// CreateThingRequest generates a "aws/request.Request" representing the
3230// client's request for the CreateThing operation. The "output" return
3231// value will be populated with the request's response once the request completes
3232// successfully.
3233//
3234// Use "Send" method on the returned Request to send the API call to the service.
3235// the "output" return value is not valid until after Send returns without error.
3236//
3237// See CreateThing for more information on using the CreateThing
3238// API call, and error handling.
3239//
3240// This method is useful when you want to inject custom logic or configuration
3241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3242//
3243//
3244//    // Example sending a request using the CreateThingRequest method.
3245//    req, resp := client.CreateThingRequest(params)
3246//
3247//    err := req.Send()
3248//    if err == nil { // resp is now filled
3249//        fmt.Println(resp)
3250//    }
3251func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
3252	op := &request.Operation{
3253		Name:       opCreateThing,
3254		HTTPMethod: "POST",
3255		HTTPPath:   "/things/{thingName}",
3256	}
3257
3258	if input == nil {
3259		input = &CreateThingInput{}
3260	}
3261
3262	output = &CreateThingOutput{}
3263	req = c.newRequest(op, input, output)
3264	return
3265}
3266
3267// CreateThing API operation for AWS IoT.
3268//
3269// Creates a thing record in the registry. If this call is made multiple times
3270// using the same thing name and configuration, the call will succeed. If this
3271// call is made with the same thing name but different configuration a ResourceAlreadyExistsException
3272// is thrown.
3273//
3274// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3275// for information about authorizing control plane actions.
3276//
3277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3278// with awserr.Error's Code and Message methods to get detailed information about
3279// the error.
3280//
3281// See the AWS API reference guide for AWS IoT's
3282// API operation CreateThing for usage and error information.
3283//
3284// Returned Error Types:
3285//   * InvalidRequestException
3286//   The request is not valid.
3287//
3288//   * ThrottlingException
3289//   The rate exceeds the limit.
3290//
3291//   * UnauthorizedException
3292//   You are not authorized to perform this operation.
3293//
3294//   * ServiceUnavailableException
3295//   The service is temporarily unavailable.
3296//
3297//   * InternalFailureException
3298//   An unexpected error has occurred.
3299//
3300//   * ResourceAlreadyExistsException
3301//   The resource already exists.
3302//
3303//   * ResourceNotFoundException
3304//   The specified resource does not exist.
3305//
3306func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
3307	req, out := c.CreateThingRequest(input)
3308	return out, req.Send()
3309}
3310
3311// CreateThingWithContext is the same as CreateThing with the addition of
3312// the ability to pass a context and additional request options.
3313//
3314// See CreateThing for details on how to use this API operation.
3315//
3316// The context must be non-nil and will be used for request cancellation. If
3317// the context is nil a panic will occur. In the future the SDK may create
3318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3319// for more information on using Contexts.
3320func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
3321	req, out := c.CreateThingRequest(input)
3322	req.SetContext(ctx)
3323	req.ApplyOptions(opts...)
3324	return out, req.Send()
3325}
3326
3327const opCreateThingGroup = "CreateThingGroup"
3328
3329// CreateThingGroupRequest generates a "aws/request.Request" representing the
3330// client's request for the CreateThingGroup operation. The "output" return
3331// value will be populated with the request's response once the request completes
3332// successfully.
3333//
3334// Use "Send" method on the returned Request to send the API call to the service.
3335// the "output" return value is not valid until after Send returns without error.
3336//
3337// See CreateThingGroup for more information on using the CreateThingGroup
3338// API call, and error handling.
3339//
3340// This method is useful when you want to inject custom logic or configuration
3341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3342//
3343//
3344//    // Example sending a request using the CreateThingGroupRequest method.
3345//    req, resp := client.CreateThingGroupRequest(params)
3346//
3347//    err := req.Send()
3348//    if err == nil { // resp is now filled
3349//        fmt.Println(resp)
3350//    }
3351func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
3352	op := &request.Operation{
3353		Name:       opCreateThingGroup,
3354		HTTPMethod: "POST",
3355		HTTPPath:   "/thing-groups/{thingGroupName}",
3356	}
3357
3358	if input == nil {
3359		input = &CreateThingGroupInput{}
3360	}
3361
3362	output = &CreateThingGroupOutput{}
3363	req = c.newRequest(op, input, output)
3364	return
3365}
3366
3367// CreateThingGroup API operation for AWS IoT.
3368//
3369// Create a thing group.
3370//
3371// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3372// for information about authorizing control plane actions.
3373//
3374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3375// with awserr.Error's Code and Message methods to get detailed information about
3376// the error.
3377//
3378// See the AWS API reference guide for AWS IoT's
3379// API operation CreateThingGroup for usage and error information.
3380//
3381// Returned Error Types:
3382//   * InvalidRequestException
3383//   The request is not valid.
3384//
3385//   * ResourceAlreadyExistsException
3386//   The resource already exists.
3387//
3388//   * ThrottlingException
3389//   The rate exceeds the limit.
3390//
3391//   * InternalFailureException
3392//   An unexpected error has occurred.
3393//
3394func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
3395	req, out := c.CreateThingGroupRequest(input)
3396	return out, req.Send()
3397}
3398
3399// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
3400// the ability to pass a context and additional request options.
3401//
3402// See CreateThingGroup for details on how to use this API operation.
3403//
3404// The context must be non-nil and will be used for request cancellation. If
3405// the context is nil a panic will occur. In the future the SDK may create
3406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3407// for more information on using Contexts.
3408func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
3409	req, out := c.CreateThingGroupRequest(input)
3410	req.SetContext(ctx)
3411	req.ApplyOptions(opts...)
3412	return out, req.Send()
3413}
3414
3415const opCreateThingType = "CreateThingType"
3416
3417// CreateThingTypeRequest generates a "aws/request.Request" representing the
3418// client's request for the CreateThingType operation. The "output" return
3419// value will be populated with the request's response once the request completes
3420// successfully.
3421//
3422// Use "Send" method on the returned Request to send the API call to the service.
3423// the "output" return value is not valid until after Send returns without error.
3424//
3425// See CreateThingType for more information on using the CreateThingType
3426// API call, and error handling.
3427//
3428// This method is useful when you want to inject custom logic or configuration
3429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3430//
3431//
3432//    // Example sending a request using the CreateThingTypeRequest method.
3433//    req, resp := client.CreateThingTypeRequest(params)
3434//
3435//    err := req.Send()
3436//    if err == nil { // resp is now filled
3437//        fmt.Println(resp)
3438//    }
3439func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
3440	op := &request.Operation{
3441		Name:       opCreateThingType,
3442		HTTPMethod: "POST",
3443		HTTPPath:   "/thing-types/{thingTypeName}",
3444	}
3445
3446	if input == nil {
3447		input = &CreateThingTypeInput{}
3448	}
3449
3450	output = &CreateThingTypeOutput{}
3451	req = c.newRequest(op, input, output)
3452	return
3453}
3454
3455// CreateThingType API operation for AWS IoT.
3456//
3457// Creates a new thing type.
3458//
3459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3460// with awserr.Error's Code and Message methods to get detailed information about
3461// the error.
3462//
3463// See the AWS API reference guide for AWS IoT's
3464// API operation CreateThingType for usage and error information.
3465//
3466// Returned Error Types:
3467//   * InvalidRequestException
3468//   The request is not valid.
3469//
3470//   * ThrottlingException
3471//   The rate exceeds the limit.
3472//
3473//   * UnauthorizedException
3474//   You are not authorized to perform this operation.
3475//
3476//   * ServiceUnavailableException
3477//   The service is temporarily unavailable.
3478//
3479//   * InternalFailureException
3480//   An unexpected error has occurred.
3481//
3482//   * ResourceAlreadyExistsException
3483//   The resource already exists.
3484//
3485func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
3486	req, out := c.CreateThingTypeRequest(input)
3487	return out, req.Send()
3488}
3489
3490// CreateThingTypeWithContext is the same as CreateThingType with the addition of
3491// the ability to pass a context and additional request options.
3492//
3493// See CreateThingType for details on how to use this API operation.
3494//
3495// The context must be non-nil and will be used for request cancellation. If
3496// the context is nil a panic will occur. In the future the SDK may create
3497// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3498// for more information on using Contexts.
3499func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
3500	req, out := c.CreateThingTypeRequest(input)
3501	req.SetContext(ctx)
3502	req.ApplyOptions(opts...)
3503	return out, req.Send()
3504}
3505
3506const opCreateTopicRule = "CreateTopicRule"
3507
3508// CreateTopicRuleRequest generates a "aws/request.Request" representing the
3509// client's request for the CreateTopicRule operation. The "output" return
3510// value will be populated with the request's response once the request completes
3511// successfully.
3512//
3513// Use "Send" method on the returned Request to send the API call to the service.
3514// the "output" return value is not valid until after Send returns without error.
3515//
3516// See CreateTopicRule for more information on using the CreateTopicRule
3517// API call, and error handling.
3518//
3519// This method is useful when you want to inject custom logic or configuration
3520// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3521//
3522//
3523//    // Example sending a request using the CreateTopicRuleRequest method.
3524//    req, resp := client.CreateTopicRuleRequest(params)
3525//
3526//    err := req.Send()
3527//    if err == nil { // resp is now filled
3528//        fmt.Println(resp)
3529//    }
3530func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
3531	op := &request.Operation{
3532		Name:       opCreateTopicRule,
3533		HTTPMethod: "POST",
3534		HTTPPath:   "/rules/{ruleName}",
3535	}
3536
3537	if input == nil {
3538		input = &CreateTopicRuleInput{}
3539	}
3540
3541	output = &CreateTopicRuleOutput{}
3542	req = c.newRequest(op, input, output)
3543	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3544	return
3545}
3546
3547// CreateTopicRule API operation for AWS IoT.
3548//
3549// Creates a rule. Creating rules is an administrator-level action. Any user
3550// who has permission to create rules will be able to access data processed
3551// by the rule.
3552//
3553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3554// with awserr.Error's Code and Message methods to get detailed information about
3555// the error.
3556//
3557// See the AWS API reference guide for AWS IoT's
3558// API operation CreateTopicRule for usage and error information.
3559//
3560// Returned Error Types:
3561//   * SqlParseException
3562//   The Rule-SQL expression can't be parsed correctly.
3563//
3564//   * InternalException
3565//   An unexpected error has occurred.
3566//
3567//   * InvalidRequestException
3568//   The request is not valid.
3569//
3570//   * ResourceAlreadyExistsException
3571//   The resource already exists.
3572//
3573//   * ServiceUnavailableException
3574//   The service is temporarily unavailable.
3575//
3576//   * ConflictingResourceUpdateException
3577//   A conflicting resource update exception. This exception is thrown when two
3578//   pending updates cause a conflict.
3579//
3580func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
3581	req, out := c.CreateTopicRuleRequest(input)
3582	return out, req.Send()
3583}
3584
3585// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
3586// the ability to pass a context and additional request options.
3587//
3588// See CreateTopicRule for details on how to use this API operation.
3589//
3590// The context must be non-nil and will be used for request cancellation. If
3591// the context is nil a panic will occur. In the future the SDK may create
3592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3593// for more information on using Contexts.
3594func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
3595	req, out := c.CreateTopicRuleRequest(input)
3596	req.SetContext(ctx)
3597	req.ApplyOptions(opts...)
3598	return out, req.Send()
3599}
3600
3601const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
3602
3603// CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
3604// client's request for the CreateTopicRuleDestination operation. The "output" return
3605// value will be populated with the request's response once the request completes
3606// successfully.
3607//
3608// Use "Send" method on the returned Request to send the API call to the service.
3609// the "output" return value is not valid until after Send returns without error.
3610//
3611// See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
3612// API call, and error handling.
3613//
3614// This method is useful when you want to inject custom logic or configuration
3615// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3616//
3617//
3618//    // Example sending a request using the CreateTopicRuleDestinationRequest method.
3619//    req, resp := client.CreateTopicRuleDestinationRequest(params)
3620//
3621//    err := req.Send()
3622//    if err == nil { // resp is now filled
3623//        fmt.Println(resp)
3624//    }
3625func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
3626	op := &request.Operation{
3627		Name:       opCreateTopicRuleDestination,
3628		HTTPMethod: "POST",
3629		HTTPPath:   "/destinations",
3630	}
3631
3632	if input == nil {
3633		input = &CreateTopicRuleDestinationInput{}
3634	}
3635
3636	output = &CreateTopicRuleDestinationOutput{}
3637	req = c.newRequest(op, input, output)
3638	return
3639}
3640
3641// CreateTopicRuleDestination API operation for AWS IoT.
3642//
3643// Creates a topic rule destination. The destination must be confirmed prior
3644// to use.
3645//
3646// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3647// with awserr.Error's Code and Message methods to get detailed information about
3648// the error.
3649//
3650// See the AWS API reference guide for AWS IoT's
3651// API operation CreateTopicRuleDestination for usage and error information.
3652//
3653// Returned Error Types:
3654//   * InternalException
3655//   An unexpected error has occurred.
3656//
3657//   * InvalidRequestException
3658//   The request is not valid.
3659//
3660//   * ResourceAlreadyExistsException
3661//   The resource already exists.
3662//
3663//   * ServiceUnavailableException
3664//   The service is temporarily unavailable.
3665//
3666//   * ConflictingResourceUpdateException
3667//   A conflicting resource update exception. This exception is thrown when two
3668//   pending updates cause a conflict.
3669//
3670func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
3671	req, out := c.CreateTopicRuleDestinationRequest(input)
3672	return out, req.Send()
3673}
3674
3675// CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
3676// the ability to pass a context and additional request options.
3677//
3678// See CreateTopicRuleDestination for details on how to use this API operation.
3679//
3680// The context must be non-nil and will be used for request cancellation. If
3681// the context is nil a panic will occur. In the future the SDK may create
3682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3683// for more information on using Contexts.
3684func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
3685	req, out := c.CreateTopicRuleDestinationRequest(input)
3686	req.SetContext(ctx)
3687	req.ApplyOptions(opts...)
3688	return out, req.Send()
3689}
3690
3691const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
3692
3693// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
3694// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
3695// value will be populated with the request's response once the request completes
3696// successfully.
3697//
3698// Use "Send" method on the returned Request to send the API call to the service.
3699// the "output" return value is not valid until after Send returns without error.
3700//
3701// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
3702// API call, and error handling.
3703//
3704// This method is useful when you want to inject custom logic or configuration
3705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3706//
3707//
3708//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
3709//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
3710//
3711//    err := req.Send()
3712//    if err == nil { // resp is now filled
3713//        fmt.Println(resp)
3714//    }
3715func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
3716	op := &request.Operation{
3717		Name:       opDeleteAccountAuditConfiguration,
3718		HTTPMethod: "DELETE",
3719		HTTPPath:   "/audit/configuration",
3720	}
3721
3722	if input == nil {
3723		input = &DeleteAccountAuditConfigurationInput{}
3724	}
3725
3726	output = &DeleteAccountAuditConfigurationOutput{}
3727	req = c.newRequest(op, input, output)
3728	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3729	return
3730}
3731
3732// DeleteAccountAuditConfiguration API operation for AWS IoT.
3733//
3734// Restores the default settings for Device Defender audits for this account.
3735// Any configuration data you entered is deleted and all audit checks are reset
3736// to disabled.
3737//
3738// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3739// with awserr.Error's Code and Message methods to get detailed information about
3740// the error.
3741//
3742// See the AWS API reference guide for AWS IoT's
3743// API operation DeleteAccountAuditConfiguration for usage and error information.
3744//
3745// Returned Error Types:
3746//   * InvalidRequestException
3747//   The request is not valid.
3748//
3749//   * ResourceNotFoundException
3750//   The specified resource does not exist.
3751//
3752//   * ThrottlingException
3753//   The rate exceeds the limit.
3754//
3755//   * InternalFailureException
3756//   An unexpected error has occurred.
3757//
3758func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
3759	req, out := c.DeleteAccountAuditConfigurationRequest(input)
3760	return out, req.Send()
3761}
3762
3763// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
3764// the ability to pass a context and additional request options.
3765//
3766// See DeleteAccountAuditConfiguration for details on how to use this API operation.
3767//
3768// The context must be non-nil and will be used for request cancellation. If
3769// the context is nil a panic will occur. In the future the SDK may create
3770// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3771// for more information on using Contexts.
3772func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
3773	req, out := c.DeleteAccountAuditConfigurationRequest(input)
3774	req.SetContext(ctx)
3775	req.ApplyOptions(opts...)
3776	return out, req.Send()
3777}
3778
3779const opDeleteAuthorizer = "DeleteAuthorizer"
3780
3781// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
3782// client's request for the DeleteAuthorizer operation. The "output" return
3783// value will be populated with the request's response once the request completes
3784// successfully.
3785//
3786// Use "Send" method on the returned Request to send the API call to the service.
3787// the "output" return value is not valid until after Send returns without error.
3788//
3789// See DeleteAuthorizer for more information on using the DeleteAuthorizer
3790// API call, and error handling.
3791//
3792// This method is useful when you want to inject custom logic or configuration
3793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3794//
3795//
3796//    // Example sending a request using the DeleteAuthorizerRequest method.
3797//    req, resp := client.DeleteAuthorizerRequest(params)
3798//
3799//    err := req.Send()
3800//    if err == nil { // resp is now filled
3801//        fmt.Println(resp)
3802//    }
3803func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
3804	op := &request.Operation{
3805		Name:       opDeleteAuthorizer,
3806		HTTPMethod: "DELETE",
3807		HTTPPath:   "/authorizer/{authorizerName}",
3808	}
3809
3810	if input == nil {
3811		input = &DeleteAuthorizerInput{}
3812	}
3813
3814	output = &DeleteAuthorizerOutput{}
3815	req = c.newRequest(op, input, output)
3816	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3817	return
3818}
3819
3820// DeleteAuthorizer API operation for AWS IoT.
3821//
3822// Deletes an authorizer.
3823//
3824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3825// with awserr.Error's Code and Message methods to get detailed information about
3826// the error.
3827//
3828// See the AWS API reference guide for AWS IoT's
3829// API operation DeleteAuthorizer for usage and error information.
3830//
3831// Returned Error Types:
3832//   * DeleteConflictException
3833//   You can't delete the resource because it is attached to one or more resources.
3834//
3835//   * ResourceNotFoundException
3836//   The specified resource does not exist.
3837//
3838//   * InvalidRequestException
3839//   The request is not valid.
3840//
3841//   * ThrottlingException
3842//   The rate exceeds the limit.
3843//
3844//   * UnauthorizedException
3845//   You are not authorized to perform this operation.
3846//
3847//   * ServiceUnavailableException
3848//   The service is temporarily unavailable.
3849//
3850//   * InternalFailureException
3851//   An unexpected error has occurred.
3852//
3853func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
3854	req, out := c.DeleteAuthorizerRequest(input)
3855	return out, req.Send()
3856}
3857
3858// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
3859// the ability to pass a context and additional request options.
3860//
3861// See DeleteAuthorizer for details on how to use this API operation.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
3868	req, out := c.DeleteAuthorizerRequest(input)
3869	req.SetContext(ctx)
3870	req.ApplyOptions(opts...)
3871	return out, req.Send()
3872}
3873
3874const opDeleteBillingGroup = "DeleteBillingGroup"
3875
3876// DeleteBillingGroupRequest generates a "aws/request.Request" representing the
3877// client's request for the DeleteBillingGroup operation. The "output" return
3878// value will be populated with the request's response once the request completes
3879// successfully.
3880//
3881// Use "Send" method on the returned Request to send the API call to the service.
3882// the "output" return value is not valid until after Send returns without error.
3883//
3884// See DeleteBillingGroup for more information on using the DeleteBillingGroup
3885// API call, and error handling.
3886//
3887// This method is useful when you want to inject custom logic or configuration
3888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3889//
3890//
3891//    // Example sending a request using the DeleteBillingGroupRequest method.
3892//    req, resp := client.DeleteBillingGroupRequest(params)
3893//
3894//    err := req.Send()
3895//    if err == nil { // resp is now filled
3896//        fmt.Println(resp)
3897//    }
3898func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
3899	op := &request.Operation{
3900		Name:       opDeleteBillingGroup,
3901		HTTPMethod: "DELETE",
3902		HTTPPath:   "/billing-groups/{billingGroupName}",
3903	}
3904
3905	if input == nil {
3906		input = &DeleteBillingGroupInput{}
3907	}
3908
3909	output = &DeleteBillingGroupOutput{}
3910	req = c.newRequest(op, input, output)
3911	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3912	return
3913}
3914
3915// DeleteBillingGroup API operation for AWS IoT.
3916//
3917// Deletes the billing group.
3918//
3919// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3920// with awserr.Error's Code and Message methods to get detailed information about
3921// the error.
3922//
3923// See the AWS API reference guide for AWS IoT's
3924// API operation DeleteBillingGroup for usage and error information.
3925//
3926// Returned Error Types:
3927//   * InvalidRequestException
3928//   The request is not valid.
3929//
3930//   * VersionConflictException
3931//   An exception thrown when the version of an entity specified with the expectedVersion
3932//   parameter does not match the latest version in the system.
3933//
3934//   * ThrottlingException
3935//   The rate exceeds the limit.
3936//
3937//   * InternalFailureException
3938//   An unexpected error has occurred.
3939//
3940func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
3941	req, out := c.DeleteBillingGroupRequest(input)
3942	return out, req.Send()
3943}
3944
3945// DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
3946// the ability to pass a context and additional request options.
3947//
3948// See DeleteBillingGroup for details on how to use this API operation.
3949//
3950// The context must be non-nil and will be used for request cancellation. If
3951// the context is nil a panic will occur. In the future the SDK may create
3952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3953// for more information on using Contexts.
3954func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
3955	req, out := c.DeleteBillingGroupRequest(input)
3956	req.SetContext(ctx)
3957	req.ApplyOptions(opts...)
3958	return out, req.Send()
3959}
3960
3961const opDeleteCACertificate = "DeleteCACertificate"
3962
3963// DeleteCACertificateRequest generates a "aws/request.Request" representing the
3964// client's request for the DeleteCACertificate operation. The "output" return
3965// value will be populated with the request's response once the request completes
3966// successfully.
3967//
3968// Use "Send" method on the returned Request to send the API call to the service.
3969// the "output" return value is not valid until after Send returns without error.
3970//
3971// See DeleteCACertificate for more information on using the DeleteCACertificate
3972// API call, and error handling.
3973//
3974// This method is useful when you want to inject custom logic or configuration
3975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3976//
3977//
3978//    // Example sending a request using the DeleteCACertificateRequest method.
3979//    req, resp := client.DeleteCACertificateRequest(params)
3980//
3981//    err := req.Send()
3982//    if err == nil { // resp is now filled
3983//        fmt.Println(resp)
3984//    }
3985func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
3986	op := &request.Operation{
3987		Name:       opDeleteCACertificate,
3988		HTTPMethod: "DELETE",
3989		HTTPPath:   "/cacertificate/{caCertificateId}",
3990	}
3991
3992	if input == nil {
3993		input = &DeleteCACertificateInput{}
3994	}
3995
3996	output = &DeleteCACertificateOutput{}
3997	req = c.newRequest(op, input, output)
3998	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3999	return
4000}
4001
4002// DeleteCACertificate API operation for AWS IoT.
4003//
4004// Deletes a registered CA certificate.
4005//
4006// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4007// with awserr.Error's Code and Message methods to get detailed information about
4008// the error.
4009//
4010// See the AWS API reference guide for AWS IoT's
4011// API operation DeleteCACertificate for usage and error information.
4012//
4013// Returned Error Types:
4014//   * InvalidRequestException
4015//   The request is not valid.
4016//
4017//   * CertificateStateException
4018//   The certificate operation is not allowed.
4019//
4020//   * ThrottlingException
4021//   The rate exceeds the limit.
4022//
4023//   * UnauthorizedException
4024//   You are not authorized to perform this operation.
4025//
4026//   * ServiceUnavailableException
4027//   The service is temporarily unavailable.
4028//
4029//   * InternalFailureException
4030//   An unexpected error has occurred.
4031//
4032//   * ResourceNotFoundException
4033//   The specified resource does not exist.
4034//
4035func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
4036	req, out := c.DeleteCACertificateRequest(input)
4037	return out, req.Send()
4038}
4039
4040// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
4041// the ability to pass a context and additional request options.
4042//
4043// See DeleteCACertificate for details on how to use this API operation.
4044//
4045// The context must be non-nil and will be used for request cancellation. If
4046// the context is nil a panic will occur. In the future the SDK may create
4047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4048// for more information on using Contexts.
4049func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
4050	req, out := c.DeleteCACertificateRequest(input)
4051	req.SetContext(ctx)
4052	req.ApplyOptions(opts...)
4053	return out, req.Send()
4054}
4055
4056const opDeleteCertificate = "DeleteCertificate"
4057
4058// DeleteCertificateRequest generates a "aws/request.Request" representing the
4059// client's request for the DeleteCertificate operation. The "output" return
4060// value will be populated with the request's response once the request completes
4061// successfully.
4062//
4063// Use "Send" method on the returned Request to send the API call to the service.
4064// the "output" return value is not valid until after Send returns without error.
4065//
4066// See DeleteCertificate for more information on using the DeleteCertificate
4067// API call, and error handling.
4068//
4069// This method is useful when you want to inject custom logic or configuration
4070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4071//
4072//
4073//    // Example sending a request using the DeleteCertificateRequest method.
4074//    req, resp := client.DeleteCertificateRequest(params)
4075//
4076//    err := req.Send()
4077//    if err == nil { // resp is now filled
4078//        fmt.Println(resp)
4079//    }
4080func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
4081	op := &request.Operation{
4082		Name:       opDeleteCertificate,
4083		HTTPMethod: "DELETE",
4084		HTTPPath:   "/certificates/{certificateId}",
4085	}
4086
4087	if input == nil {
4088		input = &DeleteCertificateInput{}
4089	}
4090
4091	output = &DeleteCertificateOutput{}
4092	req = c.newRequest(op, input, output)
4093	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4094	return
4095}
4096
4097// DeleteCertificate API operation for AWS IoT.
4098//
4099// Deletes the specified certificate.
4100//
4101// A certificate cannot be deleted if it has a policy or IoT thing attached
4102// to it or if its status is set to ACTIVE. To delete a certificate, first use
4103// the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate
4104// API to set the certificate to the INACTIVE status.
4105//
4106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4107// with awserr.Error's Code and Message methods to get detailed information about
4108// the error.
4109//
4110// See the AWS API reference guide for AWS IoT's
4111// API operation DeleteCertificate for usage and error information.
4112//
4113// Returned Error Types:
4114//   * CertificateStateException
4115//   The certificate operation is not allowed.
4116//
4117//   * DeleteConflictException
4118//   You can't delete the resource because it is attached to one or more resources.
4119//
4120//   * InvalidRequestException
4121//   The request is not valid.
4122//
4123//   * ThrottlingException
4124//   The rate exceeds the limit.
4125//
4126//   * UnauthorizedException
4127//   You are not authorized to perform this operation.
4128//
4129//   * ServiceUnavailableException
4130//   The service is temporarily unavailable.
4131//
4132//   * InternalFailureException
4133//   An unexpected error has occurred.
4134//
4135//   * ResourceNotFoundException
4136//   The specified resource does not exist.
4137//
4138func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
4139	req, out := c.DeleteCertificateRequest(input)
4140	return out, req.Send()
4141}
4142
4143// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
4144// the ability to pass a context and additional request options.
4145//
4146// See DeleteCertificate for details on how to use this API operation.
4147//
4148// The context must be non-nil and will be used for request cancellation. If
4149// the context is nil a panic will occur. In the future the SDK may create
4150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4151// for more information on using Contexts.
4152func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
4153	req, out := c.DeleteCertificateRequest(input)
4154	req.SetContext(ctx)
4155	req.ApplyOptions(opts...)
4156	return out, req.Send()
4157}
4158
4159const opDeleteDimension = "DeleteDimension"
4160
4161// DeleteDimensionRequest generates a "aws/request.Request" representing the
4162// client's request for the DeleteDimension operation. The "output" return
4163// value will be populated with the request's response once the request completes
4164// successfully.
4165//
4166// Use "Send" method on the returned Request to send the API call to the service.
4167// the "output" return value is not valid until after Send returns without error.
4168//
4169// See DeleteDimension for more information on using the DeleteDimension
4170// API call, and error handling.
4171//
4172// This method is useful when you want to inject custom logic or configuration
4173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4174//
4175//
4176//    // Example sending a request using the DeleteDimensionRequest method.
4177//    req, resp := client.DeleteDimensionRequest(params)
4178//
4179//    err := req.Send()
4180//    if err == nil { // resp is now filled
4181//        fmt.Println(resp)
4182//    }
4183func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
4184	op := &request.Operation{
4185		Name:       opDeleteDimension,
4186		HTTPMethod: "DELETE",
4187		HTTPPath:   "/dimensions/{name}",
4188	}
4189
4190	if input == nil {
4191		input = &DeleteDimensionInput{}
4192	}
4193
4194	output = &DeleteDimensionOutput{}
4195	req = c.newRequest(op, input, output)
4196	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4197	return
4198}
4199
4200// DeleteDimension API operation for AWS IoT.
4201//
4202// Removes the specified dimension from your AWS account.
4203//
4204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4205// with awserr.Error's Code and Message methods to get detailed information about
4206// the error.
4207//
4208// See the AWS API reference guide for AWS IoT's
4209// API operation DeleteDimension for usage and error information.
4210//
4211// Returned Error Types:
4212//   * InternalFailureException
4213//   An unexpected error has occurred.
4214//
4215//   * InvalidRequestException
4216//   The request is not valid.
4217//
4218//   * ThrottlingException
4219//   The rate exceeds the limit.
4220//
4221func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
4222	req, out := c.DeleteDimensionRequest(input)
4223	return out, req.Send()
4224}
4225
4226// DeleteDimensionWithContext is the same as DeleteDimension with the addition of
4227// the ability to pass a context and additional request options.
4228//
4229// See DeleteDimension for details on how to use this API operation.
4230//
4231// The context must be non-nil and will be used for request cancellation. If
4232// the context is nil a panic will occur. In the future the SDK may create
4233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4234// for more information on using Contexts.
4235func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
4236	req, out := c.DeleteDimensionRequest(input)
4237	req.SetContext(ctx)
4238	req.ApplyOptions(opts...)
4239	return out, req.Send()
4240}
4241
4242const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
4243
4244// DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
4245// client's request for the DeleteDomainConfiguration operation. The "output" return
4246// value will be populated with the request's response once the request completes
4247// successfully.
4248//
4249// Use "Send" method on the returned Request to send the API call to the service.
4250// the "output" return value is not valid until after Send returns without error.
4251//
4252// See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
4253// API call, and error handling.
4254//
4255// This method is useful when you want to inject custom logic or configuration
4256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4257//
4258//
4259//    // Example sending a request using the DeleteDomainConfigurationRequest method.
4260//    req, resp := client.DeleteDomainConfigurationRequest(params)
4261//
4262//    err := req.Send()
4263//    if err == nil { // resp is now filled
4264//        fmt.Println(resp)
4265//    }
4266func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
4267	op := &request.Operation{
4268		Name:       opDeleteDomainConfiguration,
4269		HTTPMethod: "DELETE",
4270		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
4271	}
4272
4273	if input == nil {
4274		input = &DeleteDomainConfigurationInput{}
4275	}
4276
4277	output = &DeleteDomainConfigurationOutput{}
4278	req = c.newRequest(op, input, output)
4279	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4280	return
4281}
4282
4283// DeleteDomainConfiguration API operation for AWS IoT.
4284//
4285// Deletes the specified domain configuration.
4286//
4287// The domain configuration feature is in public preview and is subject to change.
4288//
4289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4290// with awserr.Error's Code and Message methods to get detailed information about
4291// the error.
4292//
4293// See the AWS API reference guide for AWS IoT's
4294// API operation DeleteDomainConfiguration for usage and error information.
4295//
4296// Returned Error Types:
4297//   * ResourceNotFoundException
4298//   The specified resource does not exist.
4299//
4300//   * ThrottlingException
4301//   The rate exceeds the limit.
4302//
4303//   * UnauthorizedException
4304//   You are not authorized to perform this operation.
4305//
4306//   * ServiceUnavailableException
4307//   The service is temporarily unavailable.
4308//
4309//   * InternalFailureException
4310//   An unexpected error has occurred.
4311//
4312//   * InvalidRequestException
4313//   The request is not valid.
4314//
4315func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
4316	req, out := c.DeleteDomainConfigurationRequest(input)
4317	return out, req.Send()
4318}
4319
4320// DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
4321// the ability to pass a context and additional request options.
4322//
4323// See DeleteDomainConfiguration for details on how to use this API operation.
4324//
4325// The context must be non-nil and will be used for request cancellation. If
4326// the context is nil a panic will occur. In the future the SDK may create
4327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4328// for more information on using Contexts.
4329func (c *IoT) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
4330	req, out := c.DeleteDomainConfigurationRequest(input)
4331	req.SetContext(ctx)
4332	req.ApplyOptions(opts...)
4333	return out, req.Send()
4334}
4335
4336const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
4337
4338// DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
4339// client's request for the DeleteDynamicThingGroup operation. The "output" return
4340// value will be populated with the request's response once the request completes
4341// successfully.
4342//
4343// Use "Send" method on the returned Request to send the API call to the service.
4344// the "output" return value is not valid until after Send returns without error.
4345//
4346// See DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
4347// API call, and error handling.
4348//
4349// This method is useful when you want to inject custom logic or configuration
4350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4351//
4352//
4353//    // Example sending a request using the DeleteDynamicThingGroupRequest method.
4354//    req, resp := client.DeleteDynamicThingGroupRequest(params)
4355//
4356//    err := req.Send()
4357//    if err == nil { // resp is now filled
4358//        fmt.Println(resp)
4359//    }
4360func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
4361	op := &request.Operation{
4362		Name:       opDeleteDynamicThingGroup,
4363		HTTPMethod: "DELETE",
4364		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
4365	}
4366
4367	if input == nil {
4368		input = &DeleteDynamicThingGroupInput{}
4369	}
4370
4371	output = &DeleteDynamicThingGroupOutput{}
4372	req = c.newRequest(op, input, output)
4373	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4374	return
4375}
4376
4377// DeleteDynamicThingGroup API operation for AWS IoT.
4378//
4379// Deletes a dynamic thing group.
4380//
4381// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4382// with awserr.Error's Code and Message methods to get detailed information about
4383// the error.
4384//
4385// See the AWS API reference guide for AWS IoT's
4386// API operation DeleteDynamicThingGroup for usage and error information.
4387//
4388// Returned Error Types:
4389//   * InvalidRequestException
4390//   The request is not valid.
4391//
4392//   * VersionConflictException
4393//   An exception thrown when the version of an entity specified with the expectedVersion
4394//   parameter does not match the latest version in the system.
4395//
4396//   * ThrottlingException
4397//   The rate exceeds the limit.
4398//
4399//   * InternalFailureException
4400//   An unexpected error has occurred.
4401//
4402func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
4403	req, out := c.DeleteDynamicThingGroupRequest(input)
4404	return out, req.Send()
4405}
4406
4407// DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
4408// the ability to pass a context and additional request options.
4409//
4410// See DeleteDynamicThingGroup for details on how to use this API operation.
4411//
4412// The context must be non-nil and will be used for request cancellation. If
4413// the context is nil a panic will occur. In the future the SDK may create
4414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4415// for more information on using Contexts.
4416func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
4417	req, out := c.DeleteDynamicThingGroupRequest(input)
4418	req.SetContext(ctx)
4419	req.ApplyOptions(opts...)
4420	return out, req.Send()
4421}
4422
4423const opDeleteJob = "DeleteJob"
4424
4425// DeleteJobRequest generates a "aws/request.Request" representing the
4426// client's request for the DeleteJob operation. The "output" return
4427// value will be populated with the request's response once the request completes
4428// successfully.
4429//
4430// Use "Send" method on the returned Request to send the API call to the service.
4431// the "output" return value is not valid until after Send returns without error.
4432//
4433// See DeleteJob for more information on using the DeleteJob
4434// API call, and error handling.
4435//
4436// This method is useful when you want to inject custom logic or configuration
4437// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4438//
4439//
4440//    // Example sending a request using the DeleteJobRequest method.
4441//    req, resp := client.DeleteJobRequest(params)
4442//
4443//    err := req.Send()
4444//    if err == nil { // resp is now filled
4445//        fmt.Println(resp)
4446//    }
4447func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
4448	op := &request.Operation{
4449		Name:       opDeleteJob,
4450		HTTPMethod: "DELETE",
4451		HTTPPath:   "/jobs/{jobId}",
4452	}
4453
4454	if input == nil {
4455		input = &DeleteJobInput{}
4456	}
4457
4458	output = &DeleteJobOutput{}
4459	req = c.newRequest(op, input, output)
4460	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4461	return
4462}
4463
4464// DeleteJob API operation for AWS IoT.
4465//
4466// Deletes a job and its related job executions.
4467//
4468// Deleting a job may take time, depending on the number of job executions created
4469// for the job and various other factors. While the job is being deleted, the
4470// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
4471// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
4472// result in an error.
4473//
4474// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
4475// a LimitExceededException will occur.
4476//
4477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4478// with awserr.Error's Code and Message methods to get detailed information about
4479// the error.
4480//
4481// See the AWS API reference guide for AWS IoT's
4482// API operation DeleteJob for usage and error information.
4483//
4484// Returned Error Types:
4485//   * InvalidRequestException
4486//   The request is not valid.
4487//
4488//   * InvalidStateTransitionException
4489//   An attempt was made to change to an invalid state, for example by deleting
4490//   a job or a job execution which is "IN_PROGRESS" without setting the force
4491//   parameter.
4492//
4493//   * ResourceNotFoundException
4494//   The specified resource does not exist.
4495//
4496//   * LimitExceededException
4497//   A limit has been exceeded.
4498//
4499//   * ThrottlingException
4500//   The rate exceeds the limit.
4501//
4502//   * ServiceUnavailableException
4503//   The service is temporarily unavailable.
4504//
4505func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
4506	req, out := c.DeleteJobRequest(input)
4507	return out, req.Send()
4508}
4509
4510// DeleteJobWithContext is the same as DeleteJob with the addition of
4511// the ability to pass a context and additional request options.
4512//
4513// See DeleteJob for details on how to use this API operation.
4514//
4515// The context must be non-nil and will be used for request cancellation. If
4516// the context is nil a panic will occur. In the future the SDK may create
4517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4518// for more information on using Contexts.
4519func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
4520	req, out := c.DeleteJobRequest(input)
4521	req.SetContext(ctx)
4522	req.ApplyOptions(opts...)
4523	return out, req.Send()
4524}
4525
4526const opDeleteJobExecution = "DeleteJobExecution"
4527
4528// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
4529// client's request for the DeleteJobExecution operation. The "output" return
4530// value will be populated with the request's response once the request completes
4531// successfully.
4532//
4533// Use "Send" method on the returned Request to send the API call to the service.
4534// the "output" return value is not valid until after Send returns without error.
4535//
4536// See DeleteJobExecution for more information on using the DeleteJobExecution
4537// API call, and error handling.
4538//
4539// This method is useful when you want to inject custom logic or configuration
4540// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4541//
4542//
4543//    // Example sending a request using the DeleteJobExecutionRequest method.
4544//    req, resp := client.DeleteJobExecutionRequest(params)
4545//
4546//    err := req.Send()
4547//    if err == nil { // resp is now filled
4548//        fmt.Println(resp)
4549//    }
4550func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
4551	op := &request.Operation{
4552		Name:       opDeleteJobExecution,
4553		HTTPMethod: "DELETE",
4554		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
4555	}
4556
4557	if input == nil {
4558		input = &DeleteJobExecutionInput{}
4559	}
4560
4561	output = &DeleteJobExecutionOutput{}
4562	req = c.newRequest(op, input, output)
4563	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4564	return
4565}
4566
4567// DeleteJobExecution API operation for AWS IoT.
4568//
4569// Deletes a job execution.
4570//
4571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4572// with awserr.Error's Code and Message methods to get detailed information about
4573// the error.
4574//
4575// See the AWS API reference guide for AWS IoT's
4576// API operation DeleteJobExecution for usage and error information.
4577//
4578// Returned Error Types:
4579//   * InvalidRequestException
4580//   The request is not valid.
4581//
4582//   * InvalidStateTransitionException
4583//   An attempt was made to change to an invalid state, for example by deleting
4584//   a job or a job execution which is "IN_PROGRESS" without setting the force
4585//   parameter.
4586//
4587//   * ResourceNotFoundException
4588//   The specified resource does not exist.
4589//
4590//   * ThrottlingException
4591//   The rate exceeds the limit.
4592//
4593//   * ServiceUnavailableException
4594//   The service is temporarily unavailable.
4595//
4596func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
4597	req, out := c.DeleteJobExecutionRequest(input)
4598	return out, req.Send()
4599}
4600
4601// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
4602// the ability to pass a context and additional request options.
4603//
4604// See DeleteJobExecution for details on how to use this API operation.
4605//
4606// The context must be non-nil and will be used for request cancellation. If
4607// the context is nil a panic will occur. In the future the SDK may create
4608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4609// for more information on using Contexts.
4610func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
4611	req, out := c.DeleteJobExecutionRequest(input)
4612	req.SetContext(ctx)
4613	req.ApplyOptions(opts...)
4614	return out, req.Send()
4615}
4616
4617const opDeleteMitigationAction = "DeleteMitigationAction"
4618
4619// DeleteMitigationActionRequest generates a "aws/request.Request" representing the
4620// client's request for the DeleteMitigationAction operation. The "output" return
4621// value will be populated with the request's response once the request completes
4622// successfully.
4623//
4624// Use "Send" method on the returned Request to send the API call to the service.
4625// the "output" return value is not valid until after Send returns without error.
4626//
4627// See DeleteMitigationAction for more information on using the DeleteMitigationAction
4628// API call, and error handling.
4629//
4630// This method is useful when you want to inject custom logic or configuration
4631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4632//
4633//
4634//    // Example sending a request using the DeleteMitigationActionRequest method.
4635//    req, resp := client.DeleteMitigationActionRequest(params)
4636//
4637//    err := req.Send()
4638//    if err == nil { // resp is now filled
4639//        fmt.Println(resp)
4640//    }
4641func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
4642	op := &request.Operation{
4643		Name:       opDeleteMitigationAction,
4644		HTTPMethod: "DELETE",
4645		HTTPPath:   "/mitigationactions/actions/{actionName}",
4646	}
4647
4648	if input == nil {
4649		input = &DeleteMitigationActionInput{}
4650	}
4651
4652	output = &DeleteMitigationActionOutput{}
4653	req = c.newRequest(op, input, output)
4654	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4655	return
4656}
4657
4658// DeleteMitigationAction API operation for AWS IoT.
4659//
4660// Deletes a defined mitigation action from your AWS account.
4661//
4662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4663// with awserr.Error's Code and Message methods to get detailed information about
4664// the error.
4665//
4666// See the AWS API reference guide for AWS IoT's
4667// API operation DeleteMitigationAction for usage and error information.
4668//
4669// Returned Error Types:
4670//   * InvalidRequestException
4671//   The request is not valid.
4672//
4673//   * ThrottlingException
4674//   The rate exceeds the limit.
4675//
4676//   * InternalFailureException
4677//   An unexpected error has occurred.
4678//
4679func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
4680	req, out := c.DeleteMitigationActionRequest(input)
4681	return out, req.Send()
4682}
4683
4684// DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
4685// the ability to pass a context and additional request options.
4686//
4687// See DeleteMitigationAction for details on how to use this API operation.
4688//
4689// The context must be non-nil and will be used for request cancellation. If
4690// the context is nil a panic will occur. In the future the SDK may create
4691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4692// for more information on using Contexts.
4693func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
4694	req, out := c.DeleteMitigationActionRequest(input)
4695	req.SetContext(ctx)
4696	req.ApplyOptions(opts...)
4697	return out, req.Send()
4698}
4699
4700const opDeleteOTAUpdate = "DeleteOTAUpdate"
4701
4702// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
4703// client's request for the DeleteOTAUpdate operation. The "output" return
4704// value will be populated with the request's response once the request completes
4705// successfully.
4706//
4707// Use "Send" method on the returned Request to send the API call to the service.
4708// the "output" return value is not valid until after Send returns without error.
4709//
4710// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
4711// API call, and error handling.
4712//
4713// This method is useful when you want to inject custom logic or configuration
4714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4715//
4716//
4717//    // Example sending a request using the DeleteOTAUpdateRequest method.
4718//    req, resp := client.DeleteOTAUpdateRequest(params)
4719//
4720//    err := req.Send()
4721//    if err == nil { // resp is now filled
4722//        fmt.Println(resp)
4723//    }
4724func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
4725	op := &request.Operation{
4726		Name:       opDeleteOTAUpdate,
4727		HTTPMethod: "DELETE",
4728		HTTPPath:   "/otaUpdates/{otaUpdateId}",
4729	}
4730
4731	if input == nil {
4732		input = &DeleteOTAUpdateInput{}
4733	}
4734
4735	output = &DeleteOTAUpdateOutput{}
4736	req = c.newRequest(op, input, output)
4737	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4738	return
4739}
4740
4741// DeleteOTAUpdate API operation for AWS IoT.
4742//
4743// Delete an OTA update.
4744//
4745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4746// with awserr.Error's Code and Message methods to get detailed information about
4747// the error.
4748//
4749// See the AWS API reference guide for AWS IoT's
4750// API operation DeleteOTAUpdate for usage and error information.
4751//
4752// Returned Error Types:
4753//   * InvalidRequestException
4754//   The request is not valid.
4755//
4756//   * ResourceNotFoundException
4757//   The specified resource does not exist.
4758//
4759//   * ThrottlingException
4760//   The rate exceeds the limit.
4761//
4762//   * UnauthorizedException
4763//   You are not authorized to perform this operation.
4764//
4765//   * InternalFailureException
4766//   An unexpected error has occurred.
4767//
4768//   * ServiceUnavailableException
4769//   The service is temporarily unavailable.
4770//
4771//   * VersionConflictException
4772//   An exception thrown when the version of an entity specified with the expectedVersion
4773//   parameter does not match the latest version in the system.
4774//
4775func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
4776	req, out := c.DeleteOTAUpdateRequest(input)
4777	return out, req.Send()
4778}
4779
4780// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
4781// the ability to pass a context and additional request options.
4782//
4783// See DeleteOTAUpdate for details on how to use this API operation.
4784//
4785// The context must be non-nil and will be used for request cancellation. If
4786// the context is nil a panic will occur. In the future the SDK may create
4787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4788// for more information on using Contexts.
4789func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
4790	req, out := c.DeleteOTAUpdateRequest(input)
4791	req.SetContext(ctx)
4792	req.ApplyOptions(opts...)
4793	return out, req.Send()
4794}
4795
4796const opDeletePolicy = "DeletePolicy"
4797
4798// DeletePolicyRequest generates a "aws/request.Request" representing the
4799// client's request for the DeletePolicy operation. The "output" return
4800// value will be populated with the request's response once the request completes
4801// successfully.
4802//
4803// Use "Send" method on the returned Request to send the API call to the service.
4804// the "output" return value is not valid until after Send returns without error.
4805//
4806// See DeletePolicy for more information on using the DeletePolicy
4807// API call, and error handling.
4808//
4809// This method is useful when you want to inject custom logic or configuration
4810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4811//
4812//
4813//    // Example sending a request using the DeletePolicyRequest method.
4814//    req, resp := client.DeletePolicyRequest(params)
4815//
4816//    err := req.Send()
4817//    if err == nil { // resp is now filled
4818//        fmt.Println(resp)
4819//    }
4820func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
4821	op := &request.Operation{
4822		Name:       opDeletePolicy,
4823		HTTPMethod: "DELETE",
4824		HTTPPath:   "/policies/{policyName}",
4825	}
4826
4827	if input == nil {
4828		input = &DeletePolicyInput{}
4829	}
4830
4831	output = &DeletePolicyOutput{}
4832	req = c.newRequest(op, input, output)
4833	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4834	return
4835}
4836
4837// DeletePolicy API operation for AWS IoT.
4838//
4839// Deletes the specified policy.
4840//
4841// A policy cannot be deleted if it has non-default versions or it is attached
4842// to any certificate.
4843//
4844// To delete a policy, use the DeletePolicyVersion API to delete all non-default
4845// versions of the policy; use the DetachPrincipalPolicy API to detach the policy
4846// from any certificate; and then use the DeletePolicy API to delete the policy.
4847//
4848// When a policy is deleted using DeletePolicy, its default version is deleted
4849// with it.
4850//
4851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4852// with awserr.Error's Code and Message methods to get detailed information about
4853// the error.
4854//
4855// See the AWS API reference guide for AWS IoT's
4856// API operation DeletePolicy for usage and error information.
4857//
4858// Returned Error Types:
4859//   * DeleteConflictException
4860//   You can't delete the resource because it is attached to one or more resources.
4861//
4862//   * ResourceNotFoundException
4863//   The specified resource does not exist.
4864//
4865//   * InvalidRequestException
4866//   The request is not valid.
4867//
4868//   * ThrottlingException
4869//   The rate exceeds the limit.
4870//
4871//   * UnauthorizedException
4872//   You are not authorized to perform this operation.
4873//
4874//   * ServiceUnavailableException
4875//   The service is temporarily unavailable.
4876//
4877//   * InternalFailureException
4878//   An unexpected error has occurred.
4879//
4880func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
4881	req, out := c.DeletePolicyRequest(input)
4882	return out, req.Send()
4883}
4884
4885// DeletePolicyWithContext is the same as DeletePolicy with the addition of
4886// the ability to pass a context and additional request options.
4887//
4888// See DeletePolicy for details on how to use this API operation.
4889//
4890// The context must be non-nil and will be used for request cancellation. If
4891// the context is nil a panic will occur. In the future the SDK may create
4892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4893// for more information on using Contexts.
4894func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
4895	req, out := c.DeletePolicyRequest(input)
4896	req.SetContext(ctx)
4897	req.ApplyOptions(opts...)
4898	return out, req.Send()
4899}
4900
4901const opDeletePolicyVersion = "DeletePolicyVersion"
4902
4903// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
4904// client's request for the DeletePolicyVersion operation. The "output" return
4905// value will be populated with the request's response once the request completes
4906// successfully.
4907//
4908// Use "Send" method on the returned Request to send the API call to the service.
4909// the "output" return value is not valid until after Send returns without error.
4910//
4911// See DeletePolicyVersion for more information on using the DeletePolicyVersion
4912// API call, and error handling.
4913//
4914// This method is useful when you want to inject custom logic or configuration
4915// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4916//
4917//
4918//    // Example sending a request using the DeletePolicyVersionRequest method.
4919//    req, resp := client.DeletePolicyVersionRequest(params)
4920//
4921//    err := req.Send()
4922//    if err == nil { // resp is now filled
4923//        fmt.Println(resp)
4924//    }
4925func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
4926	op := &request.Operation{
4927		Name:       opDeletePolicyVersion,
4928		HTTPMethod: "DELETE",
4929		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
4930	}
4931
4932	if input == nil {
4933		input = &DeletePolicyVersionInput{}
4934	}
4935
4936	output = &DeletePolicyVersionOutput{}
4937	req = c.newRequest(op, input, output)
4938	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4939	return
4940}
4941
4942// DeletePolicyVersion API operation for AWS IoT.
4943//
4944// Deletes the specified version of the specified policy. You cannot delete
4945// the default version of a policy using this API. To delete the default version
4946// of a policy, use DeletePolicy. To find out which version of a policy is marked
4947// as the default version, use ListPolicyVersions.
4948//
4949// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4950// with awserr.Error's Code and Message methods to get detailed information about
4951// the error.
4952//
4953// See the AWS API reference guide for AWS IoT's
4954// API operation DeletePolicyVersion for usage and error information.
4955//
4956// Returned Error Types:
4957//   * DeleteConflictException
4958//   You can't delete the resource because it is attached to one or more resources.
4959//
4960//   * ResourceNotFoundException
4961//   The specified resource does not exist.
4962//
4963//   * InvalidRequestException
4964//   The request is not valid.
4965//
4966//   * ThrottlingException
4967//   The rate exceeds the limit.
4968//
4969//   * UnauthorizedException
4970//   You are not authorized to perform this operation.
4971//
4972//   * ServiceUnavailableException
4973//   The service is temporarily unavailable.
4974//
4975//   * InternalFailureException
4976//   An unexpected error has occurred.
4977//
4978func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
4979	req, out := c.DeletePolicyVersionRequest(input)
4980	return out, req.Send()
4981}
4982
4983// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
4984// the ability to pass a context and additional request options.
4985//
4986// See DeletePolicyVersion for details on how to use this API operation.
4987//
4988// The context must be non-nil and will be used for request cancellation. If
4989// the context is nil a panic will occur. In the future the SDK may create
4990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4991// for more information on using Contexts.
4992func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
4993	req, out := c.DeletePolicyVersionRequest(input)
4994	req.SetContext(ctx)
4995	req.ApplyOptions(opts...)
4996	return out, req.Send()
4997}
4998
4999const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
5000
5001// DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
5002// client's request for the DeleteProvisioningTemplate operation. The "output" return
5003// value will be populated with the request's response once the request completes
5004// successfully.
5005//
5006// Use "Send" method on the returned Request to send the API call to the service.
5007// the "output" return value is not valid until after Send returns without error.
5008//
5009// See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
5010// API call, and error handling.
5011//
5012// This method is useful when you want to inject custom logic or configuration
5013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5014//
5015//
5016//    // Example sending a request using the DeleteProvisioningTemplateRequest method.
5017//    req, resp := client.DeleteProvisioningTemplateRequest(params)
5018//
5019//    err := req.Send()
5020//    if err == nil { // resp is now filled
5021//        fmt.Println(resp)
5022//    }
5023func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
5024	op := &request.Operation{
5025		Name:       opDeleteProvisioningTemplate,
5026		HTTPMethod: "DELETE",
5027		HTTPPath:   "/provisioning-templates/{templateName}",
5028	}
5029
5030	if input == nil {
5031		input = &DeleteProvisioningTemplateInput{}
5032	}
5033
5034	output = &DeleteProvisioningTemplateOutput{}
5035	req = c.newRequest(op, input, output)
5036	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5037	return
5038}
5039
5040// DeleteProvisioningTemplate API operation for AWS IoT.
5041//
5042// Deletes a fleet provisioning template.
5043//
5044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5045// with awserr.Error's Code and Message methods to get detailed information about
5046// the error.
5047//
5048// See the AWS API reference guide for AWS IoT's
5049// API operation DeleteProvisioningTemplate for usage and error information.
5050//
5051// Returned Error Types:
5052//   * InternalFailureException
5053//   An unexpected error has occurred.
5054//
5055//   * InvalidRequestException
5056//   The request is not valid.
5057//
5058//   * ResourceNotFoundException
5059//   The specified resource does not exist.
5060//
5061//   * DeleteConflictException
5062//   You can't delete the resource because it is attached to one or more resources.
5063//
5064//   * ThrottlingException
5065//   The rate exceeds the limit.
5066//
5067//   * UnauthorizedException
5068//   You are not authorized to perform this operation.
5069//
5070func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
5071	req, out := c.DeleteProvisioningTemplateRequest(input)
5072	return out, req.Send()
5073}
5074
5075// DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
5076// the ability to pass a context and additional request options.
5077//
5078// See DeleteProvisioningTemplate for details on how to use this API operation.
5079//
5080// The context must be non-nil and will be used for request cancellation. If
5081// the context is nil a panic will occur. In the future the SDK may create
5082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5083// for more information on using Contexts.
5084func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
5085	req, out := c.DeleteProvisioningTemplateRequest(input)
5086	req.SetContext(ctx)
5087	req.ApplyOptions(opts...)
5088	return out, req.Send()
5089}
5090
5091const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
5092
5093// DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
5094// client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
5095// value will be populated with the request's response once the request completes
5096// successfully.
5097//
5098// Use "Send" method on the returned Request to send the API call to the service.
5099// the "output" return value is not valid until after Send returns without error.
5100//
5101// See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
5102// API call, and error handling.
5103//
5104// This method is useful when you want to inject custom logic or configuration
5105// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5106//
5107//
5108//    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
5109//    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
5110//
5111//    err := req.Send()
5112//    if err == nil { // resp is now filled
5113//        fmt.Println(resp)
5114//    }
5115func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
5116	op := &request.Operation{
5117		Name:       opDeleteProvisioningTemplateVersion,
5118		HTTPMethod: "DELETE",
5119		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
5120	}
5121
5122	if input == nil {
5123		input = &DeleteProvisioningTemplateVersionInput{}
5124	}
5125
5126	output = &DeleteProvisioningTemplateVersionOutput{}
5127	req = c.newRequest(op, input, output)
5128	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5129	return
5130}
5131
5132// DeleteProvisioningTemplateVersion API operation for AWS IoT.
5133//
5134// Deletes a fleet provisioning template version.
5135//
5136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5137// with awserr.Error's Code and Message methods to get detailed information about
5138// the error.
5139//
5140// See the AWS API reference guide for AWS IoT's
5141// API operation DeleteProvisioningTemplateVersion for usage and error information.
5142//
5143// Returned Error Types:
5144//   * InternalFailureException
5145//   An unexpected error has occurred.
5146//
5147//   * InvalidRequestException
5148//   The request is not valid.
5149//
5150//   * ThrottlingException
5151//   The rate exceeds the limit.
5152//
5153//   * ResourceNotFoundException
5154//   The specified resource does not exist.
5155//
5156//   * UnauthorizedException
5157//   You are not authorized to perform this operation.
5158//
5159//   * DeleteConflictException
5160//   You can't delete the resource because it is attached to one or more resources.
5161//
5162func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
5163	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5164	return out, req.Send()
5165}
5166
5167// DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
5168// the ability to pass a context and additional request options.
5169//
5170// See DeleteProvisioningTemplateVersion for details on how to use this API operation.
5171//
5172// The context must be non-nil and will be used for request cancellation. If
5173// the context is nil a panic will occur. In the future the SDK may create
5174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5175// for more information on using Contexts.
5176func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
5177	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5178	req.SetContext(ctx)
5179	req.ApplyOptions(opts...)
5180	return out, req.Send()
5181}
5182
5183const opDeleteRegistrationCode = "DeleteRegistrationCode"
5184
5185// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
5186// client's request for the DeleteRegistrationCode operation. The "output" return
5187// value will be populated with the request's response once the request completes
5188// successfully.
5189//
5190// Use "Send" method on the returned Request to send the API call to the service.
5191// the "output" return value is not valid until after Send returns without error.
5192//
5193// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
5194// API call, and error handling.
5195//
5196// This method is useful when you want to inject custom logic or configuration
5197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5198//
5199//
5200//    // Example sending a request using the DeleteRegistrationCodeRequest method.
5201//    req, resp := client.DeleteRegistrationCodeRequest(params)
5202//
5203//    err := req.Send()
5204//    if err == nil { // resp is now filled
5205//        fmt.Println(resp)
5206//    }
5207func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
5208	op := &request.Operation{
5209		Name:       opDeleteRegistrationCode,
5210		HTTPMethod: "DELETE",
5211		HTTPPath:   "/registrationcode",
5212	}
5213
5214	if input == nil {
5215		input = &DeleteRegistrationCodeInput{}
5216	}
5217
5218	output = &DeleteRegistrationCodeOutput{}
5219	req = c.newRequest(op, input, output)
5220	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5221	return
5222}
5223
5224// DeleteRegistrationCode API operation for AWS IoT.
5225//
5226// Deletes a CA certificate registration code.
5227//
5228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5229// with awserr.Error's Code and Message methods to get detailed information about
5230// the error.
5231//
5232// See the AWS API reference guide for AWS IoT's
5233// API operation DeleteRegistrationCode for usage and error information.
5234//
5235// Returned Error Types:
5236//   * ThrottlingException
5237//   The rate exceeds the limit.
5238//
5239//   * ResourceNotFoundException
5240//   The specified resource does not exist.
5241//
5242//   * UnauthorizedException
5243//   You are not authorized to perform this operation.
5244//
5245//   * ServiceUnavailableException
5246//   The service is temporarily unavailable.
5247//
5248//   * InternalFailureException
5249//   An unexpected error has occurred.
5250//
5251func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
5252	req, out := c.DeleteRegistrationCodeRequest(input)
5253	return out, req.Send()
5254}
5255
5256// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
5257// the ability to pass a context and additional request options.
5258//
5259// See DeleteRegistrationCode for details on how to use this API operation.
5260//
5261// The context must be non-nil and will be used for request cancellation. If
5262// the context is nil a panic will occur. In the future the SDK may create
5263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5264// for more information on using Contexts.
5265func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
5266	req, out := c.DeleteRegistrationCodeRequest(input)
5267	req.SetContext(ctx)
5268	req.ApplyOptions(opts...)
5269	return out, req.Send()
5270}
5271
5272const opDeleteRoleAlias = "DeleteRoleAlias"
5273
5274// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
5275// client's request for the DeleteRoleAlias operation. The "output" return
5276// value will be populated with the request's response once the request completes
5277// successfully.
5278//
5279// Use "Send" method on the returned Request to send the API call to the service.
5280// the "output" return value is not valid until after Send returns without error.
5281//
5282// See DeleteRoleAlias for more information on using the DeleteRoleAlias
5283// API call, and error handling.
5284//
5285// This method is useful when you want to inject custom logic or configuration
5286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5287//
5288//
5289//    // Example sending a request using the DeleteRoleAliasRequest method.
5290//    req, resp := client.DeleteRoleAliasRequest(params)
5291//
5292//    err := req.Send()
5293//    if err == nil { // resp is now filled
5294//        fmt.Println(resp)
5295//    }
5296func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
5297	op := &request.Operation{
5298		Name:       opDeleteRoleAlias,
5299		HTTPMethod: "DELETE",
5300		HTTPPath:   "/role-aliases/{roleAlias}",
5301	}
5302
5303	if input == nil {
5304		input = &DeleteRoleAliasInput{}
5305	}
5306
5307	output = &DeleteRoleAliasOutput{}
5308	req = c.newRequest(op, input, output)
5309	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5310	return
5311}
5312
5313// DeleteRoleAlias API operation for AWS IoT.
5314//
5315// Deletes a role alias
5316//
5317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5318// with awserr.Error's Code and Message methods to get detailed information about
5319// the error.
5320//
5321// See the AWS API reference guide for AWS IoT's
5322// API operation DeleteRoleAlias for usage and error information.
5323//
5324// Returned Error Types:
5325//   * DeleteConflictException
5326//   You can't delete the resource because it is attached to one or more resources.
5327//
5328//   * InvalidRequestException
5329//   The request is not valid.
5330//
5331//   * ThrottlingException
5332//   The rate exceeds the limit.
5333//
5334//   * UnauthorizedException
5335//   You are not authorized to perform this operation.
5336//
5337//   * ServiceUnavailableException
5338//   The service is temporarily unavailable.
5339//
5340//   * InternalFailureException
5341//   An unexpected error has occurred.
5342//
5343//   * ResourceNotFoundException
5344//   The specified resource does not exist.
5345//
5346func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
5347	req, out := c.DeleteRoleAliasRequest(input)
5348	return out, req.Send()
5349}
5350
5351// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
5352// the ability to pass a context and additional request options.
5353//
5354// See DeleteRoleAlias for details on how to use this API operation.
5355//
5356// The context must be non-nil and will be used for request cancellation. If
5357// the context is nil a panic will occur. In the future the SDK may create
5358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5359// for more information on using Contexts.
5360func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
5361	req, out := c.DeleteRoleAliasRequest(input)
5362	req.SetContext(ctx)
5363	req.ApplyOptions(opts...)
5364	return out, req.Send()
5365}
5366
5367const opDeleteScheduledAudit = "DeleteScheduledAudit"
5368
5369// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
5370// client's request for the DeleteScheduledAudit operation. The "output" return
5371// value will be populated with the request's response once the request completes
5372// successfully.
5373//
5374// Use "Send" method on the returned Request to send the API call to the service.
5375// the "output" return value is not valid until after Send returns without error.
5376//
5377// See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
5378// API call, and error handling.
5379//
5380// This method is useful when you want to inject custom logic or configuration
5381// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5382//
5383//
5384//    // Example sending a request using the DeleteScheduledAuditRequest method.
5385//    req, resp := client.DeleteScheduledAuditRequest(params)
5386//
5387//    err := req.Send()
5388//    if err == nil { // resp is now filled
5389//        fmt.Println(resp)
5390//    }
5391func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
5392	op := &request.Operation{
5393		Name:       opDeleteScheduledAudit,
5394		HTTPMethod: "DELETE",
5395		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
5396	}
5397
5398	if input == nil {
5399		input = &DeleteScheduledAuditInput{}
5400	}
5401
5402	output = &DeleteScheduledAuditOutput{}
5403	req = c.newRequest(op, input, output)
5404	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5405	return
5406}
5407
5408// DeleteScheduledAudit API operation for AWS IoT.
5409//
5410// Deletes a scheduled audit.
5411//
5412// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5413// with awserr.Error's Code and Message methods to get detailed information about
5414// the error.
5415//
5416// See the AWS API reference guide for AWS IoT's
5417// API operation DeleteScheduledAudit for usage and error information.
5418//
5419// Returned Error Types:
5420//   * InvalidRequestException
5421//   The request is not valid.
5422//
5423//   * ResourceNotFoundException
5424//   The specified resource does not exist.
5425//
5426//   * ThrottlingException
5427//   The rate exceeds the limit.
5428//
5429//   * InternalFailureException
5430//   An unexpected error has occurred.
5431//
5432func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
5433	req, out := c.DeleteScheduledAuditRequest(input)
5434	return out, req.Send()
5435}
5436
5437// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
5438// the ability to pass a context and additional request options.
5439//
5440// See DeleteScheduledAudit for details on how to use this API operation.
5441//
5442// The context must be non-nil and will be used for request cancellation. If
5443// the context is nil a panic will occur. In the future the SDK may create
5444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5445// for more information on using Contexts.
5446func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
5447	req, out := c.DeleteScheduledAuditRequest(input)
5448	req.SetContext(ctx)
5449	req.ApplyOptions(opts...)
5450	return out, req.Send()
5451}
5452
5453const opDeleteSecurityProfile = "DeleteSecurityProfile"
5454
5455// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
5456// client's request for the DeleteSecurityProfile operation. The "output" return
5457// value will be populated with the request's response once the request completes
5458// successfully.
5459//
5460// Use "Send" method on the returned Request to send the API call to the service.
5461// the "output" return value is not valid until after Send returns without error.
5462//
5463// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
5464// API call, and error handling.
5465//
5466// This method is useful when you want to inject custom logic or configuration
5467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5468//
5469//
5470//    // Example sending a request using the DeleteSecurityProfileRequest method.
5471//    req, resp := client.DeleteSecurityProfileRequest(params)
5472//
5473//    err := req.Send()
5474//    if err == nil { // resp is now filled
5475//        fmt.Println(resp)
5476//    }
5477func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
5478	op := &request.Operation{
5479		Name:       opDeleteSecurityProfile,
5480		HTTPMethod: "DELETE",
5481		HTTPPath:   "/security-profiles/{securityProfileName}",
5482	}
5483
5484	if input == nil {
5485		input = &DeleteSecurityProfileInput{}
5486	}
5487
5488	output = &DeleteSecurityProfileOutput{}
5489	req = c.newRequest(op, input, output)
5490	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5491	return
5492}
5493
5494// DeleteSecurityProfile API operation for AWS IoT.
5495//
5496// Deletes a Device Defender security profile.
5497//
5498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5499// with awserr.Error's Code and Message methods to get detailed information about
5500// the error.
5501//
5502// See the AWS API reference guide for AWS IoT's
5503// API operation DeleteSecurityProfile for usage and error information.
5504//
5505// Returned Error Types:
5506//   * InvalidRequestException
5507//   The request is not valid.
5508//
5509//   * ThrottlingException
5510//   The rate exceeds the limit.
5511//
5512//   * InternalFailureException
5513//   An unexpected error has occurred.
5514//
5515//   * VersionConflictException
5516//   An exception thrown when the version of an entity specified with the expectedVersion
5517//   parameter does not match the latest version in the system.
5518//
5519func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
5520	req, out := c.DeleteSecurityProfileRequest(input)
5521	return out, req.Send()
5522}
5523
5524// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
5525// the ability to pass a context and additional request options.
5526//
5527// See DeleteSecurityProfile for details on how to use this API operation.
5528//
5529// The context must be non-nil and will be used for request cancellation. If
5530// the context is nil a panic will occur. In the future the SDK may create
5531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5532// for more information on using Contexts.
5533func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
5534	req, out := c.DeleteSecurityProfileRequest(input)
5535	req.SetContext(ctx)
5536	req.ApplyOptions(opts...)
5537	return out, req.Send()
5538}
5539
5540const opDeleteStream = "DeleteStream"
5541
5542// DeleteStreamRequest generates a "aws/request.Request" representing the
5543// client's request for the DeleteStream operation. The "output" return
5544// value will be populated with the request's response once the request completes
5545// successfully.
5546//
5547// Use "Send" method on the returned Request to send the API call to the service.
5548// the "output" return value is not valid until after Send returns without error.
5549//
5550// See DeleteStream for more information on using the DeleteStream
5551// API call, and error handling.
5552//
5553// This method is useful when you want to inject custom logic or configuration
5554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5555//
5556//
5557//    // Example sending a request using the DeleteStreamRequest method.
5558//    req, resp := client.DeleteStreamRequest(params)
5559//
5560//    err := req.Send()
5561//    if err == nil { // resp is now filled
5562//        fmt.Println(resp)
5563//    }
5564func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
5565	op := &request.Operation{
5566		Name:       opDeleteStream,
5567		HTTPMethod: "DELETE",
5568		HTTPPath:   "/streams/{streamId}",
5569	}
5570
5571	if input == nil {
5572		input = &DeleteStreamInput{}
5573	}
5574
5575	output = &DeleteStreamOutput{}
5576	req = c.newRequest(op, input, output)
5577	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5578	return
5579}
5580
5581// DeleteStream API operation for AWS IoT.
5582//
5583// Deletes a stream.
5584//
5585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5586// with awserr.Error's Code and Message methods to get detailed information about
5587// the error.
5588//
5589// See the AWS API reference guide for AWS IoT's
5590// API operation DeleteStream for usage and error information.
5591//
5592// Returned Error Types:
5593//   * ResourceNotFoundException
5594//   The specified resource does not exist.
5595//
5596//   * DeleteConflictException
5597//   You can't delete the resource because it is attached to one or more resources.
5598//
5599//   * InvalidRequestException
5600//   The request is not valid.
5601//
5602//   * ThrottlingException
5603//   The rate exceeds the limit.
5604//
5605//   * UnauthorizedException
5606//   You are not authorized to perform this operation.
5607//
5608//   * ServiceUnavailableException
5609//   The service is temporarily unavailable.
5610//
5611//   * InternalFailureException
5612//   An unexpected error has occurred.
5613//
5614func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
5615	req, out := c.DeleteStreamRequest(input)
5616	return out, req.Send()
5617}
5618
5619// DeleteStreamWithContext is the same as DeleteStream with the addition of
5620// the ability to pass a context and additional request options.
5621//
5622// See DeleteStream for details on how to use this API operation.
5623//
5624// The context must be non-nil and will be used for request cancellation. If
5625// the context is nil a panic will occur. In the future the SDK may create
5626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5627// for more information on using Contexts.
5628func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
5629	req, out := c.DeleteStreamRequest(input)
5630	req.SetContext(ctx)
5631	req.ApplyOptions(opts...)
5632	return out, req.Send()
5633}
5634
5635const opDeleteThing = "DeleteThing"
5636
5637// DeleteThingRequest generates a "aws/request.Request" representing the
5638// client's request for the DeleteThing operation. The "output" return
5639// value will be populated with the request's response once the request completes
5640// successfully.
5641//
5642// Use "Send" method on the returned Request to send the API call to the service.
5643// the "output" return value is not valid until after Send returns without error.
5644//
5645// See DeleteThing for more information on using the DeleteThing
5646// API call, and error handling.
5647//
5648// This method is useful when you want to inject custom logic or configuration
5649// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5650//
5651//
5652//    // Example sending a request using the DeleteThingRequest method.
5653//    req, resp := client.DeleteThingRequest(params)
5654//
5655//    err := req.Send()
5656//    if err == nil { // resp is now filled
5657//        fmt.Println(resp)
5658//    }
5659func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
5660	op := &request.Operation{
5661		Name:       opDeleteThing,
5662		HTTPMethod: "DELETE",
5663		HTTPPath:   "/things/{thingName}",
5664	}
5665
5666	if input == nil {
5667		input = &DeleteThingInput{}
5668	}
5669
5670	output = &DeleteThingOutput{}
5671	req = c.newRequest(op, input, output)
5672	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5673	return
5674}
5675
5676// DeleteThing API operation for AWS IoT.
5677//
5678// Deletes the specified thing. Returns successfully with no error if the deletion
5679// is successful or you specify a thing that doesn't exist.
5680//
5681// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5682// with awserr.Error's Code and Message methods to get detailed information about
5683// the error.
5684//
5685// See the AWS API reference guide for AWS IoT's
5686// API operation DeleteThing for usage and error information.
5687//
5688// Returned Error Types:
5689//   * ResourceNotFoundException
5690//   The specified resource does not exist.
5691//
5692//   * VersionConflictException
5693//   An exception thrown when the version of an entity specified with the expectedVersion
5694//   parameter does not match the latest version in the system.
5695//
5696//   * InvalidRequestException
5697//   The request is not valid.
5698//
5699//   * ThrottlingException
5700//   The rate exceeds the limit.
5701//
5702//   * UnauthorizedException
5703//   You are not authorized to perform this operation.
5704//
5705//   * ServiceUnavailableException
5706//   The service is temporarily unavailable.
5707//
5708//   * InternalFailureException
5709//   An unexpected error has occurred.
5710//
5711func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
5712	req, out := c.DeleteThingRequest(input)
5713	return out, req.Send()
5714}
5715
5716// DeleteThingWithContext is the same as DeleteThing with the addition of
5717// the ability to pass a context and additional request options.
5718//
5719// See DeleteThing for details on how to use this API operation.
5720//
5721// The context must be non-nil and will be used for request cancellation. If
5722// the context is nil a panic will occur. In the future the SDK may create
5723// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5724// for more information on using Contexts.
5725func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
5726	req, out := c.DeleteThingRequest(input)
5727	req.SetContext(ctx)
5728	req.ApplyOptions(opts...)
5729	return out, req.Send()
5730}
5731
5732const opDeleteThingGroup = "DeleteThingGroup"
5733
5734// DeleteThingGroupRequest generates a "aws/request.Request" representing the
5735// client's request for the DeleteThingGroup operation. The "output" return
5736// value will be populated with the request's response once the request completes
5737// successfully.
5738//
5739// Use "Send" method on the returned Request to send the API call to the service.
5740// the "output" return value is not valid until after Send returns without error.
5741//
5742// See DeleteThingGroup for more information on using the DeleteThingGroup
5743// API call, and error handling.
5744//
5745// This method is useful when you want to inject custom logic or configuration
5746// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5747//
5748//
5749//    // Example sending a request using the DeleteThingGroupRequest method.
5750//    req, resp := client.DeleteThingGroupRequest(params)
5751//
5752//    err := req.Send()
5753//    if err == nil { // resp is now filled
5754//        fmt.Println(resp)
5755//    }
5756func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
5757	op := &request.Operation{
5758		Name:       opDeleteThingGroup,
5759		HTTPMethod: "DELETE",
5760		HTTPPath:   "/thing-groups/{thingGroupName}",
5761	}
5762
5763	if input == nil {
5764		input = &DeleteThingGroupInput{}
5765	}
5766
5767	output = &DeleteThingGroupOutput{}
5768	req = c.newRequest(op, input, output)
5769	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5770	return
5771}
5772
5773// DeleteThingGroup API operation for AWS IoT.
5774//
5775// Deletes a thing group.
5776//
5777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5778// with awserr.Error's Code and Message methods to get detailed information about
5779// the error.
5780//
5781// See the AWS API reference guide for AWS IoT's
5782// API operation DeleteThingGroup for usage and error information.
5783//
5784// Returned Error Types:
5785//   * InvalidRequestException
5786//   The request is not valid.
5787//
5788//   * VersionConflictException
5789//   An exception thrown when the version of an entity specified with the expectedVersion
5790//   parameter does not match the latest version in the system.
5791//
5792//   * ThrottlingException
5793//   The rate exceeds the limit.
5794//
5795//   * InternalFailureException
5796//   An unexpected error has occurred.
5797//
5798func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
5799	req, out := c.DeleteThingGroupRequest(input)
5800	return out, req.Send()
5801}
5802
5803// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
5804// the ability to pass a context and additional request options.
5805//
5806// See DeleteThingGroup for details on how to use this API operation.
5807//
5808// The context must be non-nil and will be used for request cancellation. If
5809// the context is nil a panic will occur. In the future the SDK may create
5810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5811// for more information on using Contexts.
5812func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
5813	req, out := c.DeleteThingGroupRequest(input)
5814	req.SetContext(ctx)
5815	req.ApplyOptions(opts...)
5816	return out, req.Send()
5817}
5818
5819const opDeleteThingType = "DeleteThingType"
5820
5821// DeleteThingTypeRequest generates a "aws/request.Request" representing the
5822// client's request for the DeleteThingType operation. The "output" return
5823// value will be populated with the request's response once the request completes
5824// successfully.
5825//
5826// Use "Send" method on the returned Request to send the API call to the service.
5827// the "output" return value is not valid until after Send returns without error.
5828//
5829// See DeleteThingType for more information on using the DeleteThingType
5830// API call, and error handling.
5831//
5832// This method is useful when you want to inject custom logic or configuration
5833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5834//
5835//
5836//    // Example sending a request using the DeleteThingTypeRequest method.
5837//    req, resp := client.DeleteThingTypeRequest(params)
5838//
5839//    err := req.Send()
5840//    if err == nil { // resp is now filled
5841//        fmt.Println(resp)
5842//    }
5843func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
5844	op := &request.Operation{
5845		Name:       opDeleteThingType,
5846		HTTPMethod: "DELETE",
5847		HTTPPath:   "/thing-types/{thingTypeName}",
5848	}
5849
5850	if input == nil {
5851		input = &DeleteThingTypeInput{}
5852	}
5853
5854	output = &DeleteThingTypeOutput{}
5855	req = c.newRequest(op, input, output)
5856	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5857	return
5858}
5859
5860// DeleteThingType API operation for AWS IoT.
5861//
5862// Deletes the specified thing type. You cannot delete a thing type if it has
5863// things associated with it. To delete a thing type, first mark it as deprecated
5864// by calling DeprecateThingType, then remove any associated things by calling
5865// UpdateThing to change the thing type on any associated thing, and finally
5866// use DeleteThingType to delete the thing type.
5867//
5868// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5869// with awserr.Error's Code and Message methods to get detailed information about
5870// the error.
5871//
5872// See the AWS API reference guide for AWS IoT's
5873// API operation DeleteThingType for usage and error information.
5874//
5875// Returned Error Types:
5876//   * ResourceNotFoundException
5877//   The specified resource does not exist.
5878//
5879//   * InvalidRequestException
5880//   The request is not valid.
5881//
5882//   * ThrottlingException
5883//   The rate exceeds the limit.
5884//
5885//   * UnauthorizedException
5886//   You are not authorized to perform this operation.
5887//
5888//   * ServiceUnavailableException
5889//   The service is temporarily unavailable.
5890//
5891//   * InternalFailureException
5892//   An unexpected error has occurred.
5893//
5894func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
5895	req, out := c.DeleteThingTypeRequest(input)
5896	return out, req.Send()
5897}
5898
5899// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
5900// the ability to pass a context and additional request options.
5901//
5902// See DeleteThingType for details on how to use this API operation.
5903//
5904// The context must be non-nil and will be used for request cancellation. If
5905// the context is nil a panic will occur. In the future the SDK may create
5906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5907// for more information on using Contexts.
5908func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
5909	req, out := c.DeleteThingTypeRequest(input)
5910	req.SetContext(ctx)
5911	req.ApplyOptions(opts...)
5912	return out, req.Send()
5913}
5914
5915const opDeleteTopicRule = "DeleteTopicRule"
5916
5917// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
5918// client's request for the DeleteTopicRule operation. The "output" return
5919// value will be populated with the request's response once the request completes
5920// successfully.
5921//
5922// Use "Send" method on the returned Request to send the API call to the service.
5923// the "output" return value is not valid until after Send returns without error.
5924//
5925// See DeleteTopicRule for more information on using the DeleteTopicRule
5926// API call, and error handling.
5927//
5928// This method is useful when you want to inject custom logic or configuration
5929// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5930//
5931//
5932//    // Example sending a request using the DeleteTopicRuleRequest method.
5933//    req, resp := client.DeleteTopicRuleRequest(params)
5934//
5935//    err := req.Send()
5936//    if err == nil { // resp is now filled
5937//        fmt.Println(resp)
5938//    }
5939func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
5940	op := &request.Operation{
5941		Name:       opDeleteTopicRule,
5942		HTTPMethod: "DELETE",
5943		HTTPPath:   "/rules/{ruleName}",
5944	}
5945
5946	if input == nil {
5947		input = &DeleteTopicRuleInput{}
5948	}
5949
5950	output = &DeleteTopicRuleOutput{}
5951	req = c.newRequest(op, input, output)
5952	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5953	return
5954}
5955
5956// DeleteTopicRule API operation for AWS IoT.
5957//
5958// Deletes the rule.
5959//
5960// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5961// with awserr.Error's Code and Message methods to get detailed information about
5962// the error.
5963//
5964// See the AWS API reference guide for AWS IoT's
5965// API operation DeleteTopicRule for usage and error information.
5966//
5967// Returned Error Types:
5968//   * InternalException
5969//   An unexpected error has occurred.
5970//
5971//   * InvalidRequestException
5972//   The request is not valid.
5973//
5974//   * ServiceUnavailableException
5975//   The service is temporarily unavailable.
5976//
5977//   * UnauthorizedException
5978//   You are not authorized to perform this operation.
5979//
5980//   * ConflictingResourceUpdateException
5981//   A conflicting resource update exception. This exception is thrown when two
5982//   pending updates cause a conflict.
5983//
5984func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
5985	req, out := c.DeleteTopicRuleRequest(input)
5986	return out, req.Send()
5987}
5988
5989// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
5990// the ability to pass a context and additional request options.
5991//
5992// See DeleteTopicRule for details on how to use this API operation.
5993//
5994// The context must be non-nil and will be used for request cancellation. If
5995// the context is nil a panic will occur. In the future the SDK may create
5996// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5997// for more information on using Contexts.
5998func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
5999	req, out := c.DeleteTopicRuleRequest(input)
6000	req.SetContext(ctx)
6001	req.ApplyOptions(opts...)
6002	return out, req.Send()
6003}
6004
6005const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
6006
6007// DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
6008// client's request for the DeleteTopicRuleDestination operation. The "output" return
6009// value will be populated with the request's response once the request completes
6010// successfully.
6011//
6012// Use "Send" method on the returned Request to send the API call to the service.
6013// the "output" return value is not valid until after Send returns without error.
6014//
6015// See DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
6016// API call, and error handling.
6017//
6018// This method is useful when you want to inject custom logic or configuration
6019// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6020//
6021//
6022//    // Example sending a request using the DeleteTopicRuleDestinationRequest method.
6023//    req, resp := client.DeleteTopicRuleDestinationRequest(params)
6024//
6025//    err := req.Send()
6026//    if err == nil { // resp is now filled
6027//        fmt.Println(resp)
6028//    }
6029func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
6030	op := &request.Operation{
6031		Name:       opDeleteTopicRuleDestination,
6032		HTTPMethod: "DELETE",
6033		HTTPPath:   "/destinations/{arn+}",
6034	}
6035
6036	if input == nil {
6037		input = &DeleteTopicRuleDestinationInput{}
6038	}
6039
6040	output = &DeleteTopicRuleDestinationOutput{}
6041	req = c.newRequest(op, input, output)
6042	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6043	return
6044}
6045
6046// DeleteTopicRuleDestination API operation for AWS IoT.
6047//
6048// Deletes a topic rule destination.
6049//
6050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6051// with awserr.Error's Code and Message methods to get detailed information about
6052// the error.
6053//
6054// See the AWS API reference guide for AWS IoT's
6055// API operation DeleteTopicRuleDestination for usage and error information.
6056//
6057// Returned Error Types:
6058//   * InternalException
6059//   An unexpected error has occurred.
6060//
6061//   * InvalidRequestException
6062//   The request is not valid.
6063//
6064//   * ServiceUnavailableException
6065//   The service is temporarily unavailable.
6066//
6067//   * UnauthorizedException
6068//   You are not authorized to perform this operation.
6069//
6070//   * ConflictingResourceUpdateException
6071//   A conflicting resource update exception. This exception is thrown when two
6072//   pending updates cause a conflict.
6073//
6074func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
6075	req, out := c.DeleteTopicRuleDestinationRequest(input)
6076	return out, req.Send()
6077}
6078
6079// DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
6080// the ability to pass a context and additional request options.
6081//
6082// See DeleteTopicRuleDestination for details on how to use this API operation.
6083//
6084// The context must be non-nil and will be used for request cancellation. If
6085// the context is nil a panic will occur. In the future the SDK may create
6086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6087// for more information on using Contexts.
6088func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
6089	req, out := c.DeleteTopicRuleDestinationRequest(input)
6090	req.SetContext(ctx)
6091	req.ApplyOptions(opts...)
6092	return out, req.Send()
6093}
6094
6095const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
6096
6097// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
6098// client's request for the DeleteV2LoggingLevel operation. The "output" return
6099// value will be populated with the request's response once the request completes
6100// successfully.
6101//
6102// Use "Send" method on the returned Request to send the API call to the service.
6103// the "output" return value is not valid until after Send returns without error.
6104//
6105// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
6106// API call, and error handling.
6107//
6108// This method is useful when you want to inject custom logic or configuration
6109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6110//
6111//
6112//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
6113//    req, resp := client.DeleteV2LoggingLevelRequest(params)
6114//
6115//    err := req.Send()
6116//    if err == nil { // resp is now filled
6117//        fmt.Println(resp)
6118//    }
6119func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
6120	op := &request.Operation{
6121		Name:       opDeleteV2LoggingLevel,
6122		HTTPMethod: "DELETE",
6123		HTTPPath:   "/v2LoggingLevel",
6124	}
6125
6126	if input == nil {
6127		input = &DeleteV2LoggingLevelInput{}
6128	}
6129
6130	output = &DeleteV2LoggingLevelOutput{}
6131	req = c.newRequest(op, input, output)
6132	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6133	return
6134}
6135
6136// DeleteV2LoggingLevel API operation for AWS IoT.
6137//
6138// Deletes a logging level.
6139//
6140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6141// with awserr.Error's Code and Message methods to get detailed information about
6142// the error.
6143//
6144// See the AWS API reference guide for AWS IoT's
6145// API operation DeleteV2LoggingLevel for usage and error information.
6146//
6147// Returned Error Types:
6148//   * InternalException
6149//   An unexpected error has occurred.
6150//
6151//   * InvalidRequestException
6152//   The request is not valid.
6153//
6154//   * ServiceUnavailableException
6155//   The service is temporarily unavailable.
6156//
6157func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
6158	req, out := c.DeleteV2LoggingLevelRequest(input)
6159	return out, req.Send()
6160}
6161
6162// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
6163// the ability to pass a context and additional request options.
6164//
6165// See DeleteV2LoggingLevel for details on how to use this API operation.
6166//
6167// The context must be non-nil and will be used for request cancellation. If
6168// the context is nil a panic will occur. In the future the SDK may create
6169// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6170// for more information on using Contexts.
6171func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
6172	req, out := c.DeleteV2LoggingLevelRequest(input)
6173	req.SetContext(ctx)
6174	req.ApplyOptions(opts...)
6175	return out, req.Send()
6176}
6177
6178const opDeprecateThingType = "DeprecateThingType"
6179
6180// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
6181// client's request for the DeprecateThingType operation. The "output" return
6182// value will be populated with the request's response once the request completes
6183// successfully.
6184//
6185// Use "Send" method on the returned Request to send the API call to the service.
6186// the "output" return value is not valid until after Send returns without error.
6187//
6188// See DeprecateThingType for more information on using the DeprecateThingType
6189// API call, and error handling.
6190//
6191// This method is useful when you want to inject custom logic or configuration
6192// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6193//
6194//
6195//    // Example sending a request using the DeprecateThingTypeRequest method.
6196//    req, resp := client.DeprecateThingTypeRequest(params)
6197//
6198//    err := req.Send()
6199//    if err == nil { // resp is now filled
6200//        fmt.Println(resp)
6201//    }
6202func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
6203	op := &request.Operation{
6204		Name:       opDeprecateThingType,
6205		HTTPMethod: "POST",
6206		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
6207	}
6208
6209	if input == nil {
6210		input = &DeprecateThingTypeInput{}
6211	}
6212
6213	output = &DeprecateThingTypeOutput{}
6214	req = c.newRequest(op, input, output)
6215	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6216	return
6217}
6218
6219// DeprecateThingType API operation for AWS IoT.
6220//
6221// Deprecates a thing type. You can not associate new things with deprecated
6222// thing type.
6223//
6224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6225// with awserr.Error's Code and Message methods to get detailed information about
6226// the error.
6227//
6228// See the AWS API reference guide for AWS IoT's
6229// API operation DeprecateThingType for usage and error information.
6230//
6231// Returned Error Types:
6232//   * ResourceNotFoundException
6233//   The specified resource does not exist.
6234//
6235//   * InvalidRequestException
6236//   The request is not valid.
6237//
6238//   * ThrottlingException
6239//   The rate exceeds the limit.
6240//
6241//   * UnauthorizedException
6242//   You are not authorized to perform this operation.
6243//
6244//   * ServiceUnavailableException
6245//   The service is temporarily unavailable.
6246//
6247//   * InternalFailureException
6248//   An unexpected error has occurred.
6249//
6250func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
6251	req, out := c.DeprecateThingTypeRequest(input)
6252	return out, req.Send()
6253}
6254
6255// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
6256// the ability to pass a context and additional request options.
6257//
6258// See DeprecateThingType for details on how to use this API operation.
6259//
6260// The context must be non-nil and will be used for request cancellation. If
6261// the context is nil a panic will occur. In the future the SDK may create
6262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6263// for more information on using Contexts.
6264func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
6265	req, out := c.DeprecateThingTypeRequest(input)
6266	req.SetContext(ctx)
6267	req.ApplyOptions(opts...)
6268	return out, req.Send()
6269}
6270
6271const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
6272
6273// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
6274// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
6275// value will be populated with the request's response once the request completes
6276// successfully.
6277//
6278// Use "Send" method on the returned Request to send the API call to the service.
6279// the "output" return value is not valid until after Send returns without error.
6280//
6281// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
6282// API call, and error handling.
6283//
6284// This method is useful when you want to inject custom logic or configuration
6285// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6286//
6287//
6288//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
6289//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
6290//
6291//    err := req.Send()
6292//    if err == nil { // resp is now filled
6293//        fmt.Println(resp)
6294//    }
6295func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
6296	op := &request.Operation{
6297		Name:       opDescribeAccountAuditConfiguration,
6298		HTTPMethod: "GET",
6299		HTTPPath:   "/audit/configuration",
6300	}
6301
6302	if input == nil {
6303		input = &DescribeAccountAuditConfigurationInput{}
6304	}
6305
6306	output = &DescribeAccountAuditConfigurationOutput{}
6307	req = c.newRequest(op, input, output)
6308	return
6309}
6310
6311// DescribeAccountAuditConfiguration API operation for AWS IoT.
6312//
6313// Gets information about the Device Defender audit settings for this account.
6314// Settings include how audit notifications are sent and which audit checks
6315// are enabled or disabled.
6316//
6317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6318// with awserr.Error's Code and Message methods to get detailed information about
6319// the error.
6320//
6321// See the AWS API reference guide for AWS IoT's
6322// API operation DescribeAccountAuditConfiguration for usage and error information.
6323//
6324// Returned Error Types:
6325//   * ThrottlingException
6326//   The rate exceeds the limit.
6327//
6328//   * InternalFailureException
6329//   An unexpected error has occurred.
6330//
6331func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
6332	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6333	return out, req.Send()
6334}
6335
6336// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
6337// the ability to pass a context and additional request options.
6338//
6339// See DescribeAccountAuditConfiguration for details on how to use this API operation.
6340//
6341// The context must be non-nil and will be used for request cancellation. If
6342// the context is nil a panic will occur. In the future the SDK may create
6343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6344// for more information on using Contexts.
6345func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
6346	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6347	req.SetContext(ctx)
6348	req.ApplyOptions(opts...)
6349	return out, req.Send()
6350}
6351
6352const opDescribeAuditFinding = "DescribeAuditFinding"
6353
6354// DescribeAuditFindingRequest generates a "aws/request.Request" representing the
6355// client's request for the DescribeAuditFinding operation. The "output" return
6356// value will be populated with the request's response once the request completes
6357// successfully.
6358//
6359// Use "Send" method on the returned Request to send the API call to the service.
6360// the "output" return value is not valid until after Send returns without error.
6361//
6362// See DescribeAuditFinding for more information on using the DescribeAuditFinding
6363// API call, and error handling.
6364//
6365// This method is useful when you want to inject custom logic or configuration
6366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6367//
6368//
6369//    // Example sending a request using the DescribeAuditFindingRequest method.
6370//    req, resp := client.DescribeAuditFindingRequest(params)
6371//
6372//    err := req.Send()
6373//    if err == nil { // resp is now filled
6374//        fmt.Println(resp)
6375//    }
6376func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
6377	op := &request.Operation{
6378		Name:       opDescribeAuditFinding,
6379		HTTPMethod: "GET",
6380		HTTPPath:   "/audit/findings/{findingId}",
6381	}
6382
6383	if input == nil {
6384		input = &DescribeAuditFindingInput{}
6385	}
6386
6387	output = &DescribeAuditFindingOutput{}
6388	req = c.newRequest(op, input, output)
6389	return
6390}
6391
6392// DescribeAuditFinding API operation for AWS IoT.
6393//
6394// Gets information about a single audit finding. Properties include the reason
6395// for noncompliance, the severity of the issue, and when the audit that returned
6396// the finding was started.
6397//
6398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6399// with awserr.Error's Code and Message methods to get detailed information about
6400// the error.
6401//
6402// See the AWS API reference guide for AWS IoT's
6403// API operation DescribeAuditFinding for usage and error information.
6404//
6405// Returned Error Types:
6406//   * ResourceNotFoundException
6407//   The specified resource does not exist.
6408//
6409//   * InvalidRequestException
6410//   The request is not valid.
6411//
6412//   * ThrottlingException
6413//   The rate exceeds the limit.
6414//
6415//   * InternalFailureException
6416//   An unexpected error has occurred.
6417//
6418func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
6419	req, out := c.DescribeAuditFindingRequest(input)
6420	return out, req.Send()
6421}
6422
6423// DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
6424// the ability to pass a context and additional request options.
6425//
6426// See DescribeAuditFinding for details on how to use this API operation.
6427//
6428// The context must be non-nil and will be used for request cancellation. If
6429// the context is nil a panic will occur. In the future the SDK may create
6430// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6431// for more information on using Contexts.
6432func (c *IoT) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
6433	req, out := c.DescribeAuditFindingRequest(input)
6434	req.SetContext(ctx)
6435	req.ApplyOptions(opts...)
6436	return out, req.Send()
6437}
6438
6439const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
6440
6441// DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
6442// client's request for the DescribeAuditMitigationActionsTask operation. The "output" return
6443// value will be populated with the request's response once the request completes
6444// successfully.
6445//
6446// Use "Send" method on the returned Request to send the API call to the service.
6447// the "output" return value is not valid until after Send returns without error.
6448//
6449// See DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
6450// API call, and error handling.
6451//
6452// This method is useful when you want to inject custom logic or configuration
6453// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6454//
6455//
6456//    // Example sending a request using the DescribeAuditMitigationActionsTaskRequest method.
6457//    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
6458//
6459//    err := req.Send()
6460//    if err == nil { // resp is now filled
6461//        fmt.Println(resp)
6462//    }
6463func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
6464	op := &request.Operation{
6465		Name:       opDescribeAuditMitigationActionsTask,
6466		HTTPMethod: "GET",
6467		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
6468	}
6469
6470	if input == nil {
6471		input = &DescribeAuditMitigationActionsTaskInput{}
6472	}
6473
6474	output = &DescribeAuditMitigationActionsTaskOutput{}
6475	req = c.newRequest(op, input, output)
6476	return
6477}
6478
6479// DescribeAuditMitigationActionsTask API operation for AWS IoT.
6480//
6481// Gets information about an audit mitigation task that is used to apply mitigation
6482// actions to a set of audit findings. Properties include the actions being
6483// applied, the audit checks to which they're being applied, the task status,
6484// and aggregated task statistics.
6485//
6486// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6487// with awserr.Error's Code and Message methods to get detailed information about
6488// the error.
6489//
6490// See the AWS API reference guide for AWS IoT's
6491// API operation DescribeAuditMitigationActionsTask for usage and error information.
6492//
6493// Returned Error Types:
6494//   * InvalidRequestException
6495//   The request is not valid.
6496//
6497//   * ResourceNotFoundException
6498//   The specified resource does not exist.
6499//
6500//   * ThrottlingException
6501//   The rate exceeds the limit.
6502//
6503//   * InternalFailureException
6504//   An unexpected error has occurred.
6505//
6506func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
6507	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
6508	return out, req.Send()
6509}
6510
6511// DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
6512// the ability to pass a context and additional request options.
6513//
6514// See DescribeAuditMitigationActionsTask for details on how to use this API operation.
6515//
6516// The context must be non-nil and will be used for request cancellation. If
6517// the context is nil a panic will occur. In the future the SDK may create
6518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6519// for more information on using Contexts.
6520func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
6521	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
6522	req.SetContext(ctx)
6523	req.ApplyOptions(opts...)
6524	return out, req.Send()
6525}
6526
6527const opDescribeAuditTask = "DescribeAuditTask"
6528
6529// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
6530// client's request for the DescribeAuditTask operation. The "output" return
6531// value will be populated with the request's response once the request completes
6532// successfully.
6533//
6534// Use "Send" method on the returned Request to send the API call to the service.
6535// the "output" return value is not valid until after Send returns without error.
6536//
6537// See DescribeAuditTask for more information on using the DescribeAuditTask
6538// API call, and error handling.
6539//
6540// This method is useful when you want to inject custom logic or configuration
6541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6542//
6543//
6544//    // Example sending a request using the DescribeAuditTaskRequest method.
6545//    req, resp := client.DescribeAuditTaskRequest(params)
6546//
6547//    err := req.Send()
6548//    if err == nil { // resp is now filled
6549//        fmt.Println(resp)
6550//    }
6551func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
6552	op := &request.Operation{
6553		Name:       opDescribeAuditTask,
6554		HTTPMethod: "GET",
6555		HTTPPath:   "/audit/tasks/{taskId}",
6556	}
6557
6558	if input == nil {
6559		input = &DescribeAuditTaskInput{}
6560	}
6561
6562	output = &DescribeAuditTaskOutput{}
6563	req = c.newRequest(op, input, output)
6564	return
6565}
6566
6567// DescribeAuditTask API operation for AWS IoT.
6568//
6569// Gets information about a Device Defender audit.
6570//
6571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6572// with awserr.Error's Code and Message methods to get detailed information about
6573// the error.
6574//
6575// See the AWS API reference guide for AWS IoT's
6576// API operation DescribeAuditTask for usage and error information.
6577//
6578// Returned Error Types:
6579//   * InvalidRequestException
6580//   The request is not valid.
6581//
6582//   * ResourceNotFoundException
6583//   The specified resource does not exist.
6584//
6585//   * ThrottlingException
6586//   The rate exceeds the limit.
6587//
6588//   * InternalFailureException
6589//   An unexpected error has occurred.
6590//
6591func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
6592	req, out := c.DescribeAuditTaskRequest(input)
6593	return out, req.Send()
6594}
6595
6596// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
6597// the ability to pass a context and additional request options.
6598//
6599// See DescribeAuditTask for details on how to use this API operation.
6600//
6601// The context must be non-nil and will be used for request cancellation. If
6602// the context is nil a panic will occur. In the future the SDK may create
6603// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6604// for more information on using Contexts.
6605func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
6606	req, out := c.DescribeAuditTaskRequest(input)
6607	req.SetContext(ctx)
6608	req.ApplyOptions(opts...)
6609	return out, req.Send()
6610}
6611
6612const opDescribeAuthorizer = "DescribeAuthorizer"
6613
6614// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
6615// client's request for the DescribeAuthorizer operation. The "output" return
6616// value will be populated with the request's response once the request completes
6617// successfully.
6618//
6619// Use "Send" method on the returned Request to send the API call to the service.
6620// the "output" return value is not valid until after Send returns without error.
6621//
6622// See DescribeAuthorizer for more information on using the DescribeAuthorizer
6623// API call, and error handling.
6624//
6625// This method is useful when you want to inject custom logic or configuration
6626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6627//
6628//
6629//    // Example sending a request using the DescribeAuthorizerRequest method.
6630//    req, resp := client.DescribeAuthorizerRequest(params)
6631//
6632//    err := req.Send()
6633//    if err == nil { // resp is now filled
6634//        fmt.Println(resp)
6635//    }
6636func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
6637	op := &request.Operation{
6638		Name:       opDescribeAuthorizer,
6639		HTTPMethod: "GET",
6640		HTTPPath:   "/authorizer/{authorizerName}",
6641	}
6642
6643	if input == nil {
6644		input = &DescribeAuthorizerInput{}
6645	}
6646
6647	output = &DescribeAuthorizerOutput{}
6648	req = c.newRequest(op, input, output)
6649	return
6650}
6651
6652// DescribeAuthorizer API operation for AWS IoT.
6653//
6654// Describes an authorizer.
6655//
6656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6657// with awserr.Error's Code and Message methods to get detailed information about
6658// the error.
6659//
6660// See the AWS API reference guide for AWS IoT's
6661// API operation DescribeAuthorizer for usage and error information.
6662//
6663// Returned Error Types:
6664//   * ResourceNotFoundException
6665//   The specified resource does not exist.
6666//
6667//   * InvalidRequestException
6668//   The request is not valid.
6669//
6670//   * ThrottlingException
6671//   The rate exceeds the limit.
6672//
6673//   * UnauthorizedException
6674//   You are not authorized to perform this operation.
6675//
6676//   * ServiceUnavailableException
6677//   The service is temporarily unavailable.
6678//
6679//   * InternalFailureException
6680//   An unexpected error has occurred.
6681//
6682func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
6683	req, out := c.DescribeAuthorizerRequest(input)
6684	return out, req.Send()
6685}
6686
6687// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
6688// the ability to pass a context and additional request options.
6689//
6690// See DescribeAuthorizer for details on how to use this API operation.
6691//
6692// The context must be non-nil and will be used for request cancellation. If
6693// the context is nil a panic will occur. In the future the SDK may create
6694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6695// for more information on using Contexts.
6696func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
6697	req, out := c.DescribeAuthorizerRequest(input)
6698	req.SetContext(ctx)
6699	req.ApplyOptions(opts...)
6700	return out, req.Send()
6701}
6702
6703const opDescribeBillingGroup = "DescribeBillingGroup"
6704
6705// DescribeBillingGroupRequest generates a "aws/request.Request" representing the
6706// client's request for the DescribeBillingGroup operation. The "output" return
6707// value will be populated with the request's response once the request completes
6708// successfully.
6709//
6710// Use "Send" method on the returned Request to send the API call to the service.
6711// the "output" return value is not valid until after Send returns without error.
6712//
6713// See DescribeBillingGroup for more information on using the DescribeBillingGroup
6714// API call, and error handling.
6715//
6716// This method is useful when you want to inject custom logic or configuration
6717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6718//
6719//
6720//    // Example sending a request using the DescribeBillingGroupRequest method.
6721//    req, resp := client.DescribeBillingGroupRequest(params)
6722//
6723//    err := req.Send()
6724//    if err == nil { // resp is now filled
6725//        fmt.Println(resp)
6726//    }
6727func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
6728	op := &request.Operation{
6729		Name:       opDescribeBillingGroup,
6730		HTTPMethod: "GET",
6731		HTTPPath:   "/billing-groups/{billingGroupName}",
6732	}
6733
6734	if input == nil {
6735		input = &DescribeBillingGroupInput{}
6736	}
6737
6738	output = &DescribeBillingGroupOutput{}
6739	req = c.newRequest(op, input, output)
6740	return
6741}
6742
6743// DescribeBillingGroup API operation for AWS IoT.
6744//
6745// Returns information about a billing group.
6746//
6747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6748// with awserr.Error's Code and Message methods to get detailed information about
6749// the error.
6750//
6751// See the AWS API reference guide for AWS IoT's
6752// API operation DescribeBillingGroup for usage and error information.
6753//
6754// Returned Error Types:
6755//   * InvalidRequestException
6756//   The request is not valid.
6757//
6758//   * ThrottlingException
6759//   The rate exceeds the limit.
6760//
6761//   * InternalFailureException
6762//   An unexpected error has occurred.
6763//
6764//   * ResourceNotFoundException
6765//   The specified resource does not exist.
6766//
6767func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
6768	req, out := c.DescribeBillingGroupRequest(input)
6769	return out, req.Send()
6770}
6771
6772// DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
6773// the ability to pass a context and additional request options.
6774//
6775// See DescribeBillingGroup for details on how to use this API operation.
6776//
6777// The context must be non-nil and will be used for request cancellation. If
6778// the context is nil a panic will occur. In the future the SDK may create
6779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6780// for more information on using Contexts.
6781func (c *IoT) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
6782	req, out := c.DescribeBillingGroupRequest(input)
6783	req.SetContext(ctx)
6784	req.ApplyOptions(opts...)
6785	return out, req.Send()
6786}
6787
6788const opDescribeCACertificate = "DescribeCACertificate"
6789
6790// DescribeCACertificateRequest generates a "aws/request.Request" representing the
6791// client's request for the DescribeCACertificate operation. The "output" return
6792// value will be populated with the request's response once the request completes
6793// successfully.
6794//
6795// Use "Send" method on the returned Request to send the API call to the service.
6796// the "output" return value is not valid until after Send returns without error.
6797//
6798// See DescribeCACertificate for more information on using the DescribeCACertificate
6799// API call, and error handling.
6800//
6801// This method is useful when you want to inject custom logic or configuration
6802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6803//
6804//
6805//    // Example sending a request using the DescribeCACertificateRequest method.
6806//    req, resp := client.DescribeCACertificateRequest(params)
6807//
6808//    err := req.Send()
6809//    if err == nil { // resp is now filled
6810//        fmt.Println(resp)
6811//    }
6812func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
6813	op := &request.Operation{
6814		Name:       opDescribeCACertificate,
6815		HTTPMethod: "GET",
6816		HTTPPath:   "/cacertificate/{caCertificateId}",
6817	}
6818
6819	if input == nil {
6820		input = &DescribeCACertificateInput{}
6821	}
6822
6823	output = &DescribeCACertificateOutput{}
6824	req = c.newRequest(op, input, output)
6825	return
6826}
6827
6828// DescribeCACertificate API operation for AWS IoT.
6829//
6830// Describes a registered CA certificate.
6831//
6832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6833// with awserr.Error's Code and Message methods to get detailed information about
6834// the error.
6835//
6836// See the AWS API reference guide for AWS IoT's
6837// API operation DescribeCACertificate for usage and error information.
6838//
6839// Returned Error Types:
6840//   * InvalidRequestException
6841//   The request is not valid.
6842//
6843//   * ThrottlingException
6844//   The rate exceeds the limit.
6845//
6846//   * UnauthorizedException
6847//   You are not authorized to perform this operation.
6848//
6849//   * ServiceUnavailableException
6850//   The service is temporarily unavailable.
6851//
6852//   * InternalFailureException
6853//   An unexpected error has occurred.
6854//
6855//   * ResourceNotFoundException
6856//   The specified resource does not exist.
6857//
6858func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
6859	req, out := c.DescribeCACertificateRequest(input)
6860	return out, req.Send()
6861}
6862
6863// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
6864// the ability to pass a context and additional request options.
6865//
6866// See DescribeCACertificate for details on how to use this API operation.
6867//
6868// The context must be non-nil and will be used for request cancellation. If
6869// the context is nil a panic will occur. In the future the SDK may create
6870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6871// for more information on using Contexts.
6872func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
6873	req, out := c.DescribeCACertificateRequest(input)
6874	req.SetContext(ctx)
6875	req.ApplyOptions(opts...)
6876	return out, req.Send()
6877}
6878
6879const opDescribeCertificate = "DescribeCertificate"
6880
6881// DescribeCertificateRequest generates a "aws/request.Request" representing the
6882// client's request for the DescribeCertificate operation. The "output" return
6883// value will be populated with the request's response once the request completes
6884// successfully.
6885//
6886// Use "Send" method on the returned Request to send the API call to the service.
6887// the "output" return value is not valid until after Send returns without error.
6888//
6889// See DescribeCertificate for more information on using the DescribeCertificate
6890// API call, and error handling.
6891//
6892// This method is useful when you want to inject custom logic or configuration
6893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6894//
6895//
6896//    // Example sending a request using the DescribeCertificateRequest method.
6897//    req, resp := client.DescribeCertificateRequest(params)
6898//
6899//    err := req.Send()
6900//    if err == nil { // resp is now filled
6901//        fmt.Println(resp)
6902//    }
6903func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
6904	op := &request.Operation{
6905		Name:       opDescribeCertificate,
6906		HTTPMethod: "GET",
6907		HTTPPath:   "/certificates/{certificateId}",
6908	}
6909
6910	if input == nil {
6911		input = &DescribeCertificateInput{}
6912	}
6913
6914	output = &DescribeCertificateOutput{}
6915	req = c.newRequest(op, input, output)
6916	return
6917}
6918
6919// DescribeCertificate API operation for AWS IoT.
6920//
6921// Gets information about the specified certificate.
6922//
6923// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6924// with awserr.Error's Code and Message methods to get detailed information about
6925// the error.
6926//
6927// See the AWS API reference guide for AWS IoT's
6928// API operation DescribeCertificate for usage and error information.
6929//
6930// Returned Error Types:
6931//   * InvalidRequestException
6932//   The request is not valid.
6933//
6934//   * ThrottlingException
6935//   The rate exceeds the limit.
6936//
6937//   * UnauthorizedException
6938//   You are not authorized to perform this operation.
6939//
6940//   * ServiceUnavailableException
6941//   The service is temporarily unavailable.
6942//
6943//   * InternalFailureException
6944//   An unexpected error has occurred.
6945//
6946//   * ResourceNotFoundException
6947//   The specified resource does not exist.
6948//
6949func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
6950	req, out := c.DescribeCertificateRequest(input)
6951	return out, req.Send()
6952}
6953
6954// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
6955// the ability to pass a context and additional request options.
6956//
6957// See DescribeCertificate for details on how to use this API operation.
6958//
6959// The context must be non-nil and will be used for request cancellation. If
6960// the context is nil a panic will occur. In the future the SDK may create
6961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6962// for more information on using Contexts.
6963func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
6964	req, out := c.DescribeCertificateRequest(input)
6965	req.SetContext(ctx)
6966	req.ApplyOptions(opts...)
6967	return out, req.Send()
6968}
6969
6970const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
6971
6972// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
6973// client's request for the DescribeDefaultAuthorizer operation. The "output" return
6974// value will be populated with the request's response once the request completes
6975// successfully.
6976//
6977// Use "Send" method on the returned Request to send the API call to the service.
6978// the "output" return value is not valid until after Send returns without error.
6979//
6980// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
6981// API call, and error handling.
6982//
6983// This method is useful when you want to inject custom logic or configuration
6984// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6985//
6986//
6987//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
6988//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
6989//
6990//    err := req.Send()
6991//    if err == nil { // resp is now filled
6992//        fmt.Println(resp)
6993//    }
6994func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
6995	op := &request.Operation{
6996		Name:       opDescribeDefaultAuthorizer,
6997		HTTPMethod: "GET",
6998		HTTPPath:   "/default-authorizer",
6999	}
7000
7001	if input == nil {
7002		input = &DescribeDefaultAuthorizerInput{}
7003	}
7004
7005	output = &DescribeDefaultAuthorizerOutput{}
7006	req = c.newRequest(op, input, output)
7007	return
7008}
7009
7010// DescribeDefaultAuthorizer API operation for AWS IoT.
7011//
7012// Describes the default authorizer.
7013//
7014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7015// with awserr.Error's Code and Message methods to get detailed information about
7016// the error.
7017//
7018// See the AWS API reference guide for AWS IoT's
7019// API operation DescribeDefaultAuthorizer for usage and error information.
7020//
7021// Returned Error Types:
7022//   * ResourceNotFoundException
7023//   The specified resource does not exist.
7024//
7025//   * InvalidRequestException
7026//   The request is not valid.
7027//
7028//   * ThrottlingException
7029//   The rate exceeds the limit.
7030//
7031//   * UnauthorizedException
7032//   You are not authorized to perform this operation.
7033//
7034//   * ServiceUnavailableException
7035//   The service is temporarily unavailable.
7036//
7037//   * InternalFailureException
7038//   An unexpected error has occurred.
7039//
7040func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
7041	req, out := c.DescribeDefaultAuthorizerRequest(input)
7042	return out, req.Send()
7043}
7044
7045// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
7046// the ability to pass a context and additional request options.
7047//
7048// See DescribeDefaultAuthorizer for details on how to use this API operation.
7049//
7050// The context must be non-nil and will be used for request cancellation. If
7051// the context is nil a panic will occur. In the future the SDK may create
7052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7053// for more information on using Contexts.
7054func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
7055	req, out := c.DescribeDefaultAuthorizerRequest(input)
7056	req.SetContext(ctx)
7057	req.ApplyOptions(opts...)
7058	return out, req.Send()
7059}
7060
7061const opDescribeDimension = "DescribeDimension"
7062
7063// DescribeDimensionRequest generates a "aws/request.Request" representing the
7064// client's request for the DescribeDimension operation. The "output" return
7065// value will be populated with the request's response once the request completes
7066// successfully.
7067//
7068// Use "Send" method on the returned Request to send the API call to the service.
7069// the "output" return value is not valid until after Send returns without error.
7070//
7071// See DescribeDimension for more information on using the DescribeDimension
7072// API call, and error handling.
7073//
7074// This method is useful when you want to inject custom logic or configuration
7075// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7076//
7077//
7078//    // Example sending a request using the DescribeDimensionRequest method.
7079//    req, resp := client.DescribeDimensionRequest(params)
7080//
7081//    err := req.Send()
7082//    if err == nil { // resp is now filled
7083//        fmt.Println(resp)
7084//    }
7085func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
7086	op := &request.Operation{
7087		Name:       opDescribeDimension,
7088		HTTPMethod: "GET",
7089		HTTPPath:   "/dimensions/{name}",
7090	}
7091
7092	if input == nil {
7093		input = &DescribeDimensionInput{}
7094	}
7095
7096	output = &DescribeDimensionOutput{}
7097	req = c.newRequest(op, input, output)
7098	return
7099}
7100
7101// DescribeDimension API operation for AWS IoT.
7102//
7103// Provides details about a dimension that is defined in your AWS account.
7104//
7105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7106// with awserr.Error's Code and Message methods to get detailed information about
7107// the error.
7108//
7109// See the AWS API reference guide for AWS IoT's
7110// API operation DescribeDimension for usage and error information.
7111//
7112// Returned Error Types:
7113//   * InternalFailureException
7114//   An unexpected error has occurred.
7115//
7116//   * InvalidRequestException
7117//   The request is not valid.
7118//
7119//   * ResourceNotFoundException
7120//   The specified resource does not exist.
7121//
7122//   * ThrottlingException
7123//   The rate exceeds the limit.
7124//
7125func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
7126	req, out := c.DescribeDimensionRequest(input)
7127	return out, req.Send()
7128}
7129
7130// DescribeDimensionWithContext is the same as DescribeDimension with the addition of
7131// the ability to pass a context and additional request options.
7132//
7133// See DescribeDimension for details on how to use this API operation.
7134//
7135// The context must be non-nil and will be used for request cancellation. If
7136// the context is nil a panic will occur. In the future the SDK may create
7137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7138// for more information on using Contexts.
7139func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
7140	req, out := c.DescribeDimensionRequest(input)
7141	req.SetContext(ctx)
7142	req.ApplyOptions(opts...)
7143	return out, req.Send()
7144}
7145
7146const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
7147
7148// DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
7149// client's request for the DescribeDomainConfiguration operation. The "output" return
7150// value will be populated with the request's response once the request completes
7151// successfully.
7152//
7153// Use "Send" method on the returned Request to send the API call to the service.
7154// the "output" return value is not valid until after Send returns without error.
7155//
7156// See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
7157// API call, and error handling.
7158//
7159// This method is useful when you want to inject custom logic or configuration
7160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7161//
7162//
7163//    // Example sending a request using the DescribeDomainConfigurationRequest method.
7164//    req, resp := client.DescribeDomainConfigurationRequest(params)
7165//
7166//    err := req.Send()
7167//    if err == nil { // resp is now filled
7168//        fmt.Println(resp)
7169//    }
7170func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
7171	op := &request.Operation{
7172		Name:       opDescribeDomainConfiguration,
7173		HTTPMethod: "GET",
7174		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
7175	}
7176
7177	if input == nil {
7178		input = &DescribeDomainConfigurationInput{}
7179	}
7180
7181	output = &DescribeDomainConfigurationOutput{}
7182	req = c.newRequest(op, input, output)
7183	return
7184}
7185
7186// DescribeDomainConfiguration API operation for AWS IoT.
7187//
7188// Gets summary information about a domain configuration.
7189//
7190// The domain configuration feature is in public preview and is subject to change.
7191//
7192// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7193// with awserr.Error's Code and Message methods to get detailed information about
7194// the error.
7195//
7196// See the AWS API reference guide for AWS IoT's
7197// API operation DescribeDomainConfiguration for usage and error information.
7198//
7199// Returned Error Types:
7200//   * ResourceNotFoundException
7201//   The specified resource does not exist.
7202//
7203//   * ThrottlingException
7204//   The rate exceeds the limit.
7205//
7206//   * InvalidRequestException
7207//   The request is not valid.
7208//
7209//   * UnauthorizedException
7210//   You are not authorized to perform this operation.
7211//
7212//   * ServiceUnavailableException
7213//   The service is temporarily unavailable.
7214//
7215//   * InternalFailureException
7216//   An unexpected error has occurred.
7217//
7218func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
7219	req, out := c.DescribeDomainConfigurationRequest(input)
7220	return out, req.Send()
7221}
7222
7223// DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
7224// the ability to pass a context and additional request options.
7225//
7226// See DescribeDomainConfiguration for details on how to use this API operation.
7227//
7228// The context must be non-nil and will be used for request cancellation. If
7229// the context is nil a panic will occur. In the future the SDK may create
7230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7231// for more information on using Contexts.
7232func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
7233	req, out := c.DescribeDomainConfigurationRequest(input)
7234	req.SetContext(ctx)
7235	req.ApplyOptions(opts...)
7236	return out, req.Send()
7237}
7238
7239const opDescribeEndpoint = "DescribeEndpoint"
7240
7241// DescribeEndpointRequest generates a "aws/request.Request" representing the
7242// client's request for the DescribeEndpoint operation. The "output" return
7243// value will be populated with the request's response once the request completes
7244// successfully.
7245//
7246// Use "Send" method on the returned Request to send the API call to the service.
7247// the "output" return value is not valid until after Send returns without error.
7248//
7249// See DescribeEndpoint for more information on using the DescribeEndpoint
7250// API call, and error handling.
7251//
7252// This method is useful when you want to inject custom logic or configuration
7253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7254//
7255//
7256//    // Example sending a request using the DescribeEndpointRequest method.
7257//    req, resp := client.DescribeEndpointRequest(params)
7258//
7259//    err := req.Send()
7260//    if err == nil { // resp is now filled
7261//        fmt.Println(resp)
7262//    }
7263func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
7264	op := &request.Operation{
7265		Name:       opDescribeEndpoint,
7266		HTTPMethod: "GET",
7267		HTTPPath:   "/endpoint",
7268	}
7269
7270	if input == nil {
7271		input = &DescribeEndpointInput{}
7272	}
7273
7274	output = &DescribeEndpointOutput{}
7275	req = c.newRequest(op, input, output)
7276	return
7277}
7278
7279// DescribeEndpoint API operation for AWS IoT.
7280//
7281// Returns a unique endpoint specific to the AWS account making the call.
7282//
7283// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7284// with awserr.Error's Code and Message methods to get detailed information about
7285// the error.
7286//
7287// See the AWS API reference guide for AWS IoT's
7288// API operation DescribeEndpoint for usage and error information.
7289//
7290// Returned Error Types:
7291//   * InternalFailureException
7292//   An unexpected error has occurred.
7293//
7294//   * InvalidRequestException
7295//   The request is not valid.
7296//
7297//   * UnauthorizedException
7298//   You are not authorized to perform this operation.
7299//
7300//   * ThrottlingException
7301//   The rate exceeds the limit.
7302//
7303func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
7304	req, out := c.DescribeEndpointRequest(input)
7305	return out, req.Send()
7306}
7307
7308// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
7309// the ability to pass a context and additional request options.
7310//
7311// See DescribeEndpoint for details on how to use this API operation.
7312//
7313// The context must be non-nil and will be used for request cancellation. If
7314// the context is nil a panic will occur. In the future the SDK may create
7315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7316// for more information on using Contexts.
7317func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
7318	req, out := c.DescribeEndpointRequest(input)
7319	req.SetContext(ctx)
7320	req.ApplyOptions(opts...)
7321	return out, req.Send()
7322}
7323
7324const opDescribeEventConfigurations = "DescribeEventConfigurations"
7325
7326// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
7327// client's request for the DescribeEventConfigurations operation. The "output" return
7328// value will be populated with the request's response once the request completes
7329// successfully.
7330//
7331// Use "Send" method on the returned Request to send the API call to the service.
7332// the "output" return value is not valid until after Send returns without error.
7333//
7334// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
7335// API call, and error handling.
7336//
7337// This method is useful when you want to inject custom logic or configuration
7338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7339//
7340//
7341//    // Example sending a request using the DescribeEventConfigurationsRequest method.
7342//    req, resp := client.DescribeEventConfigurationsRequest(params)
7343//
7344//    err := req.Send()
7345//    if err == nil { // resp is now filled
7346//        fmt.Println(resp)
7347//    }
7348func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
7349	op := &request.Operation{
7350		Name:       opDescribeEventConfigurations,
7351		HTTPMethod: "GET",
7352		HTTPPath:   "/event-configurations",
7353	}
7354
7355	if input == nil {
7356		input = &DescribeEventConfigurationsInput{}
7357	}
7358
7359	output = &DescribeEventConfigurationsOutput{}
7360	req = c.newRequest(op, input, output)
7361	return
7362}
7363
7364// DescribeEventConfigurations API operation for AWS IoT.
7365//
7366// Describes event configurations.
7367//
7368// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7369// with awserr.Error's Code and Message methods to get detailed information about
7370// the error.
7371//
7372// See the AWS API reference guide for AWS IoT's
7373// API operation DescribeEventConfigurations for usage and error information.
7374//
7375// Returned Error Types:
7376//   * InternalFailureException
7377//   An unexpected error has occurred.
7378//
7379//   * ThrottlingException
7380//   The rate exceeds the limit.
7381//
7382func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
7383	req, out := c.DescribeEventConfigurationsRequest(input)
7384	return out, req.Send()
7385}
7386
7387// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
7388// the ability to pass a context and additional request options.
7389//
7390// See DescribeEventConfigurations for details on how to use this API operation.
7391//
7392// The context must be non-nil and will be used for request cancellation. If
7393// the context is nil a panic will occur. In the future the SDK may create
7394// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7395// for more information on using Contexts.
7396func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
7397	req, out := c.DescribeEventConfigurationsRequest(input)
7398	req.SetContext(ctx)
7399	req.ApplyOptions(opts...)
7400	return out, req.Send()
7401}
7402
7403const opDescribeIndex = "DescribeIndex"
7404
7405// DescribeIndexRequest generates a "aws/request.Request" representing the
7406// client's request for the DescribeIndex operation. The "output" return
7407// value will be populated with the request's response once the request completes
7408// successfully.
7409//
7410// Use "Send" method on the returned Request to send the API call to the service.
7411// the "output" return value is not valid until after Send returns without error.
7412//
7413// See DescribeIndex for more information on using the DescribeIndex
7414// API call, and error handling.
7415//
7416// This method is useful when you want to inject custom logic or configuration
7417// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7418//
7419//
7420//    // Example sending a request using the DescribeIndexRequest method.
7421//    req, resp := client.DescribeIndexRequest(params)
7422//
7423//    err := req.Send()
7424//    if err == nil { // resp is now filled
7425//        fmt.Println(resp)
7426//    }
7427func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
7428	op := &request.Operation{
7429		Name:       opDescribeIndex,
7430		HTTPMethod: "GET",
7431		HTTPPath:   "/indices/{indexName}",
7432	}
7433
7434	if input == nil {
7435		input = &DescribeIndexInput{}
7436	}
7437
7438	output = &DescribeIndexOutput{}
7439	req = c.newRequest(op, input, output)
7440	return
7441}
7442
7443// DescribeIndex API operation for AWS IoT.
7444//
7445// Describes a search index.
7446//
7447// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7448// with awserr.Error's Code and Message methods to get detailed information about
7449// the error.
7450//
7451// See the AWS API reference guide for AWS IoT's
7452// API operation DescribeIndex for usage and error information.
7453//
7454// Returned Error Types:
7455//   * InvalidRequestException
7456//   The request is not valid.
7457//
7458//   * ThrottlingException
7459//   The rate exceeds the limit.
7460//
7461//   * UnauthorizedException
7462//   You are not authorized to perform this operation.
7463//
7464//   * ServiceUnavailableException
7465//   The service is temporarily unavailable.
7466//
7467//   * InternalFailureException
7468//   An unexpected error has occurred.
7469//
7470//   * ResourceNotFoundException
7471//   The specified resource does not exist.
7472//
7473func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
7474	req, out := c.DescribeIndexRequest(input)
7475	return out, req.Send()
7476}
7477
7478// DescribeIndexWithContext is the same as DescribeIndex with the addition of
7479// the ability to pass a context and additional request options.
7480//
7481// See DescribeIndex for details on how to use this API operation.
7482//
7483// The context must be non-nil and will be used for request cancellation. If
7484// the context is nil a panic will occur. In the future the SDK may create
7485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7486// for more information on using Contexts.
7487func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
7488	req, out := c.DescribeIndexRequest(input)
7489	req.SetContext(ctx)
7490	req.ApplyOptions(opts...)
7491	return out, req.Send()
7492}
7493
7494const opDescribeJob = "DescribeJob"
7495
7496// DescribeJobRequest generates a "aws/request.Request" representing the
7497// client's request for the DescribeJob operation. The "output" return
7498// value will be populated with the request's response once the request completes
7499// successfully.
7500//
7501// Use "Send" method on the returned Request to send the API call to the service.
7502// the "output" return value is not valid until after Send returns without error.
7503//
7504// See DescribeJob for more information on using the DescribeJob
7505// API call, and error handling.
7506//
7507// This method is useful when you want to inject custom logic or configuration
7508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7509//
7510//
7511//    // Example sending a request using the DescribeJobRequest method.
7512//    req, resp := client.DescribeJobRequest(params)
7513//
7514//    err := req.Send()
7515//    if err == nil { // resp is now filled
7516//        fmt.Println(resp)
7517//    }
7518func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
7519	op := &request.Operation{
7520		Name:       opDescribeJob,
7521		HTTPMethod: "GET",
7522		HTTPPath:   "/jobs/{jobId}",
7523	}
7524
7525	if input == nil {
7526		input = &DescribeJobInput{}
7527	}
7528
7529	output = &DescribeJobOutput{}
7530	req = c.newRequest(op, input, output)
7531	return
7532}
7533
7534// DescribeJob API operation for AWS IoT.
7535//
7536// Describes a job.
7537//
7538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7539// with awserr.Error's Code and Message methods to get detailed information about
7540// the error.
7541//
7542// See the AWS API reference guide for AWS IoT's
7543// API operation DescribeJob for usage and error information.
7544//
7545// Returned Error Types:
7546//   * InvalidRequestException
7547//   The request is not valid.
7548//
7549//   * ResourceNotFoundException
7550//   The specified resource does not exist.
7551//
7552//   * ThrottlingException
7553//   The rate exceeds the limit.
7554//
7555//   * ServiceUnavailableException
7556//   The service is temporarily unavailable.
7557//
7558func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
7559	req, out := c.DescribeJobRequest(input)
7560	return out, req.Send()
7561}
7562
7563// DescribeJobWithContext is the same as DescribeJob with the addition of
7564// the ability to pass a context and additional request options.
7565//
7566// See DescribeJob for details on how to use this API operation.
7567//
7568// The context must be non-nil and will be used for request cancellation. If
7569// the context is nil a panic will occur. In the future the SDK may create
7570// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7571// for more information on using Contexts.
7572func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
7573	req, out := c.DescribeJobRequest(input)
7574	req.SetContext(ctx)
7575	req.ApplyOptions(opts...)
7576	return out, req.Send()
7577}
7578
7579const opDescribeJobExecution = "DescribeJobExecution"
7580
7581// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
7582// client's request for the DescribeJobExecution operation. The "output" return
7583// value will be populated with the request's response once the request completes
7584// successfully.
7585//
7586// Use "Send" method on the returned Request to send the API call to the service.
7587// the "output" return value is not valid until after Send returns without error.
7588//
7589// See DescribeJobExecution for more information on using the DescribeJobExecution
7590// API call, and error handling.
7591//
7592// This method is useful when you want to inject custom logic or configuration
7593// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7594//
7595//
7596//    // Example sending a request using the DescribeJobExecutionRequest method.
7597//    req, resp := client.DescribeJobExecutionRequest(params)
7598//
7599//    err := req.Send()
7600//    if err == nil { // resp is now filled
7601//        fmt.Println(resp)
7602//    }
7603func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
7604	op := &request.Operation{
7605		Name:       opDescribeJobExecution,
7606		HTTPMethod: "GET",
7607		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
7608	}
7609
7610	if input == nil {
7611		input = &DescribeJobExecutionInput{}
7612	}
7613
7614	output = &DescribeJobExecutionOutput{}
7615	req = c.newRequest(op, input, output)
7616	return
7617}
7618
7619// DescribeJobExecution API operation for AWS IoT.
7620//
7621// Describes a job execution.
7622//
7623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7624// with awserr.Error's Code and Message methods to get detailed information about
7625// the error.
7626//
7627// See the AWS API reference guide for AWS IoT's
7628// API operation DescribeJobExecution for usage and error information.
7629//
7630// Returned Error Types:
7631//   * InvalidRequestException
7632//   The request is not valid.
7633//
7634//   * ResourceNotFoundException
7635//   The specified resource does not exist.
7636//
7637//   * ThrottlingException
7638//   The rate exceeds the limit.
7639//
7640//   * ServiceUnavailableException
7641//   The service is temporarily unavailable.
7642//
7643func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
7644	req, out := c.DescribeJobExecutionRequest(input)
7645	return out, req.Send()
7646}
7647
7648// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
7649// the ability to pass a context and additional request options.
7650//
7651// See DescribeJobExecution for details on how to use this API operation.
7652//
7653// The context must be non-nil and will be used for request cancellation. If
7654// the context is nil a panic will occur. In the future the SDK may create
7655// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7656// for more information on using Contexts.
7657func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
7658	req, out := c.DescribeJobExecutionRequest(input)
7659	req.SetContext(ctx)
7660	req.ApplyOptions(opts...)
7661	return out, req.Send()
7662}
7663
7664const opDescribeMitigationAction = "DescribeMitigationAction"
7665
7666// DescribeMitigationActionRequest generates a "aws/request.Request" representing the
7667// client's request for the DescribeMitigationAction operation. The "output" return
7668// value will be populated with the request's response once the request completes
7669// successfully.
7670//
7671// Use "Send" method on the returned Request to send the API call to the service.
7672// the "output" return value is not valid until after Send returns without error.
7673//
7674// See DescribeMitigationAction for more information on using the DescribeMitigationAction
7675// API call, and error handling.
7676//
7677// This method is useful when you want to inject custom logic or configuration
7678// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7679//
7680//
7681//    // Example sending a request using the DescribeMitigationActionRequest method.
7682//    req, resp := client.DescribeMitigationActionRequest(params)
7683//
7684//    err := req.Send()
7685//    if err == nil { // resp is now filled
7686//        fmt.Println(resp)
7687//    }
7688func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
7689	op := &request.Operation{
7690		Name:       opDescribeMitigationAction,
7691		HTTPMethod: "GET",
7692		HTTPPath:   "/mitigationactions/actions/{actionName}",
7693	}
7694
7695	if input == nil {
7696		input = &DescribeMitigationActionInput{}
7697	}
7698
7699	output = &DescribeMitigationActionOutput{}
7700	req = c.newRequest(op, input, output)
7701	return
7702}
7703
7704// DescribeMitigationAction API operation for AWS IoT.
7705//
7706// Gets information about a mitigation action.
7707//
7708// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7709// with awserr.Error's Code and Message methods to get detailed information about
7710// the error.
7711//
7712// See the AWS API reference guide for AWS IoT's
7713// API operation DescribeMitigationAction for usage and error information.
7714//
7715// Returned Error Types:
7716//   * InvalidRequestException
7717//   The request is not valid.
7718//
7719//   * ResourceNotFoundException
7720//   The specified resource does not exist.
7721//
7722//   * ThrottlingException
7723//   The rate exceeds the limit.
7724//
7725//   * InternalFailureException
7726//   An unexpected error has occurred.
7727//
7728func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
7729	req, out := c.DescribeMitigationActionRequest(input)
7730	return out, req.Send()
7731}
7732
7733// DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
7734// the ability to pass a context and additional request options.
7735//
7736// See DescribeMitigationAction for details on how to use this API operation.
7737//
7738// The context must be non-nil and will be used for request cancellation. If
7739// the context is nil a panic will occur. In the future the SDK may create
7740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7741// for more information on using Contexts.
7742func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
7743	req, out := c.DescribeMitigationActionRequest(input)
7744	req.SetContext(ctx)
7745	req.ApplyOptions(opts...)
7746	return out, req.Send()
7747}
7748
7749const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
7750
7751// DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
7752// client's request for the DescribeProvisioningTemplate operation. The "output" return
7753// value will be populated with the request's response once the request completes
7754// successfully.
7755//
7756// Use "Send" method on the returned Request to send the API call to the service.
7757// the "output" return value is not valid until after Send returns without error.
7758//
7759// See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
7760// API call, and error handling.
7761//
7762// This method is useful when you want to inject custom logic or configuration
7763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7764//
7765//
7766//    // Example sending a request using the DescribeProvisioningTemplateRequest method.
7767//    req, resp := client.DescribeProvisioningTemplateRequest(params)
7768//
7769//    err := req.Send()
7770//    if err == nil { // resp is now filled
7771//        fmt.Println(resp)
7772//    }
7773func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
7774	op := &request.Operation{
7775		Name:       opDescribeProvisioningTemplate,
7776		HTTPMethod: "GET",
7777		HTTPPath:   "/provisioning-templates/{templateName}",
7778	}
7779
7780	if input == nil {
7781		input = &DescribeProvisioningTemplateInput{}
7782	}
7783
7784	output = &DescribeProvisioningTemplateOutput{}
7785	req = c.newRequest(op, input, output)
7786	return
7787}
7788
7789// DescribeProvisioningTemplate API operation for AWS IoT.
7790//
7791// Returns information about a fleet provisioning template.
7792//
7793// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7794// with awserr.Error's Code and Message methods to get detailed information about
7795// the error.
7796//
7797// See the AWS API reference guide for AWS IoT's
7798// API operation DescribeProvisioningTemplate for usage and error information.
7799//
7800// Returned Error Types:
7801//   * InternalFailureException
7802//   An unexpected error has occurred.
7803//
7804//   * InvalidRequestException
7805//   The request is not valid.
7806//
7807//   * ResourceNotFoundException
7808//   The specified resource does not exist.
7809//
7810//   * ThrottlingException
7811//   The rate exceeds the limit.
7812//
7813//   * UnauthorizedException
7814//   You are not authorized to perform this operation.
7815//
7816func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
7817	req, out := c.DescribeProvisioningTemplateRequest(input)
7818	return out, req.Send()
7819}
7820
7821// DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
7822// the ability to pass a context and additional request options.
7823//
7824// See DescribeProvisioningTemplate for details on how to use this API operation.
7825//
7826// The context must be non-nil and will be used for request cancellation. If
7827// the context is nil a panic will occur. In the future the SDK may create
7828// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7829// for more information on using Contexts.
7830func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
7831	req, out := c.DescribeProvisioningTemplateRequest(input)
7832	req.SetContext(ctx)
7833	req.ApplyOptions(opts...)
7834	return out, req.Send()
7835}
7836
7837const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
7838
7839// DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
7840// client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
7841// value will be populated with the request's response once the request completes
7842// successfully.
7843//
7844// Use "Send" method on the returned Request to send the API call to the service.
7845// the "output" return value is not valid until after Send returns without error.
7846//
7847// See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
7848// API call, and error handling.
7849//
7850// This method is useful when you want to inject custom logic or configuration
7851// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7852//
7853//
7854//    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
7855//    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
7856//
7857//    err := req.Send()
7858//    if err == nil { // resp is now filled
7859//        fmt.Println(resp)
7860//    }
7861func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
7862	op := &request.Operation{
7863		Name:       opDescribeProvisioningTemplateVersion,
7864		HTTPMethod: "GET",
7865		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
7866	}
7867
7868	if input == nil {
7869		input = &DescribeProvisioningTemplateVersionInput{}
7870	}
7871
7872	output = &DescribeProvisioningTemplateVersionOutput{}
7873	req = c.newRequest(op, input, output)
7874	return
7875}
7876
7877// DescribeProvisioningTemplateVersion API operation for AWS IoT.
7878//
7879// Returns information about a fleet provisioning template version.
7880//
7881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7882// with awserr.Error's Code and Message methods to get detailed information about
7883// the error.
7884//
7885// See the AWS API reference guide for AWS IoT's
7886// API operation DescribeProvisioningTemplateVersion for usage and error information.
7887//
7888// Returned Error Types:
7889//   * InternalFailureException
7890//   An unexpected error has occurred.
7891//
7892//   * InvalidRequestException
7893//   The request is not valid.
7894//
7895//   * ThrottlingException
7896//   The rate exceeds the limit.
7897//
7898//   * ResourceNotFoundException
7899//   The specified resource does not exist.
7900//
7901//   * UnauthorizedException
7902//   You are not authorized to perform this operation.
7903//
7904func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
7905	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
7906	return out, req.Send()
7907}
7908
7909// DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
7910// the ability to pass a context and additional request options.
7911//
7912// See DescribeProvisioningTemplateVersion for details on how to use this API operation.
7913//
7914// The context must be non-nil and will be used for request cancellation. If
7915// the context is nil a panic will occur. In the future the SDK may create
7916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7917// for more information on using Contexts.
7918func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
7919	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
7920	req.SetContext(ctx)
7921	req.ApplyOptions(opts...)
7922	return out, req.Send()
7923}
7924
7925const opDescribeRoleAlias = "DescribeRoleAlias"
7926
7927// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
7928// client's request for the DescribeRoleAlias operation. The "output" return
7929// value will be populated with the request's response once the request completes
7930// successfully.
7931//
7932// Use "Send" method on the returned Request to send the API call to the service.
7933// the "output" return value is not valid until after Send returns without error.
7934//
7935// See DescribeRoleAlias for more information on using the DescribeRoleAlias
7936// API call, and error handling.
7937//
7938// This method is useful when you want to inject custom logic or configuration
7939// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7940//
7941//
7942//    // Example sending a request using the DescribeRoleAliasRequest method.
7943//    req, resp := client.DescribeRoleAliasRequest(params)
7944//
7945//    err := req.Send()
7946//    if err == nil { // resp is now filled
7947//        fmt.Println(resp)
7948//    }
7949func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
7950	op := &request.Operation{
7951		Name:       opDescribeRoleAlias,
7952		HTTPMethod: "GET",
7953		HTTPPath:   "/role-aliases/{roleAlias}",
7954	}
7955
7956	if input == nil {
7957		input = &DescribeRoleAliasInput{}
7958	}
7959
7960	output = &DescribeRoleAliasOutput{}
7961	req = c.newRequest(op, input, output)
7962	return
7963}
7964
7965// DescribeRoleAlias API operation for AWS IoT.
7966//
7967// Describes a role alias.
7968//
7969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7970// with awserr.Error's Code and Message methods to get detailed information about
7971// the error.
7972//
7973// See the AWS API reference guide for AWS IoT's
7974// API operation DescribeRoleAlias for usage and error information.
7975//
7976// Returned Error Types:
7977//   * InvalidRequestException
7978//   The request is not valid.
7979//
7980//   * ThrottlingException
7981//   The rate exceeds the limit.
7982//
7983//   * UnauthorizedException
7984//   You are not authorized to perform this operation.
7985//
7986//   * ServiceUnavailableException
7987//   The service is temporarily unavailable.
7988//
7989//   * InternalFailureException
7990//   An unexpected error has occurred.
7991//
7992//   * ResourceNotFoundException
7993//   The specified resource does not exist.
7994//
7995func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
7996	req, out := c.DescribeRoleAliasRequest(input)
7997	return out, req.Send()
7998}
7999
8000// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
8001// the ability to pass a context and additional request options.
8002//
8003// See DescribeRoleAlias for details on how to use this API operation.
8004//
8005// The context must be non-nil and will be used for request cancellation. If
8006// the context is nil a panic will occur. In the future the SDK may create
8007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8008// for more information on using Contexts.
8009func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
8010	req, out := c.DescribeRoleAliasRequest(input)
8011	req.SetContext(ctx)
8012	req.ApplyOptions(opts...)
8013	return out, req.Send()
8014}
8015
8016const opDescribeScheduledAudit = "DescribeScheduledAudit"
8017
8018// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
8019// client's request for the DescribeScheduledAudit operation. The "output" return
8020// value will be populated with the request's response once the request completes
8021// successfully.
8022//
8023// Use "Send" method on the returned Request to send the API call to the service.
8024// the "output" return value is not valid until after Send returns without error.
8025//
8026// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
8027// API call, and error handling.
8028//
8029// This method is useful when you want to inject custom logic or configuration
8030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8031//
8032//
8033//    // Example sending a request using the DescribeScheduledAuditRequest method.
8034//    req, resp := client.DescribeScheduledAuditRequest(params)
8035//
8036//    err := req.Send()
8037//    if err == nil { // resp is now filled
8038//        fmt.Println(resp)
8039//    }
8040func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
8041	op := &request.Operation{
8042		Name:       opDescribeScheduledAudit,
8043		HTTPMethod: "GET",
8044		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
8045	}
8046
8047	if input == nil {
8048		input = &DescribeScheduledAuditInput{}
8049	}
8050
8051	output = &DescribeScheduledAuditOutput{}
8052	req = c.newRequest(op, input, output)
8053	return
8054}
8055
8056// DescribeScheduledAudit API operation for AWS IoT.
8057//
8058// Gets information about a scheduled audit.
8059//
8060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8061// with awserr.Error's Code and Message methods to get detailed information about
8062// the error.
8063//
8064// See the AWS API reference guide for AWS IoT's
8065// API operation DescribeScheduledAudit for usage and error information.
8066//
8067// Returned Error Types:
8068//   * InvalidRequestException
8069//   The request is not valid.
8070//
8071//   * ResourceNotFoundException
8072//   The specified resource does not exist.
8073//
8074//   * ThrottlingException
8075//   The rate exceeds the limit.
8076//
8077//   * InternalFailureException
8078//   An unexpected error has occurred.
8079//
8080func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
8081	req, out := c.DescribeScheduledAuditRequest(input)
8082	return out, req.Send()
8083}
8084
8085// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
8086// the ability to pass a context and additional request options.
8087//
8088// See DescribeScheduledAudit for details on how to use this API operation.
8089//
8090// The context must be non-nil and will be used for request cancellation. If
8091// the context is nil a panic will occur. In the future the SDK may create
8092// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8093// for more information on using Contexts.
8094func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
8095	req, out := c.DescribeScheduledAuditRequest(input)
8096	req.SetContext(ctx)
8097	req.ApplyOptions(opts...)
8098	return out, req.Send()
8099}
8100
8101const opDescribeSecurityProfile = "DescribeSecurityProfile"
8102
8103// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
8104// client's request for the DescribeSecurityProfile operation. The "output" return
8105// value will be populated with the request's response once the request completes
8106// successfully.
8107//
8108// Use "Send" method on the returned Request to send the API call to the service.
8109// the "output" return value is not valid until after Send returns without error.
8110//
8111// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
8112// API call, and error handling.
8113//
8114// This method is useful when you want to inject custom logic or configuration
8115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8116//
8117//
8118//    // Example sending a request using the DescribeSecurityProfileRequest method.
8119//    req, resp := client.DescribeSecurityProfileRequest(params)
8120//
8121//    err := req.Send()
8122//    if err == nil { // resp is now filled
8123//        fmt.Println(resp)
8124//    }
8125func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
8126	op := &request.Operation{
8127		Name:       opDescribeSecurityProfile,
8128		HTTPMethod: "GET",
8129		HTTPPath:   "/security-profiles/{securityProfileName}",
8130	}
8131
8132	if input == nil {
8133		input = &DescribeSecurityProfileInput{}
8134	}
8135
8136	output = &DescribeSecurityProfileOutput{}
8137	req = c.newRequest(op, input, output)
8138	return
8139}
8140
8141// DescribeSecurityProfile API operation for AWS IoT.
8142//
8143// Gets information about a Device Defender security profile.
8144//
8145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8146// with awserr.Error's Code and Message methods to get detailed information about
8147// the error.
8148//
8149// See the AWS API reference guide for AWS IoT's
8150// API operation DescribeSecurityProfile for usage and error information.
8151//
8152// Returned Error Types:
8153//   * InvalidRequestException
8154//   The request is not valid.
8155//
8156//   * ResourceNotFoundException
8157//   The specified resource does not exist.
8158//
8159//   * ThrottlingException
8160//   The rate exceeds the limit.
8161//
8162//   * InternalFailureException
8163//   An unexpected error has occurred.
8164//
8165func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
8166	req, out := c.DescribeSecurityProfileRequest(input)
8167	return out, req.Send()
8168}
8169
8170// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
8171// the ability to pass a context and additional request options.
8172//
8173// See DescribeSecurityProfile for details on how to use this API operation.
8174//
8175// The context must be non-nil and will be used for request cancellation. If
8176// the context is nil a panic will occur. In the future the SDK may create
8177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8178// for more information on using Contexts.
8179func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
8180	req, out := c.DescribeSecurityProfileRequest(input)
8181	req.SetContext(ctx)
8182	req.ApplyOptions(opts...)
8183	return out, req.Send()
8184}
8185
8186const opDescribeStream = "DescribeStream"
8187
8188// DescribeStreamRequest generates a "aws/request.Request" representing the
8189// client's request for the DescribeStream operation. The "output" return
8190// value will be populated with the request's response once the request completes
8191// successfully.
8192//
8193// Use "Send" method on the returned Request to send the API call to the service.
8194// the "output" return value is not valid until after Send returns without error.
8195//
8196// See DescribeStream for more information on using the DescribeStream
8197// API call, and error handling.
8198//
8199// This method is useful when you want to inject custom logic or configuration
8200// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8201//
8202//
8203//    // Example sending a request using the DescribeStreamRequest method.
8204//    req, resp := client.DescribeStreamRequest(params)
8205//
8206//    err := req.Send()
8207//    if err == nil { // resp is now filled
8208//        fmt.Println(resp)
8209//    }
8210func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
8211	op := &request.Operation{
8212		Name:       opDescribeStream,
8213		HTTPMethod: "GET",
8214		HTTPPath:   "/streams/{streamId}",
8215	}
8216
8217	if input == nil {
8218		input = &DescribeStreamInput{}
8219	}
8220
8221	output = &DescribeStreamOutput{}
8222	req = c.newRequest(op, input, output)
8223	return
8224}
8225
8226// DescribeStream API operation for AWS IoT.
8227//
8228// Gets information about a stream.
8229//
8230// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8231// with awserr.Error's Code and Message methods to get detailed information about
8232// the error.
8233//
8234// See the AWS API reference guide for AWS IoT's
8235// API operation DescribeStream for usage and error information.
8236//
8237// Returned Error Types:
8238//   * InvalidRequestException
8239//   The request is not valid.
8240//
8241//   * ResourceNotFoundException
8242//   The specified resource does not exist.
8243//
8244//   * ThrottlingException
8245//   The rate exceeds the limit.
8246//
8247//   * UnauthorizedException
8248//   You are not authorized to perform this operation.
8249//
8250//   * ServiceUnavailableException
8251//   The service is temporarily unavailable.
8252//
8253//   * InternalFailureException
8254//   An unexpected error has occurred.
8255//
8256func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
8257	req, out := c.DescribeStreamRequest(input)
8258	return out, req.Send()
8259}
8260
8261// DescribeStreamWithContext is the same as DescribeStream with the addition of
8262// the ability to pass a context and additional request options.
8263//
8264// See DescribeStream for details on how to use this API operation.
8265//
8266// The context must be non-nil and will be used for request cancellation. If
8267// the context is nil a panic will occur. In the future the SDK may create
8268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8269// for more information on using Contexts.
8270func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
8271	req, out := c.DescribeStreamRequest(input)
8272	req.SetContext(ctx)
8273	req.ApplyOptions(opts...)
8274	return out, req.Send()
8275}
8276
8277const opDescribeThing = "DescribeThing"
8278
8279// DescribeThingRequest generates a "aws/request.Request" representing the
8280// client's request for the DescribeThing operation. The "output" return
8281// value will be populated with the request's response once the request completes
8282// successfully.
8283//
8284// Use "Send" method on the returned Request to send the API call to the service.
8285// the "output" return value is not valid until after Send returns without error.
8286//
8287// See DescribeThing for more information on using the DescribeThing
8288// API call, and error handling.
8289//
8290// This method is useful when you want to inject custom logic or configuration
8291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8292//
8293//
8294//    // Example sending a request using the DescribeThingRequest method.
8295//    req, resp := client.DescribeThingRequest(params)
8296//
8297//    err := req.Send()
8298//    if err == nil { // resp is now filled
8299//        fmt.Println(resp)
8300//    }
8301func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
8302	op := &request.Operation{
8303		Name:       opDescribeThing,
8304		HTTPMethod: "GET",
8305		HTTPPath:   "/things/{thingName}",
8306	}
8307
8308	if input == nil {
8309		input = &DescribeThingInput{}
8310	}
8311
8312	output = &DescribeThingOutput{}
8313	req = c.newRequest(op, input, output)
8314	return
8315}
8316
8317// DescribeThing API operation for AWS IoT.
8318//
8319// Gets information about the specified thing.
8320//
8321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8322// with awserr.Error's Code and Message methods to get detailed information about
8323// the error.
8324//
8325// See the AWS API reference guide for AWS IoT's
8326// API operation DescribeThing for usage and error information.
8327//
8328// Returned Error Types:
8329//   * ResourceNotFoundException
8330//   The specified resource does not exist.
8331//
8332//   * InvalidRequestException
8333//   The request is not valid.
8334//
8335//   * ThrottlingException
8336//   The rate exceeds the limit.
8337//
8338//   * UnauthorizedException
8339//   You are not authorized to perform this operation.
8340//
8341//   * ServiceUnavailableException
8342//   The service is temporarily unavailable.
8343//
8344//   * InternalFailureException
8345//   An unexpected error has occurred.
8346//
8347func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
8348	req, out := c.DescribeThingRequest(input)
8349	return out, req.Send()
8350}
8351
8352// DescribeThingWithContext is the same as DescribeThing with the addition of
8353// the ability to pass a context and additional request options.
8354//
8355// See DescribeThing for details on how to use this API operation.
8356//
8357// The context must be non-nil and will be used for request cancellation. If
8358// the context is nil a panic will occur. In the future the SDK may create
8359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8360// for more information on using Contexts.
8361func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
8362	req, out := c.DescribeThingRequest(input)
8363	req.SetContext(ctx)
8364	req.ApplyOptions(opts...)
8365	return out, req.Send()
8366}
8367
8368const opDescribeThingGroup = "DescribeThingGroup"
8369
8370// DescribeThingGroupRequest generates a "aws/request.Request" representing the
8371// client's request for the DescribeThingGroup operation. The "output" return
8372// value will be populated with the request's response once the request completes
8373// successfully.
8374//
8375// Use "Send" method on the returned Request to send the API call to the service.
8376// the "output" return value is not valid until after Send returns without error.
8377//
8378// See DescribeThingGroup for more information on using the DescribeThingGroup
8379// API call, and error handling.
8380//
8381// This method is useful when you want to inject custom logic or configuration
8382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8383//
8384//
8385//    // Example sending a request using the DescribeThingGroupRequest method.
8386//    req, resp := client.DescribeThingGroupRequest(params)
8387//
8388//    err := req.Send()
8389//    if err == nil { // resp is now filled
8390//        fmt.Println(resp)
8391//    }
8392func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
8393	op := &request.Operation{
8394		Name:       opDescribeThingGroup,
8395		HTTPMethod: "GET",
8396		HTTPPath:   "/thing-groups/{thingGroupName}",
8397	}
8398
8399	if input == nil {
8400		input = &DescribeThingGroupInput{}
8401	}
8402
8403	output = &DescribeThingGroupOutput{}
8404	req = c.newRequest(op, input, output)
8405	return
8406}
8407
8408// DescribeThingGroup API operation for AWS IoT.
8409//
8410// Describe a thing group.
8411//
8412// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8413// with awserr.Error's Code and Message methods to get detailed information about
8414// the error.
8415//
8416// See the AWS API reference guide for AWS IoT's
8417// API operation DescribeThingGroup for usage and error information.
8418//
8419// Returned Error Types:
8420//   * InvalidRequestException
8421//   The request is not valid.
8422//
8423//   * ThrottlingException
8424//   The rate exceeds the limit.
8425//
8426//   * InternalFailureException
8427//   An unexpected error has occurred.
8428//
8429//   * ResourceNotFoundException
8430//   The specified resource does not exist.
8431//
8432func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
8433	req, out := c.DescribeThingGroupRequest(input)
8434	return out, req.Send()
8435}
8436
8437// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
8438// the ability to pass a context and additional request options.
8439//
8440// See DescribeThingGroup for details on how to use this API operation.
8441//
8442// The context must be non-nil and will be used for request cancellation. If
8443// the context is nil a panic will occur. In the future the SDK may create
8444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8445// for more information on using Contexts.
8446func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
8447	req, out := c.DescribeThingGroupRequest(input)
8448	req.SetContext(ctx)
8449	req.ApplyOptions(opts...)
8450	return out, req.Send()
8451}
8452
8453const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
8454
8455// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
8456// client's request for the DescribeThingRegistrationTask operation. The "output" return
8457// value will be populated with the request's response once the request completes
8458// successfully.
8459//
8460// Use "Send" method on the returned Request to send the API call to the service.
8461// the "output" return value is not valid until after Send returns without error.
8462//
8463// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
8464// API call, and error handling.
8465//
8466// This method is useful when you want to inject custom logic or configuration
8467// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8468//
8469//
8470//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
8471//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
8472//
8473//    err := req.Send()
8474//    if err == nil { // resp is now filled
8475//        fmt.Println(resp)
8476//    }
8477func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
8478	op := &request.Operation{
8479		Name:       opDescribeThingRegistrationTask,
8480		HTTPMethod: "GET",
8481		HTTPPath:   "/thing-registration-tasks/{taskId}",
8482	}
8483
8484	if input == nil {
8485		input = &DescribeThingRegistrationTaskInput{}
8486	}
8487
8488	output = &DescribeThingRegistrationTaskOutput{}
8489	req = c.newRequest(op, input, output)
8490	return
8491}
8492
8493// DescribeThingRegistrationTask API operation for AWS IoT.
8494//
8495// Describes a bulk thing provisioning task.
8496//
8497// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8498// with awserr.Error's Code and Message methods to get detailed information about
8499// the error.
8500//
8501// See the AWS API reference guide for AWS IoT's
8502// API operation DescribeThingRegistrationTask for usage and error information.
8503//
8504// Returned Error Types:
8505//   * InvalidRequestException
8506//   The request is not valid.
8507//
8508//   * ThrottlingException
8509//   The rate exceeds the limit.
8510//
8511//   * UnauthorizedException
8512//   You are not authorized to perform this operation.
8513//
8514//   * InternalFailureException
8515//   An unexpected error has occurred.
8516//
8517//   * ResourceNotFoundException
8518//   The specified resource does not exist.
8519//
8520func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
8521	req, out := c.DescribeThingRegistrationTaskRequest(input)
8522	return out, req.Send()
8523}
8524
8525// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
8526// the ability to pass a context and additional request options.
8527//
8528// See DescribeThingRegistrationTask for details on how to use this API operation.
8529//
8530// The context must be non-nil and will be used for request cancellation. If
8531// the context is nil a panic will occur. In the future the SDK may create
8532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8533// for more information on using Contexts.
8534func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
8535	req, out := c.DescribeThingRegistrationTaskRequest(input)
8536	req.SetContext(ctx)
8537	req.ApplyOptions(opts...)
8538	return out, req.Send()
8539}
8540
8541const opDescribeThingType = "DescribeThingType"
8542
8543// DescribeThingTypeRequest generates a "aws/request.Request" representing the
8544// client's request for the DescribeThingType operation. The "output" return
8545// value will be populated with the request's response once the request completes
8546// successfully.
8547//
8548// Use "Send" method on the returned Request to send the API call to the service.
8549// the "output" return value is not valid until after Send returns without error.
8550//
8551// See DescribeThingType for more information on using the DescribeThingType
8552// API call, and error handling.
8553//
8554// This method is useful when you want to inject custom logic or configuration
8555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8556//
8557//
8558//    // Example sending a request using the DescribeThingTypeRequest method.
8559//    req, resp := client.DescribeThingTypeRequest(params)
8560//
8561//    err := req.Send()
8562//    if err == nil { // resp is now filled
8563//        fmt.Println(resp)
8564//    }
8565func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
8566	op := &request.Operation{
8567		Name:       opDescribeThingType,
8568		HTTPMethod: "GET",
8569		HTTPPath:   "/thing-types/{thingTypeName}",
8570	}
8571
8572	if input == nil {
8573		input = &DescribeThingTypeInput{}
8574	}
8575
8576	output = &DescribeThingTypeOutput{}
8577	req = c.newRequest(op, input, output)
8578	return
8579}
8580
8581// DescribeThingType API operation for AWS IoT.
8582//
8583// Gets information about the specified thing type.
8584//
8585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8586// with awserr.Error's Code and Message methods to get detailed information about
8587// the error.
8588//
8589// See the AWS API reference guide for AWS IoT's
8590// API operation DescribeThingType for usage and error information.
8591//
8592// Returned Error Types:
8593//   * ResourceNotFoundException
8594//   The specified resource does not exist.
8595//
8596//   * InvalidRequestException
8597//   The request is not valid.
8598//
8599//   * ThrottlingException
8600//   The rate exceeds the limit.
8601//
8602//   * UnauthorizedException
8603//   You are not authorized to perform this operation.
8604//
8605//   * ServiceUnavailableException
8606//   The service is temporarily unavailable.
8607//
8608//   * InternalFailureException
8609//   An unexpected error has occurred.
8610//
8611func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
8612	req, out := c.DescribeThingTypeRequest(input)
8613	return out, req.Send()
8614}
8615
8616// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
8617// the ability to pass a context and additional request options.
8618//
8619// See DescribeThingType for details on how to use this API operation.
8620//
8621// The context must be non-nil and will be used for request cancellation. If
8622// the context is nil a panic will occur. In the future the SDK may create
8623// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8624// for more information on using Contexts.
8625func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
8626	req, out := c.DescribeThingTypeRequest(input)
8627	req.SetContext(ctx)
8628	req.ApplyOptions(opts...)
8629	return out, req.Send()
8630}
8631
8632const opDetachPolicy = "DetachPolicy"
8633
8634// DetachPolicyRequest generates a "aws/request.Request" representing the
8635// client's request for the DetachPolicy operation. The "output" return
8636// value will be populated with the request's response once the request completes
8637// successfully.
8638//
8639// Use "Send" method on the returned Request to send the API call to the service.
8640// the "output" return value is not valid until after Send returns without error.
8641//
8642// See DetachPolicy for more information on using the DetachPolicy
8643// API call, and error handling.
8644//
8645// This method is useful when you want to inject custom logic or configuration
8646// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8647//
8648//
8649//    // Example sending a request using the DetachPolicyRequest method.
8650//    req, resp := client.DetachPolicyRequest(params)
8651//
8652//    err := req.Send()
8653//    if err == nil { // resp is now filled
8654//        fmt.Println(resp)
8655//    }
8656func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
8657	op := &request.Operation{
8658		Name:       opDetachPolicy,
8659		HTTPMethod: "POST",
8660		HTTPPath:   "/target-policies/{policyName}",
8661	}
8662
8663	if input == nil {
8664		input = &DetachPolicyInput{}
8665	}
8666
8667	output = &DetachPolicyOutput{}
8668	req = c.newRequest(op, input, output)
8669	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8670	return
8671}
8672
8673// DetachPolicy API operation for AWS IoT.
8674//
8675// Detaches a policy from the specified target.
8676//
8677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8678// with awserr.Error's Code and Message methods to get detailed information about
8679// the error.
8680//
8681// See the AWS API reference guide for AWS IoT's
8682// API operation DetachPolicy for usage and error information.
8683//
8684// Returned Error Types:
8685//   * InvalidRequestException
8686//   The request is not valid.
8687//
8688//   * ThrottlingException
8689//   The rate exceeds the limit.
8690//
8691//   * UnauthorizedException
8692//   You are not authorized to perform this operation.
8693//
8694//   * ServiceUnavailableException
8695//   The service is temporarily unavailable.
8696//
8697//   * InternalFailureException
8698//   An unexpected error has occurred.
8699//
8700//   * LimitExceededException
8701//   A limit has been exceeded.
8702//
8703func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
8704	req, out := c.DetachPolicyRequest(input)
8705	return out, req.Send()
8706}
8707
8708// DetachPolicyWithContext is the same as DetachPolicy with the addition of
8709// the ability to pass a context and additional request options.
8710//
8711// See DetachPolicy for details on how to use this API operation.
8712//
8713// The context must be non-nil and will be used for request cancellation. If
8714// the context is nil a panic will occur. In the future the SDK may create
8715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8716// for more information on using Contexts.
8717func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
8718	req, out := c.DetachPolicyRequest(input)
8719	req.SetContext(ctx)
8720	req.ApplyOptions(opts...)
8721	return out, req.Send()
8722}
8723
8724const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
8725
8726// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
8727// client's request for the DetachPrincipalPolicy operation. The "output" return
8728// value will be populated with the request's response once the request completes
8729// successfully.
8730//
8731// Use "Send" method on the returned Request to send the API call to the service.
8732// the "output" return value is not valid until after Send returns without error.
8733//
8734// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
8735// API call, and error handling.
8736//
8737// This method is useful when you want to inject custom logic or configuration
8738// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8739//
8740//
8741//    // Example sending a request using the DetachPrincipalPolicyRequest method.
8742//    req, resp := client.DetachPrincipalPolicyRequest(params)
8743//
8744//    err := req.Send()
8745//    if err == nil { // resp is now filled
8746//        fmt.Println(resp)
8747//    }
8748//
8749// Deprecated: DetachPrincipalPolicy has been deprecated
8750func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
8751	if c.Client.Config.Logger != nil {
8752		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
8753	}
8754	op := &request.Operation{
8755		Name:       opDetachPrincipalPolicy,
8756		HTTPMethod: "DELETE",
8757		HTTPPath:   "/principal-policies/{policyName}",
8758	}
8759
8760	if input == nil {
8761		input = &DetachPrincipalPolicyInput{}
8762	}
8763
8764	output = &DetachPrincipalPolicyOutput{}
8765	req = c.newRequest(op, input, output)
8766	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8767	return
8768}
8769
8770// DetachPrincipalPolicy API operation for AWS IoT.
8771//
8772// Removes the specified policy from the specified certificate.
8773//
8774// Note: This API is deprecated. Please use DetachPolicy instead.
8775//
8776// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8777// with awserr.Error's Code and Message methods to get detailed information about
8778// the error.
8779//
8780// See the AWS API reference guide for AWS IoT's
8781// API operation DetachPrincipalPolicy for usage and error information.
8782//
8783// Returned Error Types:
8784//   * ResourceNotFoundException
8785//   The specified resource does not exist.
8786//
8787//   * InvalidRequestException
8788//   The request is not valid.
8789//
8790//   * ThrottlingException
8791//   The rate exceeds the limit.
8792//
8793//   * UnauthorizedException
8794//   You are not authorized to perform this operation.
8795//
8796//   * ServiceUnavailableException
8797//   The service is temporarily unavailable.
8798//
8799//   * InternalFailureException
8800//   An unexpected error has occurred.
8801//
8802//
8803// Deprecated: DetachPrincipalPolicy has been deprecated
8804func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
8805	req, out := c.DetachPrincipalPolicyRequest(input)
8806	return out, req.Send()
8807}
8808
8809// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
8810// the ability to pass a context and additional request options.
8811//
8812// See DetachPrincipalPolicy for details on how to use this API operation.
8813//
8814// The context must be non-nil and will be used for request cancellation. If
8815// the context is nil a panic will occur. In the future the SDK may create
8816// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8817// for more information on using Contexts.
8818//
8819// Deprecated: DetachPrincipalPolicyWithContext has been deprecated
8820func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
8821	req, out := c.DetachPrincipalPolicyRequest(input)
8822	req.SetContext(ctx)
8823	req.ApplyOptions(opts...)
8824	return out, req.Send()
8825}
8826
8827const opDetachSecurityProfile = "DetachSecurityProfile"
8828
8829// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
8830// client's request for the DetachSecurityProfile operation. The "output" return
8831// value will be populated with the request's response once the request completes
8832// successfully.
8833//
8834// Use "Send" method on the returned Request to send the API call to the service.
8835// the "output" return value is not valid until after Send returns without error.
8836//
8837// See DetachSecurityProfile for more information on using the DetachSecurityProfile
8838// API call, and error handling.
8839//
8840// This method is useful when you want to inject custom logic or configuration
8841// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8842//
8843//
8844//    // Example sending a request using the DetachSecurityProfileRequest method.
8845//    req, resp := client.DetachSecurityProfileRequest(params)
8846//
8847//    err := req.Send()
8848//    if err == nil { // resp is now filled
8849//        fmt.Println(resp)
8850//    }
8851func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
8852	op := &request.Operation{
8853		Name:       opDetachSecurityProfile,
8854		HTTPMethod: "DELETE",
8855		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
8856	}
8857
8858	if input == nil {
8859		input = &DetachSecurityProfileInput{}
8860	}
8861
8862	output = &DetachSecurityProfileOutput{}
8863	req = c.newRequest(op, input, output)
8864	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8865	return
8866}
8867
8868// DetachSecurityProfile API operation for AWS IoT.
8869//
8870// Disassociates a Device Defender security profile from a thing group or from
8871// this account.
8872//
8873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8874// with awserr.Error's Code and Message methods to get detailed information about
8875// the error.
8876//
8877// See the AWS API reference guide for AWS IoT's
8878// API operation DetachSecurityProfile for usage and error information.
8879//
8880// Returned Error Types:
8881//   * InvalidRequestException
8882//   The request is not valid.
8883//
8884//   * ResourceNotFoundException
8885//   The specified resource does not exist.
8886//
8887//   * ThrottlingException
8888//   The rate exceeds the limit.
8889//
8890//   * InternalFailureException
8891//   An unexpected error has occurred.
8892//
8893func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
8894	req, out := c.DetachSecurityProfileRequest(input)
8895	return out, req.Send()
8896}
8897
8898// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
8899// the ability to pass a context and additional request options.
8900//
8901// See DetachSecurityProfile for details on how to use this API operation.
8902//
8903// The context must be non-nil and will be used for request cancellation. If
8904// the context is nil a panic will occur. In the future the SDK may create
8905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8906// for more information on using Contexts.
8907func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
8908	req, out := c.DetachSecurityProfileRequest(input)
8909	req.SetContext(ctx)
8910	req.ApplyOptions(opts...)
8911	return out, req.Send()
8912}
8913
8914const opDetachThingPrincipal = "DetachThingPrincipal"
8915
8916// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
8917// client's request for the DetachThingPrincipal operation. The "output" return
8918// value will be populated with the request's response once the request completes
8919// successfully.
8920//
8921// Use "Send" method on the returned Request to send the API call to the service.
8922// the "output" return value is not valid until after Send returns without error.
8923//
8924// See DetachThingPrincipal for more information on using the DetachThingPrincipal
8925// API call, and error handling.
8926//
8927// This method is useful when you want to inject custom logic or configuration
8928// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8929//
8930//
8931//    // Example sending a request using the DetachThingPrincipalRequest method.
8932//    req, resp := client.DetachThingPrincipalRequest(params)
8933//
8934//    err := req.Send()
8935//    if err == nil { // resp is now filled
8936//        fmt.Println(resp)
8937//    }
8938func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
8939	op := &request.Operation{
8940		Name:       opDetachThingPrincipal,
8941		HTTPMethod: "DELETE",
8942		HTTPPath:   "/things/{thingName}/principals",
8943	}
8944
8945	if input == nil {
8946		input = &DetachThingPrincipalInput{}
8947	}
8948
8949	output = &DetachThingPrincipalOutput{}
8950	req = c.newRequest(op, input, output)
8951	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8952	return
8953}
8954
8955// DetachThingPrincipal API operation for AWS IoT.
8956//
8957// Detaches the specified principal from the specified thing. A principal can
8958// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
8959// or federated identities.
8960//
8961// This call is asynchronous. It might take several seconds for the detachment
8962// to propagate.
8963//
8964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8965// with awserr.Error's Code and Message methods to get detailed information about
8966// the error.
8967//
8968// See the AWS API reference guide for AWS IoT's
8969// API operation DetachThingPrincipal for usage and error information.
8970//
8971// Returned Error Types:
8972//   * ResourceNotFoundException
8973//   The specified resource does not exist.
8974//
8975//   * InvalidRequestException
8976//   The request is not valid.
8977//
8978//   * ThrottlingException
8979//   The rate exceeds the limit.
8980//
8981//   * UnauthorizedException
8982//   You are not authorized to perform this operation.
8983//
8984//   * ServiceUnavailableException
8985//   The service is temporarily unavailable.
8986//
8987//   * InternalFailureException
8988//   An unexpected error has occurred.
8989//
8990func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
8991	req, out := c.DetachThingPrincipalRequest(input)
8992	return out, req.Send()
8993}
8994
8995// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
8996// the ability to pass a context and additional request options.
8997//
8998// See DetachThingPrincipal for details on how to use this API operation.
8999//
9000// The context must be non-nil and will be used for request cancellation. If
9001// the context is nil a panic will occur. In the future the SDK may create
9002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9003// for more information on using Contexts.
9004func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
9005	req, out := c.DetachThingPrincipalRequest(input)
9006	req.SetContext(ctx)
9007	req.ApplyOptions(opts...)
9008	return out, req.Send()
9009}
9010
9011const opDisableTopicRule = "DisableTopicRule"
9012
9013// DisableTopicRuleRequest generates a "aws/request.Request" representing the
9014// client's request for the DisableTopicRule operation. The "output" return
9015// value will be populated with the request's response once the request completes
9016// successfully.
9017//
9018// Use "Send" method on the returned Request to send the API call to the service.
9019// the "output" return value is not valid until after Send returns without error.
9020//
9021// See DisableTopicRule for more information on using the DisableTopicRule
9022// API call, and error handling.
9023//
9024// This method is useful when you want to inject custom logic or configuration
9025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9026//
9027//
9028//    // Example sending a request using the DisableTopicRuleRequest method.
9029//    req, resp := client.DisableTopicRuleRequest(params)
9030//
9031//    err := req.Send()
9032//    if err == nil { // resp is now filled
9033//        fmt.Println(resp)
9034//    }
9035func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
9036	op := &request.Operation{
9037		Name:       opDisableTopicRule,
9038		HTTPMethod: "POST",
9039		HTTPPath:   "/rules/{ruleName}/disable",
9040	}
9041
9042	if input == nil {
9043		input = &DisableTopicRuleInput{}
9044	}
9045
9046	output = &DisableTopicRuleOutput{}
9047	req = c.newRequest(op, input, output)
9048	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9049	return
9050}
9051
9052// DisableTopicRule API operation for AWS IoT.
9053//
9054// Disables the rule.
9055//
9056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9057// with awserr.Error's Code and Message methods to get detailed information about
9058// the error.
9059//
9060// See the AWS API reference guide for AWS IoT's
9061// API operation DisableTopicRule for usage and error information.
9062//
9063// Returned Error Types:
9064//   * InternalException
9065//   An unexpected error has occurred.
9066//
9067//   * InvalidRequestException
9068//   The request is not valid.
9069//
9070//   * ServiceUnavailableException
9071//   The service is temporarily unavailable.
9072//
9073//   * UnauthorizedException
9074//   You are not authorized to perform this operation.
9075//
9076//   * ConflictingResourceUpdateException
9077//   A conflicting resource update exception. This exception is thrown when two
9078//   pending updates cause a conflict.
9079//
9080func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
9081	req, out := c.DisableTopicRuleRequest(input)
9082	return out, req.Send()
9083}
9084
9085// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
9086// the ability to pass a context and additional request options.
9087//
9088// See DisableTopicRule for details on how to use this API operation.
9089//
9090// The context must be non-nil and will be used for request cancellation. If
9091// the context is nil a panic will occur. In the future the SDK may create
9092// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9093// for more information on using Contexts.
9094func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
9095	req, out := c.DisableTopicRuleRequest(input)
9096	req.SetContext(ctx)
9097	req.ApplyOptions(opts...)
9098	return out, req.Send()
9099}
9100
9101const opEnableTopicRule = "EnableTopicRule"
9102
9103// EnableTopicRuleRequest generates a "aws/request.Request" representing the
9104// client's request for the EnableTopicRule operation. The "output" return
9105// value will be populated with the request's response once the request completes
9106// successfully.
9107//
9108// Use "Send" method on the returned Request to send the API call to the service.
9109// the "output" return value is not valid until after Send returns without error.
9110//
9111// See EnableTopicRule for more information on using the EnableTopicRule
9112// API call, and error handling.
9113//
9114// This method is useful when you want to inject custom logic or configuration
9115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9116//
9117//
9118//    // Example sending a request using the EnableTopicRuleRequest method.
9119//    req, resp := client.EnableTopicRuleRequest(params)
9120//
9121//    err := req.Send()
9122//    if err == nil { // resp is now filled
9123//        fmt.Println(resp)
9124//    }
9125func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
9126	op := &request.Operation{
9127		Name:       opEnableTopicRule,
9128		HTTPMethod: "POST",
9129		HTTPPath:   "/rules/{ruleName}/enable",
9130	}
9131
9132	if input == nil {
9133		input = &EnableTopicRuleInput{}
9134	}
9135
9136	output = &EnableTopicRuleOutput{}
9137	req = c.newRequest(op, input, output)
9138	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9139	return
9140}
9141
9142// EnableTopicRule API operation for AWS IoT.
9143//
9144// Enables the rule.
9145//
9146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9147// with awserr.Error's Code and Message methods to get detailed information about
9148// the error.
9149//
9150// See the AWS API reference guide for AWS IoT's
9151// API operation EnableTopicRule for usage and error information.
9152//
9153// Returned Error Types:
9154//   * InternalException
9155//   An unexpected error has occurred.
9156//
9157//   * InvalidRequestException
9158//   The request is not valid.
9159//
9160//   * ServiceUnavailableException
9161//   The service is temporarily unavailable.
9162//
9163//   * UnauthorizedException
9164//   You are not authorized to perform this operation.
9165//
9166//   * ConflictingResourceUpdateException
9167//   A conflicting resource update exception. This exception is thrown when two
9168//   pending updates cause a conflict.
9169//
9170func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
9171	req, out := c.EnableTopicRuleRequest(input)
9172	return out, req.Send()
9173}
9174
9175// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
9176// the ability to pass a context and additional request options.
9177//
9178// See EnableTopicRule for details on how to use this API operation.
9179//
9180// The context must be non-nil and will be used for request cancellation. If
9181// the context is nil a panic will occur. In the future the SDK may create
9182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9183// for more information on using Contexts.
9184func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
9185	req, out := c.EnableTopicRuleRequest(input)
9186	req.SetContext(ctx)
9187	req.ApplyOptions(opts...)
9188	return out, req.Send()
9189}
9190
9191const opGetCardinality = "GetCardinality"
9192
9193// GetCardinalityRequest generates a "aws/request.Request" representing the
9194// client's request for the GetCardinality operation. The "output" return
9195// value will be populated with the request's response once the request completes
9196// successfully.
9197//
9198// Use "Send" method on the returned Request to send the API call to the service.
9199// the "output" return value is not valid until after Send returns without error.
9200//
9201// See GetCardinality for more information on using the GetCardinality
9202// API call, and error handling.
9203//
9204// This method is useful when you want to inject custom logic or configuration
9205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9206//
9207//
9208//    // Example sending a request using the GetCardinalityRequest method.
9209//    req, resp := client.GetCardinalityRequest(params)
9210//
9211//    err := req.Send()
9212//    if err == nil { // resp is now filled
9213//        fmt.Println(resp)
9214//    }
9215func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
9216	op := &request.Operation{
9217		Name:       opGetCardinality,
9218		HTTPMethod: "POST",
9219		HTTPPath:   "/indices/cardinality",
9220	}
9221
9222	if input == nil {
9223		input = &GetCardinalityInput{}
9224	}
9225
9226	output = &GetCardinalityOutput{}
9227	req = c.newRequest(op, input, output)
9228	return
9229}
9230
9231// GetCardinality API operation for AWS IoT.
9232//
9233// Returns the approximate count of unique values that match the query.
9234//
9235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9236// with awserr.Error's Code and Message methods to get detailed information about
9237// the error.
9238//
9239// See the AWS API reference guide for AWS IoT's
9240// API operation GetCardinality for usage and error information.
9241//
9242// Returned Error Types:
9243//   * InvalidRequestException
9244//   The request is not valid.
9245//
9246//   * ThrottlingException
9247//   The rate exceeds the limit.
9248//
9249//   * UnauthorizedException
9250//   You are not authorized to perform this operation.
9251//
9252//   * ServiceUnavailableException
9253//   The service is temporarily unavailable.
9254//
9255//   * InternalFailureException
9256//   An unexpected error has occurred.
9257//
9258//   * ResourceNotFoundException
9259//   The specified resource does not exist.
9260//
9261//   * InvalidQueryException
9262//   The query is invalid.
9263//
9264//   * InvalidAggregationException
9265//   The aggregation is invalid.
9266//
9267//   * IndexNotReadyException
9268//   The index is not ready.
9269//
9270func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
9271	req, out := c.GetCardinalityRequest(input)
9272	return out, req.Send()
9273}
9274
9275// GetCardinalityWithContext is the same as GetCardinality with the addition of
9276// the ability to pass a context and additional request options.
9277//
9278// See GetCardinality for details on how to use this API operation.
9279//
9280// The context must be non-nil and will be used for request cancellation. If
9281// the context is nil a panic will occur. In the future the SDK may create
9282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9283// for more information on using Contexts.
9284func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
9285	req, out := c.GetCardinalityRequest(input)
9286	req.SetContext(ctx)
9287	req.ApplyOptions(opts...)
9288	return out, req.Send()
9289}
9290
9291const opGetEffectivePolicies = "GetEffectivePolicies"
9292
9293// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
9294// client's request for the GetEffectivePolicies operation. The "output" return
9295// value will be populated with the request's response once the request completes
9296// successfully.
9297//
9298// Use "Send" method on the returned Request to send the API call to the service.
9299// the "output" return value is not valid until after Send returns without error.
9300//
9301// See GetEffectivePolicies for more information on using the GetEffectivePolicies
9302// API call, and error handling.
9303//
9304// This method is useful when you want to inject custom logic or configuration
9305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9306//
9307//
9308//    // Example sending a request using the GetEffectivePoliciesRequest method.
9309//    req, resp := client.GetEffectivePoliciesRequest(params)
9310//
9311//    err := req.Send()
9312//    if err == nil { // resp is now filled
9313//        fmt.Println(resp)
9314//    }
9315func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
9316	op := &request.Operation{
9317		Name:       opGetEffectivePolicies,
9318		HTTPMethod: "POST",
9319		HTTPPath:   "/effective-policies",
9320	}
9321
9322	if input == nil {
9323		input = &GetEffectivePoliciesInput{}
9324	}
9325
9326	output = &GetEffectivePoliciesOutput{}
9327	req = c.newRequest(op, input, output)
9328	return
9329}
9330
9331// GetEffectivePolicies API operation for AWS IoT.
9332//
9333// Gets a list of the policies that have an effect on the authorization behavior
9334// of the specified device when it connects to the AWS IoT device gateway.
9335//
9336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9337// with awserr.Error's Code and Message methods to get detailed information about
9338// the error.
9339//
9340// See the AWS API reference guide for AWS IoT's
9341// API operation GetEffectivePolicies for usage and error information.
9342//
9343// Returned Error Types:
9344//   * ResourceNotFoundException
9345//   The specified resource does not exist.
9346//
9347//   * InvalidRequestException
9348//   The request is not valid.
9349//
9350//   * ThrottlingException
9351//   The rate exceeds the limit.
9352//
9353//   * UnauthorizedException
9354//   You are not authorized to perform this operation.
9355//
9356//   * ServiceUnavailableException
9357//   The service is temporarily unavailable.
9358//
9359//   * InternalFailureException
9360//   An unexpected error has occurred.
9361//
9362//   * LimitExceededException
9363//   A limit has been exceeded.
9364//
9365func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
9366	req, out := c.GetEffectivePoliciesRequest(input)
9367	return out, req.Send()
9368}
9369
9370// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
9371// the ability to pass a context and additional request options.
9372//
9373// See GetEffectivePolicies for details on how to use this API operation.
9374//
9375// The context must be non-nil and will be used for request cancellation. If
9376// the context is nil a panic will occur. In the future the SDK may create
9377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9378// for more information on using Contexts.
9379func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
9380	req, out := c.GetEffectivePoliciesRequest(input)
9381	req.SetContext(ctx)
9382	req.ApplyOptions(opts...)
9383	return out, req.Send()
9384}
9385
9386const opGetIndexingConfiguration = "GetIndexingConfiguration"
9387
9388// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
9389// client's request for the GetIndexingConfiguration operation. The "output" return
9390// value will be populated with the request's response once the request completes
9391// successfully.
9392//
9393// Use "Send" method on the returned Request to send the API call to the service.
9394// the "output" return value is not valid until after Send returns without error.
9395//
9396// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
9397// API call, and error handling.
9398//
9399// This method is useful when you want to inject custom logic or configuration
9400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9401//
9402//
9403//    // Example sending a request using the GetIndexingConfigurationRequest method.
9404//    req, resp := client.GetIndexingConfigurationRequest(params)
9405//
9406//    err := req.Send()
9407//    if err == nil { // resp is now filled
9408//        fmt.Println(resp)
9409//    }
9410func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
9411	op := &request.Operation{
9412		Name:       opGetIndexingConfiguration,
9413		HTTPMethod: "GET",
9414		HTTPPath:   "/indexing/config",
9415	}
9416
9417	if input == nil {
9418		input = &GetIndexingConfigurationInput{}
9419	}
9420
9421	output = &GetIndexingConfigurationOutput{}
9422	req = c.newRequest(op, input, output)
9423	return
9424}
9425
9426// GetIndexingConfiguration API operation for AWS IoT.
9427//
9428// Gets the indexing configuration.
9429//
9430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9431// with awserr.Error's Code and Message methods to get detailed information about
9432// the error.
9433//
9434// See the AWS API reference guide for AWS IoT's
9435// API operation GetIndexingConfiguration for usage and error information.
9436//
9437// Returned Error Types:
9438//   * InvalidRequestException
9439//   The request is not valid.
9440//
9441//   * ThrottlingException
9442//   The rate exceeds the limit.
9443//
9444//   * UnauthorizedException
9445//   You are not authorized to perform this operation.
9446//
9447//   * ServiceUnavailableException
9448//   The service is temporarily unavailable.
9449//
9450//   * InternalFailureException
9451//   An unexpected error has occurred.
9452//
9453func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
9454	req, out := c.GetIndexingConfigurationRequest(input)
9455	return out, req.Send()
9456}
9457
9458// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
9459// the ability to pass a context and additional request options.
9460//
9461// See GetIndexingConfiguration for details on how to use this API operation.
9462//
9463// The context must be non-nil and will be used for request cancellation. If
9464// the context is nil a panic will occur. In the future the SDK may create
9465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9466// for more information on using Contexts.
9467func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
9468	req, out := c.GetIndexingConfigurationRequest(input)
9469	req.SetContext(ctx)
9470	req.ApplyOptions(opts...)
9471	return out, req.Send()
9472}
9473
9474const opGetJobDocument = "GetJobDocument"
9475
9476// GetJobDocumentRequest generates a "aws/request.Request" representing the
9477// client's request for the GetJobDocument operation. The "output" return
9478// value will be populated with the request's response once the request completes
9479// successfully.
9480//
9481// Use "Send" method on the returned Request to send the API call to the service.
9482// the "output" return value is not valid until after Send returns without error.
9483//
9484// See GetJobDocument for more information on using the GetJobDocument
9485// API call, and error handling.
9486//
9487// This method is useful when you want to inject custom logic or configuration
9488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9489//
9490//
9491//    // Example sending a request using the GetJobDocumentRequest method.
9492//    req, resp := client.GetJobDocumentRequest(params)
9493//
9494//    err := req.Send()
9495//    if err == nil { // resp is now filled
9496//        fmt.Println(resp)
9497//    }
9498func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
9499	op := &request.Operation{
9500		Name:       opGetJobDocument,
9501		HTTPMethod: "GET",
9502		HTTPPath:   "/jobs/{jobId}/job-document",
9503	}
9504
9505	if input == nil {
9506		input = &GetJobDocumentInput{}
9507	}
9508
9509	output = &GetJobDocumentOutput{}
9510	req = c.newRequest(op, input, output)
9511	return
9512}
9513
9514// GetJobDocument API operation for AWS IoT.
9515//
9516// Gets a job document.
9517//
9518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9519// with awserr.Error's Code and Message methods to get detailed information about
9520// the error.
9521//
9522// See the AWS API reference guide for AWS IoT's
9523// API operation GetJobDocument for usage and error information.
9524//
9525// Returned Error Types:
9526//   * InvalidRequestException
9527//   The request is not valid.
9528//
9529//   * ResourceNotFoundException
9530//   The specified resource does not exist.
9531//
9532//   * ThrottlingException
9533//   The rate exceeds the limit.
9534//
9535//   * ServiceUnavailableException
9536//   The service is temporarily unavailable.
9537//
9538func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
9539	req, out := c.GetJobDocumentRequest(input)
9540	return out, req.Send()
9541}
9542
9543// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
9544// the ability to pass a context and additional request options.
9545//
9546// See GetJobDocument for details on how to use this API operation.
9547//
9548// The context must be non-nil and will be used for request cancellation. If
9549// the context is nil a panic will occur. In the future the SDK may create
9550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9551// for more information on using Contexts.
9552func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
9553	req, out := c.GetJobDocumentRequest(input)
9554	req.SetContext(ctx)
9555	req.ApplyOptions(opts...)
9556	return out, req.Send()
9557}
9558
9559const opGetLoggingOptions = "GetLoggingOptions"
9560
9561// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
9562// client's request for the GetLoggingOptions operation. The "output" return
9563// value will be populated with the request's response once the request completes
9564// successfully.
9565//
9566// Use "Send" method on the returned Request to send the API call to the service.
9567// the "output" return value is not valid until after Send returns without error.
9568//
9569// See GetLoggingOptions for more information on using the GetLoggingOptions
9570// API call, and error handling.
9571//
9572// This method is useful when you want to inject custom logic or configuration
9573// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9574//
9575//
9576//    // Example sending a request using the GetLoggingOptionsRequest method.
9577//    req, resp := client.GetLoggingOptionsRequest(params)
9578//
9579//    err := req.Send()
9580//    if err == nil { // resp is now filled
9581//        fmt.Println(resp)
9582//    }
9583func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
9584	op := &request.Operation{
9585		Name:       opGetLoggingOptions,
9586		HTTPMethod: "GET",
9587		HTTPPath:   "/loggingOptions",
9588	}
9589
9590	if input == nil {
9591		input = &GetLoggingOptionsInput{}
9592	}
9593
9594	output = &GetLoggingOptionsOutput{}
9595	req = c.newRequest(op, input, output)
9596	return
9597}
9598
9599// GetLoggingOptions API operation for AWS IoT.
9600//
9601// Gets the logging options.
9602//
9603// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
9604//
9605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9606// with awserr.Error's Code and Message methods to get detailed information about
9607// the error.
9608//
9609// See the AWS API reference guide for AWS IoT's
9610// API operation GetLoggingOptions for usage and error information.
9611//
9612// Returned Error Types:
9613//   * InternalException
9614//   An unexpected error has occurred.
9615//
9616//   * InvalidRequestException
9617//   The request is not valid.
9618//
9619//   * ServiceUnavailableException
9620//   The service is temporarily unavailable.
9621//
9622func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
9623	req, out := c.GetLoggingOptionsRequest(input)
9624	return out, req.Send()
9625}
9626
9627// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
9628// the ability to pass a context and additional request options.
9629//
9630// See GetLoggingOptions for details on how to use this API operation.
9631//
9632// The context must be non-nil and will be used for request cancellation. If
9633// the context is nil a panic will occur. In the future the SDK may create
9634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9635// for more information on using Contexts.
9636func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
9637	req, out := c.GetLoggingOptionsRequest(input)
9638	req.SetContext(ctx)
9639	req.ApplyOptions(opts...)
9640	return out, req.Send()
9641}
9642
9643const opGetOTAUpdate = "GetOTAUpdate"
9644
9645// GetOTAUpdateRequest generates a "aws/request.Request" representing the
9646// client's request for the GetOTAUpdate operation. The "output" return
9647// value will be populated with the request's response once the request completes
9648// successfully.
9649//
9650// Use "Send" method on the returned Request to send the API call to the service.
9651// the "output" return value is not valid until after Send returns without error.
9652//
9653// See GetOTAUpdate for more information on using the GetOTAUpdate
9654// API call, and error handling.
9655//
9656// This method is useful when you want to inject custom logic or configuration
9657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9658//
9659//
9660//    // Example sending a request using the GetOTAUpdateRequest method.
9661//    req, resp := client.GetOTAUpdateRequest(params)
9662//
9663//    err := req.Send()
9664//    if err == nil { // resp is now filled
9665//        fmt.Println(resp)
9666//    }
9667func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
9668	op := &request.Operation{
9669		Name:       opGetOTAUpdate,
9670		HTTPMethod: "GET",
9671		HTTPPath:   "/otaUpdates/{otaUpdateId}",
9672	}
9673
9674	if input == nil {
9675		input = &GetOTAUpdateInput{}
9676	}
9677
9678	output = &GetOTAUpdateOutput{}
9679	req = c.newRequest(op, input, output)
9680	return
9681}
9682
9683// GetOTAUpdate API operation for AWS IoT.
9684//
9685// Gets an OTA update.
9686//
9687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9688// with awserr.Error's Code and Message methods to get detailed information about
9689// the error.
9690//
9691// See the AWS API reference guide for AWS IoT's
9692// API operation GetOTAUpdate for usage and error information.
9693//
9694// Returned Error Types:
9695//   * InvalidRequestException
9696//   The request is not valid.
9697//
9698//   * ThrottlingException
9699//   The rate exceeds the limit.
9700//
9701//   * UnauthorizedException
9702//   You are not authorized to perform this operation.
9703//
9704//   * InternalFailureException
9705//   An unexpected error has occurred.
9706//
9707//   * ServiceUnavailableException
9708//   The service is temporarily unavailable.
9709//
9710//   * ResourceNotFoundException
9711//   The specified resource does not exist.
9712//
9713func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
9714	req, out := c.GetOTAUpdateRequest(input)
9715	return out, req.Send()
9716}
9717
9718// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
9719// the ability to pass a context and additional request options.
9720//
9721// See GetOTAUpdate for details on how to use this API operation.
9722//
9723// The context must be non-nil and will be used for request cancellation. If
9724// the context is nil a panic will occur. In the future the SDK may create
9725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9726// for more information on using Contexts.
9727func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
9728	req, out := c.GetOTAUpdateRequest(input)
9729	req.SetContext(ctx)
9730	req.ApplyOptions(opts...)
9731	return out, req.Send()
9732}
9733
9734const opGetPercentiles = "GetPercentiles"
9735
9736// GetPercentilesRequest generates a "aws/request.Request" representing the
9737// client's request for the GetPercentiles operation. The "output" return
9738// value will be populated with the request's response once the request completes
9739// successfully.
9740//
9741// Use "Send" method on the returned Request to send the API call to the service.
9742// the "output" return value is not valid until after Send returns without error.
9743//
9744// See GetPercentiles for more information on using the GetPercentiles
9745// API call, and error handling.
9746//
9747// This method is useful when you want to inject custom logic or configuration
9748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9749//
9750//
9751//    // Example sending a request using the GetPercentilesRequest method.
9752//    req, resp := client.GetPercentilesRequest(params)
9753//
9754//    err := req.Send()
9755//    if err == nil { // resp is now filled
9756//        fmt.Println(resp)
9757//    }
9758func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
9759	op := &request.Operation{
9760		Name:       opGetPercentiles,
9761		HTTPMethod: "POST",
9762		HTTPPath:   "/indices/percentiles",
9763	}
9764
9765	if input == nil {
9766		input = &GetPercentilesInput{}
9767	}
9768
9769	output = &GetPercentilesOutput{}
9770	req = c.newRequest(op, input, output)
9771	return
9772}
9773
9774// GetPercentiles API operation for AWS IoT.
9775//
9776// Groups the aggregated values that match the query into percentile groupings.
9777// The default percentile groupings are: 1,5,25,50,75,95,99, although you can
9778// specify your own when you call GetPercentiles. This function returns a value
9779// for each percentile group specified (or the default percentile groupings).
9780// The percentile group "1" contains the aggregated field value that occurs
9781// in approximately one percent of the values that match the query. The percentile
9782// group "5" contains the aggregated field value that occurs in approximately
9783// five percent of the values that match the query, and so on. The result is
9784// an approximation, the more values that match the query, the more accurate
9785// the percentile values.
9786//
9787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9788// with awserr.Error's Code and Message methods to get detailed information about
9789// the error.
9790//
9791// See the AWS API reference guide for AWS IoT's
9792// API operation GetPercentiles for usage and error information.
9793//
9794// Returned Error Types:
9795//   * InvalidRequestException
9796//   The request is not valid.
9797//
9798//   * ThrottlingException
9799//   The rate exceeds the limit.
9800//
9801//   * UnauthorizedException
9802//   You are not authorized to perform this operation.
9803//
9804//   * ServiceUnavailableException
9805//   The service is temporarily unavailable.
9806//
9807//   * InternalFailureException
9808//   An unexpected error has occurred.
9809//
9810//   * ResourceNotFoundException
9811//   The specified resource does not exist.
9812//
9813//   * InvalidQueryException
9814//   The query is invalid.
9815//
9816//   * InvalidAggregationException
9817//   The aggregation is invalid.
9818//
9819//   * IndexNotReadyException
9820//   The index is not ready.
9821//
9822func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
9823	req, out := c.GetPercentilesRequest(input)
9824	return out, req.Send()
9825}
9826
9827// GetPercentilesWithContext is the same as GetPercentiles with the addition of
9828// the ability to pass a context and additional request options.
9829//
9830// See GetPercentiles for details on how to use this API operation.
9831//
9832// The context must be non-nil and will be used for request cancellation. If
9833// the context is nil a panic will occur. In the future the SDK may create
9834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9835// for more information on using Contexts.
9836func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
9837	req, out := c.GetPercentilesRequest(input)
9838	req.SetContext(ctx)
9839	req.ApplyOptions(opts...)
9840	return out, req.Send()
9841}
9842
9843const opGetPolicy = "GetPolicy"
9844
9845// GetPolicyRequest generates a "aws/request.Request" representing the
9846// client's request for the GetPolicy operation. The "output" return
9847// value will be populated with the request's response once the request completes
9848// successfully.
9849//
9850// Use "Send" method on the returned Request to send the API call to the service.
9851// the "output" return value is not valid until after Send returns without error.
9852//
9853// See GetPolicy for more information on using the GetPolicy
9854// API call, and error handling.
9855//
9856// This method is useful when you want to inject custom logic or configuration
9857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9858//
9859//
9860//    // Example sending a request using the GetPolicyRequest method.
9861//    req, resp := client.GetPolicyRequest(params)
9862//
9863//    err := req.Send()
9864//    if err == nil { // resp is now filled
9865//        fmt.Println(resp)
9866//    }
9867func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
9868	op := &request.Operation{
9869		Name:       opGetPolicy,
9870		HTTPMethod: "GET",
9871		HTTPPath:   "/policies/{policyName}",
9872	}
9873
9874	if input == nil {
9875		input = &GetPolicyInput{}
9876	}
9877
9878	output = &GetPolicyOutput{}
9879	req = c.newRequest(op, input, output)
9880	return
9881}
9882
9883// GetPolicy API operation for AWS IoT.
9884//
9885// Gets information about the specified policy with the policy document of the
9886// default version.
9887//
9888// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9889// with awserr.Error's Code and Message methods to get detailed information about
9890// the error.
9891//
9892// See the AWS API reference guide for AWS IoT's
9893// API operation GetPolicy for usage and error information.
9894//
9895// Returned Error Types:
9896//   * ResourceNotFoundException
9897//   The specified resource does not exist.
9898//
9899//   * InvalidRequestException
9900//   The request is not valid.
9901//
9902//   * ThrottlingException
9903//   The rate exceeds the limit.
9904//
9905//   * UnauthorizedException
9906//   You are not authorized to perform this operation.
9907//
9908//   * ServiceUnavailableException
9909//   The service is temporarily unavailable.
9910//
9911//   * InternalFailureException
9912//   An unexpected error has occurred.
9913//
9914func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
9915	req, out := c.GetPolicyRequest(input)
9916	return out, req.Send()
9917}
9918
9919// GetPolicyWithContext is the same as GetPolicy with the addition of
9920// the ability to pass a context and additional request options.
9921//
9922// See GetPolicy for details on how to use this API operation.
9923//
9924// The context must be non-nil and will be used for request cancellation. If
9925// the context is nil a panic will occur. In the future the SDK may create
9926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9927// for more information on using Contexts.
9928func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
9929	req, out := c.GetPolicyRequest(input)
9930	req.SetContext(ctx)
9931	req.ApplyOptions(opts...)
9932	return out, req.Send()
9933}
9934
9935const opGetPolicyVersion = "GetPolicyVersion"
9936
9937// GetPolicyVersionRequest generates a "aws/request.Request" representing the
9938// client's request for the GetPolicyVersion operation. The "output" return
9939// value will be populated with the request's response once the request completes
9940// successfully.
9941//
9942// Use "Send" method on the returned Request to send the API call to the service.
9943// the "output" return value is not valid until after Send returns without error.
9944//
9945// See GetPolicyVersion for more information on using the GetPolicyVersion
9946// API call, and error handling.
9947//
9948// This method is useful when you want to inject custom logic or configuration
9949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9950//
9951//
9952//    // Example sending a request using the GetPolicyVersionRequest method.
9953//    req, resp := client.GetPolicyVersionRequest(params)
9954//
9955//    err := req.Send()
9956//    if err == nil { // resp is now filled
9957//        fmt.Println(resp)
9958//    }
9959func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
9960	op := &request.Operation{
9961		Name:       opGetPolicyVersion,
9962		HTTPMethod: "GET",
9963		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
9964	}
9965
9966	if input == nil {
9967		input = &GetPolicyVersionInput{}
9968	}
9969
9970	output = &GetPolicyVersionOutput{}
9971	req = c.newRequest(op, input, output)
9972	return
9973}
9974
9975// GetPolicyVersion API operation for AWS IoT.
9976//
9977// Gets information about the specified policy version.
9978//
9979// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9980// with awserr.Error's Code and Message methods to get detailed information about
9981// the error.
9982//
9983// See the AWS API reference guide for AWS IoT's
9984// API operation GetPolicyVersion for usage and error information.
9985//
9986// Returned Error Types:
9987//   * ResourceNotFoundException
9988//   The specified resource does not exist.
9989//
9990//   * InvalidRequestException
9991//   The request is not valid.
9992//
9993//   * ThrottlingException
9994//   The rate exceeds the limit.
9995//
9996//   * UnauthorizedException
9997//   You are not authorized to perform this operation.
9998//
9999//   * ServiceUnavailableException
10000//   The service is temporarily unavailable.
10001//
10002//   * InternalFailureException
10003//   An unexpected error has occurred.
10004//
10005func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
10006	req, out := c.GetPolicyVersionRequest(input)
10007	return out, req.Send()
10008}
10009
10010// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
10011// the ability to pass a context and additional request options.
10012//
10013// See GetPolicyVersion for details on how to use this API operation.
10014//
10015// The context must be non-nil and will be used for request cancellation. If
10016// the context is nil a panic will occur. In the future the SDK may create
10017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10018// for more information on using Contexts.
10019func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
10020	req, out := c.GetPolicyVersionRequest(input)
10021	req.SetContext(ctx)
10022	req.ApplyOptions(opts...)
10023	return out, req.Send()
10024}
10025
10026const opGetRegistrationCode = "GetRegistrationCode"
10027
10028// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
10029// client's request for the GetRegistrationCode operation. The "output" return
10030// value will be populated with the request's response once the request completes
10031// successfully.
10032//
10033// Use "Send" method on the returned Request to send the API call to the service.
10034// the "output" return value is not valid until after Send returns without error.
10035//
10036// See GetRegistrationCode for more information on using the GetRegistrationCode
10037// API call, and error handling.
10038//
10039// This method is useful when you want to inject custom logic or configuration
10040// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10041//
10042//
10043//    // Example sending a request using the GetRegistrationCodeRequest method.
10044//    req, resp := client.GetRegistrationCodeRequest(params)
10045//
10046//    err := req.Send()
10047//    if err == nil { // resp is now filled
10048//        fmt.Println(resp)
10049//    }
10050func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
10051	op := &request.Operation{
10052		Name:       opGetRegistrationCode,
10053		HTTPMethod: "GET",
10054		HTTPPath:   "/registrationcode",
10055	}
10056
10057	if input == nil {
10058		input = &GetRegistrationCodeInput{}
10059	}
10060
10061	output = &GetRegistrationCodeOutput{}
10062	req = c.newRequest(op, input, output)
10063	return
10064}
10065
10066// GetRegistrationCode API operation for AWS IoT.
10067//
10068// Gets a registration code used to register a CA certificate with AWS IoT.
10069//
10070// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10071// with awserr.Error's Code and Message methods to get detailed information about
10072// the error.
10073//
10074// See the AWS API reference guide for AWS IoT's
10075// API operation GetRegistrationCode for usage and error information.
10076//
10077// Returned Error Types:
10078//   * ThrottlingException
10079//   The rate exceeds the limit.
10080//
10081//   * UnauthorizedException
10082//   You are not authorized to perform this operation.
10083//
10084//   * ServiceUnavailableException
10085//   The service is temporarily unavailable.
10086//
10087//   * InternalFailureException
10088//   An unexpected error has occurred.
10089//
10090//   * InvalidRequestException
10091//   The request is not valid.
10092//
10093func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
10094	req, out := c.GetRegistrationCodeRequest(input)
10095	return out, req.Send()
10096}
10097
10098// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
10099// the ability to pass a context and additional request options.
10100//
10101// See GetRegistrationCode for details on how to use this API operation.
10102//
10103// The context must be non-nil and will be used for request cancellation. If
10104// the context is nil a panic will occur. In the future the SDK may create
10105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10106// for more information on using Contexts.
10107func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
10108	req, out := c.GetRegistrationCodeRequest(input)
10109	req.SetContext(ctx)
10110	req.ApplyOptions(opts...)
10111	return out, req.Send()
10112}
10113
10114const opGetStatistics = "GetStatistics"
10115
10116// GetStatisticsRequest generates a "aws/request.Request" representing the
10117// client's request for the GetStatistics operation. The "output" return
10118// value will be populated with the request's response once the request completes
10119// successfully.
10120//
10121// Use "Send" method on the returned Request to send the API call to the service.
10122// the "output" return value is not valid until after Send returns without error.
10123//
10124// See GetStatistics for more information on using the GetStatistics
10125// API call, and error handling.
10126//
10127// This method is useful when you want to inject custom logic or configuration
10128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10129//
10130//
10131//    // Example sending a request using the GetStatisticsRequest method.
10132//    req, resp := client.GetStatisticsRequest(params)
10133//
10134//    err := req.Send()
10135//    if err == nil { // resp is now filled
10136//        fmt.Println(resp)
10137//    }
10138func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
10139	op := &request.Operation{
10140		Name:       opGetStatistics,
10141		HTTPMethod: "POST",
10142		HTTPPath:   "/indices/statistics",
10143	}
10144
10145	if input == nil {
10146		input = &GetStatisticsInput{}
10147	}
10148
10149	output = &GetStatisticsOutput{}
10150	req = c.newRequest(op, input, output)
10151	return
10152}
10153
10154// GetStatistics API operation for AWS IoT.
10155//
10156// Returns the count, average, sum, minimum, maximum, sum of squares, variance,
10157// and standard deviation for the specified aggregated field. If the aggregation
10158// field is of type String, only the count statistic is returned.
10159//
10160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10161// with awserr.Error's Code and Message methods to get detailed information about
10162// the error.
10163//
10164// See the AWS API reference guide for AWS IoT's
10165// API operation GetStatistics for usage and error information.
10166//
10167// Returned Error Types:
10168//   * InvalidRequestException
10169//   The request is not valid.
10170//
10171//   * ThrottlingException
10172//   The rate exceeds the limit.
10173//
10174//   * UnauthorizedException
10175//   You are not authorized to perform this operation.
10176//
10177//   * ServiceUnavailableException
10178//   The service is temporarily unavailable.
10179//
10180//   * InternalFailureException
10181//   An unexpected error has occurred.
10182//
10183//   * ResourceNotFoundException
10184//   The specified resource does not exist.
10185//
10186//   * InvalidQueryException
10187//   The query is invalid.
10188//
10189//   * InvalidAggregationException
10190//   The aggregation is invalid.
10191//
10192//   * IndexNotReadyException
10193//   The index is not ready.
10194//
10195func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
10196	req, out := c.GetStatisticsRequest(input)
10197	return out, req.Send()
10198}
10199
10200// GetStatisticsWithContext is the same as GetStatistics with the addition of
10201// the ability to pass a context and additional request options.
10202//
10203// See GetStatistics for details on how to use this API operation.
10204//
10205// The context must be non-nil and will be used for request cancellation. If
10206// the context is nil a panic will occur. In the future the SDK may create
10207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10208// for more information on using Contexts.
10209func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
10210	req, out := c.GetStatisticsRequest(input)
10211	req.SetContext(ctx)
10212	req.ApplyOptions(opts...)
10213	return out, req.Send()
10214}
10215
10216const opGetTopicRule = "GetTopicRule"
10217
10218// GetTopicRuleRequest generates a "aws/request.Request" representing the
10219// client's request for the GetTopicRule operation. The "output" return
10220// value will be populated with the request's response once the request completes
10221// successfully.
10222//
10223// Use "Send" method on the returned Request to send the API call to the service.
10224// the "output" return value is not valid until after Send returns without error.
10225//
10226// See GetTopicRule for more information on using the GetTopicRule
10227// API call, and error handling.
10228//
10229// This method is useful when you want to inject custom logic or configuration
10230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10231//
10232//
10233//    // Example sending a request using the GetTopicRuleRequest method.
10234//    req, resp := client.GetTopicRuleRequest(params)
10235//
10236//    err := req.Send()
10237//    if err == nil { // resp is now filled
10238//        fmt.Println(resp)
10239//    }
10240func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
10241	op := &request.Operation{
10242		Name:       opGetTopicRule,
10243		HTTPMethod: "GET",
10244		HTTPPath:   "/rules/{ruleName}",
10245	}
10246
10247	if input == nil {
10248		input = &GetTopicRuleInput{}
10249	}
10250
10251	output = &GetTopicRuleOutput{}
10252	req = c.newRequest(op, input, output)
10253	return
10254}
10255
10256// GetTopicRule API operation for AWS IoT.
10257//
10258// Gets information about the rule.
10259//
10260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10261// with awserr.Error's Code and Message methods to get detailed information about
10262// the error.
10263//
10264// See the AWS API reference guide for AWS IoT's
10265// API operation GetTopicRule for usage and error information.
10266//
10267// Returned Error Types:
10268//   * InternalException
10269//   An unexpected error has occurred.
10270//
10271//   * InvalidRequestException
10272//   The request is not valid.
10273//
10274//   * ServiceUnavailableException
10275//   The service is temporarily unavailable.
10276//
10277//   * UnauthorizedException
10278//   You are not authorized to perform this operation.
10279//
10280func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
10281	req, out := c.GetTopicRuleRequest(input)
10282	return out, req.Send()
10283}
10284
10285// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
10286// the ability to pass a context and additional request options.
10287//
10288// See GetTopicRule for details on how to use this API operation.
10289//
10290// The context must be non-nil and will be used for request cancellation. If
10291// the context is nil a panic will occur. In the future the SDK may create
10292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10293// for more information on using Contexts.
10294func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
10295	req, out := c.GetTopicRuleRequest(input)
10296	req.SetContext(ctx)
10297	req.ApplyOptions(opts...)
10298	return out, req.Send()
10299}
10300
10301const opGetTopicRuleDestination = "GetTopicRuleDestination"
10302
10303// GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
10304// client's request for the GetTopicRuleDestination operation. The "output" return
10305// value will be populated with the request's response once the request completes
10306// successfully.
10307//
10308// Use "Send" method on the returned Request to send the API call to the service.
10309// the "output" return value is not valid until after Send returns without error.
10310//
10311// See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
10312// API call, and error handling.
10313//
10314// This method is useful when you want to inject custom logic or configuration
10315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10316//
10317//
10318//    // Example sending a request using the GetTopicRuleDestinationRequest method.
10319//    req, resp := client.GetTopicRuleDestinationRequest(params)
10320//
10321//    err := req.Send()
10322//    if err == nil { // resp is now filled
10323//        fmt.Println(resp)
10324//    }
10325func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
10326	op := &request.Operation{
10327		Name:       opGetTopicRuleDestination,
10328		HTTPMethod: "GET",
10329		HTTPPath:   "/destinations/{arn+}",
10330	}
10331
10332	if input == nil {
10333		input = &GetTopicRuleDestinationInput{}
10334	}
10335
10336	output = &GetTopicRuleDestinationOutput{}
10337	req = c.newRequest(op, input, output)
10338	return
10339}
10340
10341// GetTopicRuleDestination API operation for AWS IoT.
10342//
10343// Gets information about a topic rule destination.
10344//
10345// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10346// with awserr.Error's Code and Message methods to get detailed information about
10347// the error.
10348//
10349// See the AWS API reference guide for AWS IoT's
10350// API operation GetTopicRuleDestination for usage and error information.
10351//
10352// Returned Error Types:
10353//   * InternalException
10354//   An unexpected error has occurred.
10355//
10356//   * InvalidRequestException
10357//   The request is not valid.
10358//
10359//   * ServiceUnavailableException
10360//   The service is temporarily unavailable.
10361//
10362//   * UnauthorizedException
10363//   You are not authorized to perform this operation.
10364//
10365func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
10366	req, out := c.GetTopicRuleDestinationRequest(input)
10367	return out, req.Send()
10368}
10369
10370// GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
10371// the ability to pass a context and additional request options.
10372//
10373// See GetTopicRuleDestination for details on how to use this API operation.
10374//
10375// The context must be non-nil and will be used for request cancellation. If
10376// the context is nil a panic will occur. In the future the SDK may create
10377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10378// for more information on using Contexts.
10379func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
10380	req, out := c.GetTopicRuleDestinationRequest(input)
10381	req.SetContext(ctx)
10382	req.ApplyOptions(opts...)
10383	return out, req.Send()
10384}
10385
10386const opGetV2LoggingOptions = "GetV2LoggingOptions"
10387
10388// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
10389// client's request for the GetV2LoggingOptions operation. The "output" return
10390// value will be populated with the request's response once the request completes
10391// successfully.
10392//
10393// Use "Send" method on the returned Request to send the API call to the service.
10394// the "output" return value is not valid until after Send returns without error.
10395//
10396// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
10397// API call, and error handling.
10398//
10399// This method is useful when you want to inject custom logic or configuration
10400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10401//
10402//
10403//    // Example sending a request using the GetV2LoggingOptionsRequest method.
10404//    req, resp := client.GetV2LoggingOptionsRequest(params)
10405//
10406//    err := req.Send()
10407//    if err == nil { // resp is now filled
10408//        fmt.Println(resp)
10409//    }
10410func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
10411	op := &request.Operation{
10412		Name:       opGetV2LoggingOptions,
10413		HTTPMethod: "GET",
10414		HTTPPath:   "/v2LoggingOptions",
10415	}
10416
10417	if input == nil {
10418		input = &GetV2LoggingOptionsInput{}
10419	}
10420
10421	output = &GetV2LoggingOptionsOutput{}
10422	req = c.newRequest(op, input, output)
10423	return
10424}
10425
10426// GetV2LoggingOptions API operation for AWS IoT.
10427//
10428// Gets the fine grained logging options.
10429//
10430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10431// with awserr.Error's Code and Message methods to get detailed information about
10432// the error.
10433//
10434// See the AWS API reference guide for AWS IoT's
10435// API operation GetV2LoggingOptions for usage and error information.
10436//
10437// Returned Error Types:
10438//   * InternalException
10439//   An unexpected error has occurred.
10440//
10441//   * NotConfiguredException
10442//   The resource is not configured.
10443//
10444//   * ServiceUnavailableException
10445//   The service is temporarily unavailable.
10446//
10447func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
10448	req, out := c.GetV2LoggingOptionsRequest(input)
10449	return out, req.Send()
10450}
10451
10452// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
10453// the ability to pass a context and additional request options.
10454//
10455// See GetV2LoggingOptions for details on how to use this API operation.
10456//
10457// The context must be non-nil and will be used for request cancellation. If
10458// the context is nil a panic will occur. In the future the SDK may create
10459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10460// for more information on using Contexts.
10461func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
10462	req, out := c.GetV2LoggingOptionsRequest(input)
10463	req.SetContext(ctx)
10464	req.ApplyOptions(opts...)
10465	return out, req.Send()
10466}
10467
10468const opListActiveViolations = "ListActiveViolations"
10469
10470// ListActiveViolationsRequest generates a "aws/request.Request" representing the
10471// client's request for the ListActiveViolations operation. The "output" return
10472// value will be populated with the request's response once the request completes
10473// successfully.
10474//
10475// Use "Send" method on the returned Request to send the API call to the service.
10476// the "output" return value is not valid until after Send returns without error.
10477//
10478// See ListActiveViolations for more information on using the ListActiveViolations
10479// API call, and error handling.
10480//
10481// This method is useful when you want to inject custom logic or configuration
10482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10483//
10484//
10485//    // Example sending a request using the ListActiveViolationsRequest method.
10486//    req, resp := client.ListActiveViolationsRequest(params)
10487//
10488//    err := req.Send()
10489//    if err == nil { // resp is now filled
10490//        fmt.Println(resp)
10491//    }
10492func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
10493	op := &request.Operation{
10494		Name:       opListActiveViolations,
10495		HTTPMethod: "GET",
10496		HTTPPath:   "/active-violations",
10497	}
10498
10499	if input == nil {
10500		input = &ListActiveViolationsInput{}
10501	}
10502
10503	output = &ListActiveViolationsOutput{}
10504	req = c.newRequest(op, input, output)
10505	return
10506}
10507
10508// ListActiveViolations API operation for AWS IoT.
10509//
10510// Lists the active violations for a given Device Defender security profile.
10511//
10512// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10513// with awserr.Error's Code and Message methods to get detailed information about
10514// the error.
10515//
10516// See the AWS API reference guide for AWS IoT's
10517// API operation ListActiveViolations for usage and error information.
10518//
10519// Returned Error Types:
10520//   * InvalidRequestException
10521//   The request is not valid.
10522//
10523//   * ResourceNotFoundException
10524//   The specified resource does not exist.
10525//
10526//   * ThrottlingException
10527//   The rate exceeds the limit.
10528//
10529//   * InternalFailureException
10530//   An unexpected error has occurred.
10531//
10532func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
10533	req, out := c.ListActiveViolationsRequest(input)
10534	return out, req.Send()
10535}
10536
10537// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
10538// the ability to pass a context and additional request options.
10539//
10540// See ListActiveViolations for details on how to use this API operation.
10541//
10542// The context must be non-nil and will be used for request cancellation. If
10543// the context is nil a panic will occur. In the future the SDK may create
10544// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10545// for more information on using Contexts.
10546func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
10547	req, out := c.ListActiveViolationsRequest(input)
10548	req.SetContext(ctx)
10549	req.ApplyOptions(opts...)
10550	return out, req.Send()
10551}
10552
10553const opListAttachedPolicies = "ListAttachedPolicies"
10554
10555// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
10556// client's request for the ListAttachedPolicies operation. The "output" return
10557// value will be populated with the request's response once the request completes
10558// successfully.
10559//
10560// Use "Send" method on the returned Request to send the API call to the service.
10561// the "output" return value is not valid until after Send returns without error.
10562//
10563// See ListAttachedPolicies for more information on using the ListAttachedPolicies
10564// API call, and error handling.
10565//
10566// This method is useful when you want to inject custom logic or configuration
10567// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10568//
10569//
10570//    // Example sending a request using the ListAttachedPoliciesRequest method.
10571//    req, resp := client.ListAttachedPoliciesRequest(params)
10572//
10573//    err := req.Send()
10574//    if err == nil { // resp is now filled
10575//        fmt.Println(resp)
10576//    }
10577func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
10578	op := &request.Operation{
10579		Name:       opListAttachedPolicies,
10580		HTTPMethod: "POST",
10581		HTTPPath:   "/attached-policies/{target}",
10582	}
10583
10584	if input == nil {
10585		input = &ListAttachedPoliciesInput{}
10586	}
10587
10588	output = &ListAttachedPoliciesOutput{}
10589	req = c.newRequest(op, input, output)
10590	return
10591}
10592
10593// ListAttachedPolicies API operation for AWS IoT.
10594//
10595// Lists the policies attached to the specified thing group.
10596//
10597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10598// with awserr.Error's Code and Message methods to get detailed information about
10599// the error.
10600//
10601// See the AWS API reference guide for AWS IoT's
10602// API operation ListAttachedPolicies for usage and error information.
10603//
10604// Returned Error Types:
10605//   * ResourceNotFoundException
10606//   The specified resource does not exist.
10607//
10608//   * InvalidRequestException
10609//   The request is not valid.
10610//
10611//   * ThrottlingException
10612//   The rate exceeds the limit.
10613//
10614//   * UnauthorizedException
10615//   You are not authorized to perform this operation.
10616//
10617//   * ServiceUnavailableException
10618//   The service is temporarily unavailable.
10619//
10620//   * InternalFailureException
10621//   An unexpected error has occurred.
10622//
10623//   * LimitExceededException
10624//   A limit has been exceeded.
10625//
10626func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
10627	req, out := c.ListAttachedPoliciesRequest(input)
10628	return out, req.Send()
10629}
10630
10631// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
10632// the ability to pass a context and additional request options.
10633//
10634// See ListAttachedPolicies for details on how to use this API operation.
10635//
10636// The context must be non-nil and will be used for request cancellation. If
10637// the context is nil a panic will occur. In the future the SDK may create
10638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10639// for more information on using Contexts.
10640func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
10641	req, out := c.ListAttachedPoliciesRequest(input)
10642	req.SetContext(ctx)
10643	req.ApplyOptions(opts...)
10644	return out, req.Send()
10645}
10646
10647const opListAuditFindings = "ListAuditFindings"
10648
10649// ListAuditFindingsRequest generates a "aws/request.Request" representing the
10650// client's request for the ListAuditFindings operation. The "output" return
10651// value will be populated with the request's response once the request completes
10652// successfully.
10653//
10654// Use "Send" method on the returned Request to send the API call to the service.
10655// the "output" return value is not valid until after Send returns without error.
10656//
10657// See ListAuditFindings for more information on using the ListAuditFindings
10658// API call, and error handling.
10659//
10660// This method is useful when you want to inject custom logic or configuration
10661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10662//
10663//
10664//    // Example sending a request using the ListAuditFindingsRequest method.
10665//    req, resp := client.ListAuditFindingsRequest(params)
10666//
10667//    err := req.Send()
10668//    if err == nil { // resp is now filled
10669//        fmt.Println(resp)
10670//    }
10671func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
10672	op := &request.Operation{
10673		Name:       opListAuditFindings,
10674		HTTPMethod: "POST",
10675		HTTPPath:   "/audit/findings",
10676	}
10677
10678	if input == nil {
10679		input = &ListAuditFindingsInput{}
10680	}
10681
10682	output = &ListAuditFindingsOutput{}
10683	req = c.newRequest(op, input, output)
10684	return
10685}
10686
10687// ListAuditFindings API operation for AWS IoT.
10688//
10689// Lists the findings (results) of a Device Defender audit or of the audits
10690// performed during a specified time period. (Findings are retained for 180
10691// days.)
10692//
10693// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10694// with awserr.Error's Code and Message methods to get detailed information about
10695// the error.
10696//
10697// See the AWS API reference guide for AWS IoT's
10698// API operation ListAuditFindings for usage and error information.
10699//
10700// Returned Error Types:
10701//   * InvalidRequestException
10702//   The request is not valid.
10703//
10704//   * ThrottlingException
10705//   The rate exceeds the limit.
10706//
10707//   * InternalFailureException
10708//   An unexpected error has occurred.
10709//
10710func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
10711	req, out := c.ListAuditFindingsRequest(input)
10712	return out, req.Send()
10713}
10714
10715// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
10716// the ability to pass a context and additional request options.
10717//
10718// See ListAuditFindings for details on how to use this API operation.
10719//
10720// The context must be non-nil and will be used for request cancellation. If
10721// the context is nil a panic will occur. In the future the SDK may create
10722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10723// for more information on using Contexts.
10724func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
10725	req, out := c.ListAuditFindingsRequest(input)
10726	req.SetContext(ctx)
10727	req.ApplyOptions(opts...)
10728	return out, req.Send()
10729}
10730
10731const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
10732
10733// ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
10734// client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
10735// value will be populated with the request's response once the request completes
10736// successfully.
10737//
10738// Use "Send" method on the returned Request to send the API call to the service.
10739// the "output" return value is not valid until after Send returns without error.
10740//
10741// See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
10742// API call, and error handling.
10743//
10744// This method is useful when you want to inject custom logic or configuration
10745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10746//
10747//
10748//    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
10749//    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
10750//
10751//    err := req.Send()
10752//    if err == nil { // resp is now filled
10753//        fmt.Println(resp)
10754//    }
10755func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
10756	op := &request.Operation{
10757		Name:       opListAuditMitigationActionsExecutions,
10758		HTTPMethod: "GET",
10759		HTTPPath:   "/audit/mitigationactions/executions",
10760	}
10761
10762	if input == nil {
10763		input = &ListAuditMitigationActionsExecutionsInput{}
10764	}
10765
10766	output = &ListAuditMitigationActionsExecutionsOutput{}
10767	req = c.newRequest(op, input, output)
10768	return
10769}
10770
10771// ListAuditMitigationActionsExecutions API operation for AWS IoT.
10772//
10773// Gets the status of audit mitigation action tasks that were executed.
10774//
10775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10776// with awserr.Error's Code and Message methods to get detailed information about
10777// the error.
10778//
10779// See the AWS API reference guide for AWS IoT's
10780// API operation ListAuditMitigationActionsExecutions for usage and error information.
10781//
10782// Returned Error Types:
10783//   * InvalidRequestException
10784//   The request is not valid.
10785//
10786//   * ThrottlingException
10787//   The rate exceeds the limit.
10788//
10789//   * InternalFailureException
10790//   An unexpected error has occurred.
10791//
10792func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
10793	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
10794	return out, req.Send()
10795}
10796
10797// ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
10798// the ability to pass a context and additional request options.
10799//
10800// See ListAuditMitigationActionsExecutions for details on how to use this API operation.
10801//
10802// The context must be non-nil and will be used for request cancellation. If
10803// the context is nil a panic will occur. In the future the SDK may create
10804// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10805// for more information on using Contexts.
10806func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
10807	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
10808	req.SetContext(ctx)
10809	req.ApplyOptions(opts...)
10810	return out, req.Send()
10811}
10812
10813const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
10814
10815// ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
10816// client's request for the ListAuditMitigationActionsTasks operation. The "output" return
10817// value will be populated with the request's response once the request completes
10818// successfully.
10819//
10820// Use "Send" method on the returned Request to send the API call to the service.
10821// the "output" return value is not valid until after Send returns without error.
10822//
10823// See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
10824// API call, and error handling.
10825//
10826// This method is useful when you want to inject custom logic or configuration
10827// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10828//
10829//
10830//    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
10831//    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
10832//
10833//    err := req.Send()
10834//    if err == nil { // resp is now filled
10835//        fmt.Println(resp)
10836//    }
10837func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
10838	op := &request.Operation{
10839		Name:       opListAuditMitigationActionsTasks,
10840		HTTPMethod: "GET",
10841		HTTPPath:   "/audit/mitigationactions/tasks",
10842	}
10843
10844	if input == nil {
10845		input = &ListAuditMitigationActionsTasksInput{}
10846	}
10847
10848	output = &ListAuditMitigationActionsTasksOutput{}
10849	req = c.newRequest(op, input, output)
10850	return
10851}
10852
10853// ListAuditMitigationActionsTasks API operation for AWS IoT.
10854//
10855// Gets a list of audit mitigation action tasks that match the specified filters.
10856//
10857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10858// with awserr.Error's Code and Message methods to get detailed information about
10859// the error.
10860//
10861// See the AWS API reference guide for AWS IoT's
10862// API operation ListAuditMitigationActionsTasks for usage and error information.
10863//
10864// Returned Error Types:
10865//   * InvalidRequestException
10866//   The request is not valid.
10867//
10868//   * ThrottlingException
10869//   The rate exceeds the limit.
10870//
10871//   * InternalFailureException
10872//   An unexpected error has occurred.
10873//
10874func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
10875	req, out := c.ListAuditMitigationActionsTasksRequest(input)
10876	return out, req.Send()
10877}
10878
10879// ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
10880// the ability to pass a context and additional request options.
10881//
10882// See ListAuditMitigationActionsTasks for details on how to use this API operation.
10883//
10884// The context must be non-nil and will be used for request cancellation. If
10885// the context is nil a panic will occur. In the future the SDK may create
10886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10887// for more information on using Contexts.
10888func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
10889	req, out := c.ListAuditMitigationActionsTasksRequest(input)
10890	req.SetContext(ctx)
10891	req.ApplyOptions(opts...)
10892	return out, req.Send()
10893}
10894
10895const opListAuditTasks = "ListAuditTasks"
10896
10897// ListAuditTasksRequest generates a "aws/request.Request" representing the
10898// client's request for the ListAuditTasks operation. The "output" return
10899// value will be populated with the request's response once the request completes
10900// successfully.
10901//
10902// Use "Send" method on the returned Request to send the API call to the service.
10903// the "output" return value is not valid until after Send returns without error.
10904//
10905// See ListAuditTasks for more information on using the ListAuditTasks
10906// API call, and error handling.
10907//
10908// This method is useful when you want to inject custom logic or configuration
10909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10910//
10911//
10912//    // Example sending a request using the ListAuditTasksRequest method.
10913//    req, resp := client.ListAuditTasksRequest(params)
10914//
10915//    err := req.Send()
10916//    if err == nil { // resp is now filled
10917//        fmt.Println(resp)
10918//    }
10919func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
10920	op := &request.Operation{
10921		Name:       opListAuditTasks,
10922		HTTPMethod: "GET",
10923		HTTPPath:   "/audit/tasks",
10924	}
10925
10926	if input == nil {
10927		input = &ListAuditTasksInput{}
10928	}
10929
10930	output = &ListAuditTasksOutput{}
10931	req = c.newRequest(op, input, output)
10932	return
10933}
10934
10935// ListAuditTasks API operation for AWS IoT.
10936//
10937// Lists the Device Defender audits that have been performed during a given
10938// time period.
10939//
10940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10941// with awserr.Error's Code and Message methods to get detailed information about
10942// the error.
10943//
10944// See the AWS API reference guide for AWS IoT's
10945// API operation ListAuditTasks for usage and error information.
10946//
10947// Returned Error Types:
10948//   * InvalidRequestException
10949//   The request is not valid.
10950//
10951//   * ThrottlingException
10952//   The rate exceeds the limit.
10953//
10954//   * InternalFailureException
10955//   An unexpected error has occurred.
10956//
10957func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
10958	req, out := c.ListAuditTasksRequest(input)
10959	return out, req.Send()
10960}
10961
10962// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
10963// the ability to pass a context and additional request options.
10964//
10965// See ListAuditTasks for details on how to use this API operation.
10966//
10967// The context must be non-nil and will be used for request cancellation. If
10968// the context is nil a panic will occur. In the future the SDK may create
10969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10970// for more information on using Contexts.
10971func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
10972	req, out := c.ListAuditTasksRequest(input)
10973	req.SetContext(ctx)
10974	req.ApplyOptions(opts...)
10975	return out, req.Send()
10976}
10977
10978const opListAuthorizers = "ListAuthorizers"
10979
10980// ListAuthorizersRequest generates a "aws/request.Request" representing the
10981// client's request for the ListAuthorizers operation. The "output" return
10982// value will be populated with the request's response once the request completes
10983// successfully.
10984//
10985// Use "Send" method on the returned Request to send the API call to the service.
10986// the "output" return value is not valid until after Send returns without error.
10987//
10988// See ListAuthorizers for more information on using the ListAuthorizers
10989// API call, and error handling.
10990//
10991// This method is useful when you want to inject custom logic or configuration
10992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10993//
10994//
10995//    // Example sending a request using the ListAuthorizersRequest method.
10996//    req, resp := client.ListAuthorizersRequest(params)
10997//
10998//    err := req.Send()
10999//    if err == nil { // resp is now filled
11000//        fmt.Println(resp)
11001//    }
11002func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
11003	op := &request.Operation{
11004		Name:       opListAuthorizers,
11005		HTTPMethod: "GET",
11006		HTTPPath:   "/authorizers/",
11007	}
11008
11009	if input == nil {
11010		input = &ListAuthorizersInput{}
11011	}
11012
11013	output = &ListAuthorizersOutput{}
11014	req = c.newRequest(op, input, output)
11015	return
11016}
11017
11018// ListAuthorizers API operation for AWS IoT.
11019//
11020// Lists the authorizers registered in your account.
11021//
11022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11023// with awserr.Error's Code and Message methods to get detailed information about
11024// the error.
11025//
11026// See the AWS API reference guide for AWS IoT's
11027// API operation ListAuthorizers for usage and error information.
11028//
11029// Returned Error Types:
11030//   * InvalidRequestException
11031//   The request is not valid.
11032//
11033//   * ThrottlingException
11034//   The rate exceeds the limit.
11035//
11036//   * UnauthorizedException
11037//   You are not authorized to perform this operation.
11038//
11039//   * ServiceUnavailableException
11040//   The service is temporarily unavailable.
11041//
11042//   * InternalFailureException
11043//   An unexpected error has occurred.
11044//
11045func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
11046	req, out := c.ListAuthorizersRequest(input)
11047	return out, req.Send()
11048}
11049
11050// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
11051// the ability to pass a context and additional request options.
11052//
11053// See ListAuthorizers for details on how to use this API operation.
11054//
11055// The context must be non-nil and will be used for request cancellation. If
11056// the context is nil a panic will occur. In the future the SDK may create
11057// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11058// for more information on using Contexts.
11059func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
11060	req, out := c.ListAuthorizersRequest(input)
11061	req.SetContext(ctx)
11062	req.ApplyOptions(opts...)
11063	return out, req.Send()
11064}
11065
11066const opListBillingGroups = "ListBillingGroups"
11067
11068// ListBillingGroupsRequest generates a "aws/request.Request" representing the
11069// client's request for the ListBillingGroups operation. The "output" return
11070// value will be populated with the request's response once the request completes
11071// successfully.
11072//
11073// Use "Send" method on the returned Request to send the API call to the service.
11074// the "output" return value is not valid until after Send returns without error.
11075//
11076// See ListBillingGroups for more information on using the ListBillingGroups
11077// API call, and error handling.
11078//
11079// This method is useful when you want to inject custom logic or configuration
11080// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11081//
11082//
11083//    // Example sending a request using the ListBillingGroupsRequest method.
11084//    req, resp := client.ListBillingGroupsRequest(params)
11085//
11086//    err := req.Send()
11087//    if err == nil { // resp is now filled
11088//        fmt.Println(resp)
11089//    }
11090func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
11091	op := &request.Operation{
11092		Name:       opListBillingGroups,
11093		HTTPMethod: "GET",
11094		HTTPPath:   "/billing-groups",
11095	}
11096
11097	if input == nil {
11098		input = &ListBillingGroupsInput{}
11099	}
11100
11101	output = &ListBillingGroupsOutput{}
11102	req = c.newRequest(op, input, output)
11103	return
11104}
11105
11106// ListBillingGroups API operation for AWS IoT.
11107//
11108// Lists the billing groups you have created.
11109//
11110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11111// with awserr.Error's Code and Message methods to get detailed information about
11112// the error.
11113//
11114// See the AWS API reference guide for AWS IoT's
11115// API operation ListBillingGroups for usage and error information.
11116//
11117// Returned Error Types:
11118//   * InvalidRequestException
11119//   The request is not valid.
11120//
11121//   * InternalFailureException
11122//   An unexpected error has occurred.
11123//
11124//   * ResourceNotFoundException
11125//   The specified resource does not exist.
11126//
11127//   * ThrottlingException
11128//   The rate exceeds the limit.
11129//
11130func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
11131	req, out := c.ListBillingGroupsRequest(input)
11132	return out, req.Send()
11133}
11134
11135// ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
11136// the ability to pass a context and additional request options.
11137//
11138// See ListBillingGroups for details on how to use this API operation.
11139//
11140// The context must be non-nil and will be used for request cancellation. If
11141// the context is nil a panic will occur. In the future the SDK may create
11142// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11143// for more information on using Contexts.
11144func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
11145	req, out := c.ListBillingGroupsRequest(input)
11146	req.SetContext(ctx)
11147	req.ApplyOptions(opts...)
11148	return out, req.Send()
11149}
11150
11151const opListCACertificates = "ListCACertificates"
11152
11153// ListCACertificatesRequest generates a "aws/request.Request" representing the
11154// client's request for the ListCACertificates operation. The "output" return
11155// value will be populated with the request's response once the request completes
11156// successfully.
11157//
11158// Use "Send" method on the returned Request to send the API call to the service.
11159// the "output" return value is not valid until after Send returns without error.
11160//
11161// See ListCACertificates for more information on using the ListCACertificates
11162// API call, and error handling.
11163//
11164// This method is useful when you want to inject custom logic or configuration
11165// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11166//
11167//
11168//    // Example sending a request using the ListCACertificatesRequest method.
11169//    req, resp := client.ListCACertificatesRequest(params)
11170//
11171//    err := req.Send()
11172//    if err == nil { // resp is now filled
11173//        fmt.Println(resp)
11174//    }
11175func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
11176	op := &request.Operation{
11177		Name:       opListCACertificates,
11178		HTTPMethod: "GET",
11179		HTTPPath:   "/cacertificates",
11180	}
11181
11182	if input == nil {
11183		input = &ListCACertificatesInput{}
11184	}
11185
11186	output = &ListCACertificatesOutput{}
11187	req = c.newRequest(op, input, output)
11188	return
11189}
11190
11191// ListCACertificates API operation for AWS IoT.
11192//
11193// Lists the CA certificates registered for your AWS account.
11194//
11195// The results are paginated with a default page size of 25. You can use the
11196// returned marker to retrieve additional results.
11197//
11198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11199// with awserr.Error's Code and Message methods to get detailed information about
11200// the error.
11201//
11202// See the AWS API reference guide for AWS IoT's
11203// API operation ListCACertificates for usage and error information.
11204//
11205// Returned Error Types:
11206//   * InvalidRequestException
11207//   The request is not valid.
11208//
11209//   * ThrottlingException
11210//   The rate exceeds the limit.
11211//
11212//   * UnauthorizedException
11213//   You are not authorized to perform this operation.
11214//
11215//   * ServiceUnavailableException
11216//   The service is temporarily unavailable.
11217//
11218//   * InternalFailureException
11219//   An unexpected error has occurred.
11220//
11221func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
11222	req, out := c.ListCACertificatesRequest(input)
11223	return out, req.Send()
11224}
11225
11226// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
11227// the ability to pass a context and additional request options.
11228//
11229// See ListCACertificates for details on how to use this API operation.
11230//
11231// The context must be non-nil and will be used for request cancellation. If
11232// the context is nil a panic will occur. In the future the SDK may create
11233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11234// for more information on using Contexts.
11235func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
11236	req, out := c.ListCACertificatesRequest(input)
11237	req.SetContext(ctx)
11238	req.ApplyOptions(opts...)
11239	return out, req.Send()
11240}
11241
11242const opListCertificates = "ListCertificates"
11243
11244// ListCertificatesRequest generates a "aws/request.Request" representing the
11245// client's request for the ListCertificates operation. The "output" return
11246// value will be populated with the request's response once the request completes
11247// successfully.
11248//
11249// Use "Send" method on the returned Request to send the API call to the service.
11250// the "output" return value is not valid until after Send returns without error.
11251//
11252// See ListCertificates for more information on using the ListCertificates
11253// API call, and error handling.
11254//
11255// This method is useful when you want to inject custom logic or configuration
11256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11257//
11258//
11259//    // Example sending a request using the ListCertificatesRequest method.
11260//    req, resp := client.ListCertificatesRequest(params)
11261//
11262//    err := req.Send()
11263//    if err == nil { // resp is now filled
11264//        fmt.Println(resp)
11265//    }
11266func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
11267	op := &request.Operation{
11268		Name:       opListCertificates,
11269		HTTPMethod: "GET",
11270		HTTPPath:   "/certificates",
11271	}
11272
11273	if input == nil {
11274		input = &ListCertificatesInput{}
11275	}
11276
11277	output = &ListCertificatesOutput{}
11278	req = c.newRequest(op, input, output)
11279	return
11280}
11281
11282// ListCertificates API operation for AWS IoT.
11283//
11284// Lists the certificates registered in your AWS account.
11285//
11286// The results are paginated with a default page size of 25. You can use the
11287// returned marker to retrieve additional results.
11288//
11289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11290// with awserr.Error's Code and Message methods to get detailed information about
11291// the error.
11292//
11293// See the AWS API reference guide for AWS IoT's
11294// API operation ListCertificates for usage and error information.
11295//
11296// Returned Error Types:
11297//   * InvalidRequestException
11298//   The request is not valid.
11299//
11300//   * ThrottlingException
11301//   The rate exceeds the limit.
11302//
11303//   * UnauthorizedException
11304//   You are not authorized to perform this operation.
11305//
11306//   * ServiceUnavailableException
11307//   The service is temporarily unavailable.
11308//
11309//   * InternalFailureException
11310//   An unexpected error has occurred.
11311//
11312func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
11313	req, out := c.ListCertificatesRequest(input)
11314	return out, req.Send()
11315}
11316
11317// ListCertificatesWithContext is the same as ListCertificates with the addition of
11318// the ability to pass a context and additional request options.
11319//
11320// See ListCertificates for details on how to use this API operation.
11321//
11322// The context must be non-nil and will be used for request cancellation. If
11323// the context is nil a panic will occur. In the future the SDK may create
11324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11325// for more information on using Contexts.
11326func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
11327	req, out := c.ListCertificatesRequest(input)
11328	req.SetContext(ctx)
11329	req.ApplyOptions(opts...)
11330	return out, req.Send()
11331}
11332
11333const opListCertificatesByCA = "ListCertificatesByCA"
11334
11335// ListCertificatesByCARequest generates a "aws/request.Request" representing the
11336// client's request for the ListCertificatesByCA operation. The "output" return
11337// value will be populated with the request's response once the request completes
11338// successfully.
11339//
11340// Use "Send" method on the returned Request to send the API call to the service.
11341// the "output" return value is not valid until after Send returns without error.
11342//
11343// See ListCertificatesByCA for more information on using the ListCertificatesByCA
11344// API call, and error handling.
11345//
11346// This method is useful when you want to inject custom logic or configuration
11347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11348//
11349//
11350//    // Example sending a request using the ListCertificatesByCARequest method.
11351//    req, resp := client.ListCertificatesByCARequest(params)
11352//
11353//    err := req.Send()
11354//    if err == nil { // resp is now filled
11355//        fmt.Println(resp)
11356//    }
11357func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
11358	op := &request.Operation{
11359		Name:       opListCertificatesByCA,
11360		HTTPMethod: "GET",
11361		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
11362	}
11363
11364	if input == nil {
11365		input = &ListCertificatesByCAInput{}
11366	}
11367
11368	output = &ListCertificatesByCAOutput{}
11369	req = c.newRequest(op, input, output)
11370	return
11371}
11372
11373// ListCertificatesByCA API operation for AWS IoT.
11374//
11375// List the device certificates signed by the specified CA certificate.
11376//
11377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11378// with awserr.Error's Code and Message methods to get detailed information about
11379// the error.
11380//
11381// See the AWS API reference guide for AWS IoT's
11382// API operation ListCertificatesByCA for usage and error information.
11383//
11384// Returned Error Types:
11385//   * InvalidRequestException
11386//   The request is not valid.
11387//
11388//   * ThrottlingException
11389//   The rate exceeds the limit.
11390//
11391//   * UnauthorizedException
11392//   You are not authorized to perform this operation.
11393//
11394//   * ServiceUnavailableException
11395//   The service is temporarily unavailable.
11396//
11397//   * InternalFailureException
11398//   An unexpected error has occurred.
11399//
11400func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
11401	req, out := c.ListCertificatesByCARequest(input)
11402	return out, req.Send()
11403}
11404
11405// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
11406// the ability to pass a context and additional request options.
11407//
11408// See ListCertificatesByCA for details on how to use this API operation.
11409//
11410// The context must be non-nil and will be used for request cancellation. If
11411// the context is nil a panic will occur. In the future the SDK may create
11412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11413// for more information on using Contexts.
11414func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
11415	req, out := c.ListCertificatesByCARequest(input)
11416	req.SetContext(ctx)
11417	req.ApplyOptions(opts...)
11418	return out, req.Send()
11419}
11420
11421const opListDimensions = "ListDimensions"
11422
11423// ListDimensionsRequest generates a "aws/request.Request" representing the
11424// client's request for the ListDimensions operation. The "output" return
11425// value will be populated with the request's response once the request completes
11426// successfully.
11427//
11428// Use "Send" method on the returned Request to send the API call to the service.
11429// the "output" return value is not valid until after Send returns without error.
11430//
11431// See ListDimensions for more information on using the ListDimensions
11432// API call, and error handling.
11433//
11434// This method is useful when you want to inject custom logic or configuration
11435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11436//
11437//
11438//    // Example sending a request using the ListDimensionsRequest method.
11439//    req, resp := client.ListDimensionsRequest(params)
11440//
11441//    err := req.Send()
11442//    if err == nil { // resp is now filled
11443//        fmt.Println(resp)
11444//    }
11445func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
11446	op := &request.Operation{
11447		Name:       opListDimensions,
11448		HTTPMethod: "GET",
11449		HTTPPath:   "/dimensions",
11450	}
11451
11452	if input == nil {
11453		input = &ListDimensionsInput{}
11454	}
11455
11456	output = &ListDimensionsOutput{}
11457	req = c.newRequest(op, input, output)
11458	return
11459}
11460
11461// ListDimensions API operation for AWS IoT.
11462//
11463// List the set of dimensions that are defined for your AWS account.
11464//
11465// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11466// with awserr.Error's Code and Message methods to get detailed information about
11467// the error.
11468//
11469// See the AWS API reference guide for AWS IoT's
11470// API operation ListDimensions for usage and error information.
11471//
11472// Returned Error Types:
11473//   * InternalFailureException
11474//   An unexpected error has occurred.
11475//
11476//   * InvalidRequestException
11477//   The request is not valid.
11478//
11479//   * ThrottlingException
11480//   The rate exceeds the limit.
11481//
11482func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
11483	req, out := c.ListDimensionsRequest(input)
11484	return out, req.Send()
11485}
11486
11487// ListDimensionsWithContext is the same as ListDimensions with the addition of
11488// the ability to pass a context and additional request options.
11489//
11490// See ListDimensions for details on how to use this API operation.
11491//
11492// The context must be non-nil and will be used for request cancellation. If
11493// the context is nil a panic will occur. In the future the SDK may create
11494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11495// for more information on using Contexts.
11496func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
11497	req, out := c.ListDimensionsRequest(input)
11498	req.SetContext(ctx)
11499	req.ApplyOptions(opts...)
11500	return out, req.Send()
11501}
11502
11503const opListDomainConfigurations = "ListDomainConfigurations"
11504
11505// ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
11506// client's request for the ListDomainConfigurations operation. The "output" return
11507// value will be populated with the request's response once the request completes
11508// successfully.
11509//
11510// Use "Send" method on the returned Request to send the API call to the service.
11511// the "output" return value is not valid until after Send returns without error.
11512//
11513// See ListDomainConfigurations for more information on using the ListDomainConfigurations
11514// API call, and error handling.
11515//
11516// This method is useful when you want to inject custom logic or configuration
11517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11518//
11519//
11520//    // Example sending a request using the ListDomainConfigurationsRequest method.
11521//    req, resp := client.ListDomainConfigurationsRequest(params)
11522//
11523//    err := req.Send()
11524//    if err == nil { // resp is now filled
11525//        fmt.Println(resp)
11526//    }
11527func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
11528	op := &request.Operation{
11529		Name:       opListDomainConfigurations,
11530		HTTPMethod: "GET",
11531		HTTPPath:   "/domainConfigurations",
11532	}
11533
11534	if input == nil {
11535		input = &ListDomainConfigurationsInput{}
11536	}
11537
11538	output = &ListDomainConfigurationsOutput{}
11539	req = c.newRequest(op, input, output)
11540	return
11541}
11542
11543// ListDomainConfigurations API operation for AWS IoT.
11544//
11545// Gets a list of domain configurations for the user. This list is sorted alphabetically
11546// by domain configuration name.
11547//
11548// The domain configuration feature is in public preview and is subject to change.
11549//
11550// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11551// with awserr.Error's Code and Message methods to get detailed information about
11552// the error.
11553//
11554// See the AWS API reference guide for AWS IoT's
11555// API operation ListDomainConfigurations for usage and error information.
11556//
11557// Returned Error Types:
11558//   * InvalidRequestException
11559//   The request is not valid.
11560//
11561//   * ThrottlingException
11562//   The rate exceeds the limit.
11563//
11564//   * UnauthorizedException
11565//   You are not authorized to perform this operation.
11566//
11567//   * ServiceUnavailableException
11568//   The service is temporarily unavailable.
11569//
11570//   * InternalFailureException
11571//   An unexpected error has occurred.
11572//
11573func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
11574	req, out := c.ListDomainConfigurationsRequest(input)
11575	return out, req.Send()
11576}
11577
11578// ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
11579// the ability to pass a context and additional request options.
11580//
11581// See ListDomainConfigurations for details on how to use this API operation.
11582//
11583// The context must be non-nil and will be used for request cancellation. If
11584// the context is nil a panic will occur. In the future the SDK may create
11585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11586// for more information on using Contexts.
11587func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
11588	req, out := c.ListDomainConfigurationsRequest(input)
11589	req.SetContext(ctx)
11590	req.ApplyOptions(opts...)
11591	return out, req.Send()
11592}
11593
11594const opListIndices = "ListIndices"
11595
11596// ListIndicesRequest generates a "aws/request.Request" representing the
11597// client's request for the ListIndices operation. The "output" return
11598// value will be populated with the request's response once the request completes
11599// successfully.
11600//
11601// Use "Send" method on the returned Request to send the API call to the service.
11602// the "output" return value is not valid until after Send returns without error.
11603//
11604// See ListIndices for more information on using the ListIndices
11605// API call, and error handling.
11606//
11607// This method is useful when you want to inject custom logic or configuration
11608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11609//
11610//
11611//    // Example sending a request using the ListIndicesRequest method.
11612//    req, resp := client.ListIndicesRequest(params)
11613//
11614//    err := req.Send()
11615//    if err == nil { // resp is now filled
11616//        fmt.Println(resp)
11617//    }
11618func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
11619	op := &request.Operation{
11620		Name:       opListIndices,
11621		HTTPMethod: "GET",
11622		HTTPPath:   "/indices",
11623	}
11624
11625	if input == nil {
11626		input = &ListIndicesInput{}
11627	}
11628
11629	output = &ListIndicesOutput{}
11630	req = c.newRequest(op, input, output)
11631	return
11632}
11633
11634// ListIndices API operation for AWS IoT.
11635//
11636// Lists the search indices.
11637//
11638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11639// with awserr.Error's Code and Message methods to get detailed information about
11640// the error.
11641//
11642// See the AWS API reference guide for AWS IoT's
11643// API operation ListIndices for usage and error information.
11644//
11645// Returned Error Types:
11646//   * InvalidRequestException
11647//   The request is not valid.
11648//
11649//   * ThrottlingException
11650//   The rate exceeds the limit.
11651//
11652//   * UnauthorizedException
11653//   You are not authorized to perform this operation.
11654//
11655//   * ServiceUnavailableException
11656//   The service is temporarily unavailable.
11657//
11658//   * InternalFailureException
11659//   An unexpected error has occurred.
11660//
11661func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
11662	req, out := c.ListIndicesRequest(input)
11663	return out, req.Send()
11664}
11665
11666// ListIndicesWithContext is the same as ListIndices with the addition of
11667// the ability to pass a context and additional request options.
11668//
11669// See ListIndices for details on how to use this API operation.
11670//
11671// The context must be non-nil and will be used for request cancellation. If
11672// the context is nil a panic will occur. In the future the SDK may create
11673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11674// for more information on using Contexts.
11675func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
11676	req, out := c.ListIndicesRequest(input)
11677	req.SetContext(ctx)
11678	req.ApplyOptions(opts...)
11679	return out, req.Send()
11680}
11681
11682const opListJobExecutionsForJob = "ListJobExecutionsForJob"
11683
11684// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
11685// client's request for the ListJobExecutionsForJob operation. The "output" return
11686// value will be populated with the request's response once the request completes
11687// successfully.
11688//
11689// Use "Send" method on the returned Request to send the API call to the service.
11690// the "output" return value is not valid until after Send returns without error.
11691//
11692// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
11693// API call, and error handling.
11694//
11695// This method is useful when you want to inject custom logic or configuration
11696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11697//
11698//
11699//    // Example sending a request using the ListJobExecutionsForJobRequest method.
11700//    req, resp := client.ListJobExecutionsForJobRequest(params)
11701//
11702//    err := req.Send()
11703//    if err == nil { // resp is now filled
11704//        fmt.Println(resp)
11705//    }
11706func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
11707	op := &request.Operation{
11708		Name:       opListJobExecutionsForJob,
11709		HTTPMethod: "GET",
11710		HTTPPath:   "/jobs/{jobId}/things",
11711	}
11712
11713	if input == nil {
11714		input = &ListJobExecutionsForJobInput{}
11715	}
11716
11717	output = &ListJobExecutionsForJobOutput{}
11718	req = c.newRequest(op, input, output)
11719	return
11720}
11721
11722// ListJobExecutionsForJob API operation for AWS IoT.
11723//
11724// Lists the job executions for a job.
11725//
11726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11727// with awserr.Error's Code and Message methods to get detailed information about
11728// the error.
11729//
11730// See the AWS API reference guide for AWS IoT's
11731// API operation ListJobExecutionsForJob for usage and error information.
11732//
11733// Returned Error Types:
11734//   * InvalidRequestException
11735//   The request is not valid.
11736//
11737//   * ResourceNotFoundException
11738//   The specified resource does not exist.
11739//
11740//   * ThrottlingException
11741//   The rate exceeds the limit.
11742//
11743//   * ServiceUnavailableException
11744//   The service is temporarily unavailable.
11745//
11746func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
11747	req, out := c.ListJobExecutionsForJobRequest(input)
11748	return out, req.Send()
11749}
11750
11751// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
11752// the ability to pass a context and additional request options.
11753//
11754// See ListJobExecutionsForJob for details on how to use this API operation.
11755//
11756// The context must be non-nil and will be used for request cancellation. If
11757// the context is nil a panic will occur. In the future the SDK may create
11758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11759// for more information on using Contexts.
11760func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
11761	req, out := c.ListJobExecutionsForJobRequest(input)
11762	req.SetContext(ctx)
11763	req.ApplyOptions(opts...)
11764	return out, req.Send()
11765}
11766
11767const opListJobExecutionsForThing = "ListJobExecutionsForThing"
11768
11769// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
11770// client's request for the ListJobExecutionsForThing operation. The "output" return
11771// value will be populated with the request's response once the request completes
11772// successfully.
11773//
11774// Use "Send" method on the returned Request to send the API call to the service.
11775// the "output" return value is not valid until after Send returns without error.
11776//
11777// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
11778// API call, and error handling.
11779//
11780// This method is useful when you want to inject custom logic or configuration
11781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11782//
11783//
11784//    // Example sending a request using the ListJobExecutionsForThingRequest method.
11785//    req, resp := client.ListJobExecutionsForThingRequest(params)
11786//
11787//    err := req.Send()
11788//    if err == nil { // resp is now filled
11789//        fmt.Println(resp)
11790//    }
11791func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
11792	op := &request.Operation{
11793		Name:       opListJobExecutionsForThing,
11794		HTTPMethod: "GET",
11795		HTTPPath:   "/things/{thingName}/jobs",
11796	}
11797
11798	if input == nil {
11799		input = &ListJobExecutionsForThingInput{}
11800	}
11801
11802	output = &ListJobExecutionsForThingOutput{}
11803	req = c.newRequest(op, input, output)
11804	return
11805}
11806
11807// ListJobExecutionsForThing API operation for AWS IoT.
11808//
11809// Lists the job executions for the specified thing.
11810//
11811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11812// with awserr.Error's Code and Message methods to get detailed information about
11813// the error.
11814//
11815// See the AWS API reference guide for AWS IoT's
11816// API operation ListJobExecutionsForThing for usage and error information.
11817//
11818// Returned Error Types:
11819//   * InvalidRequestException
11820//   The request is not valid.
11821//
11822//   * ResourceNotFoundException
11823//   The specified resource does not exist.
11824//
11825//   * ThrottlingException
11826//   The rate exceeds the limit.
11827//
11828//   * ServiceUnavailableException
11829//   The service is temporarily unavailable.
11830//
11831func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
11832	req, out := c.ListJobExecutionsForThingRequest(input)
11833	return out, req.Send()
11834}
11835
11836// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
11837// the ability to pass a context and additional request options.
11838//
11839// See ListJobExecutionsForThing for details on how to use this API operation.
11840//
11841// The context must be non-nil and will be used for request cancellation. If
11842// the context is nil a panic will occur. In the future the SDK may create
11843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11844// for more information on using Contexts.
11845func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
11846	req, out := c.ListJobExecutionsForThingRequest(input)
11847	req.SetContext(ctx)
11848	req.ApplyOptions(opts...)
11849	return out, req.Send()
11850}
11851
11852const opListJobs = "ListJobs"
11853
11854// ListJobsRequest generates a "aws/request.Request" representing the
11855// client's request for the ListJobs operation. The "output" return
11856// value will be populated with the request's response once the request completes
11857// successfully.
11858//
11859// Use "Send" method on the returned Request to send the API call to the service.
11860// the "output" return value is not valid until after Send returns without error.
11861//
11862// See ListJobs for more information on using the ListJobs
11863// API call, and error handling.
11864//
11865// This method is useful when you want to inject custom logic or configuration
11866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11867//
11868//
11869//    // Example sending a request using the ListJobsRequest method.
11870//    req, resp := client.ListJobsRequest(params)
11871//
11872//    err := req.Send()
11873//    if err == nil { // resp is now filled
11874//        fmt.Println(resp)
11875//    }
11876func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
11877	op := &request.Operation{
11878		Name:       opListJobs,
11879		HTTPMethod: "GET",
11880		HTTPPath:   "/jobs",
11881	}
11882
11883	if input == nil {
11884		input = &ListJobsInput{}
11885	}
11886
11887	output = &ListJobsOutput{}
11888	req = c.newRequest(op, input, output)
11889	return
11890}
11891
11892// ListJobs API operation for AWS IoT.
11893//
11894// Lists jobs.
11895//
11896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11897// with awserr.Error's Code and Message methods to get detailed information about
11898// the error.
11899//
11900// See the AWS API reference guide for AWS IoT's
11901// API operation ListJobs for usage and error information.
11902//
11903// Returned Error Types:
11904//   * InvalidRequestException
11905//   The request is not valid.
11906//
11907//   * ResourceNotFoundException
11908//   The specified resource does not exist.
11909//
11910//   * ThrottlingException
11911//   The rate exceeds the limit.
11912//
11913//   * ServiceUnavailableException
11914//   The service is temporarily unavailable.
11915//
11916func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
11917	req, out := c.ListJobsRequest(input)
11918	return out, req.Send()
11919}
11920
11921// ListJobsWithContext is the same as ListJobs with the addition of
11922// the ability to pass a context and additional request options.
11923//
11924// See ListJobs for details on how to use this API operation.
11925//
11926// The context must be non-nil and will be used for request cancellation. If
11927// the context is nil a panic will occur. In the future the SDK may create
11928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11929// for more information on using Contexts.
11930func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
11931	req, out := c.ListJobsRequest(input)
11932	req.SetContext(ctx)
11933	req.ApplyOptions(opts...)
11934	return out, req.Send()
11935}
11936
11937const opListMitigationActions = "ListMitigationActions"
11938
11939// ListMitigationActionsRequest generates a "aws/request.Request" representing the
11940// client's request for the ListMitigationActions operation. The "output" return
11941// value will be populated with the request's response once the request completes
11942// successfully.
11943//
11944// Use "Send" method on the returned Request to send the API call to the service.
11945// the "output" return value is not valid until after Send returns without error.
11946//
11947// See ListMitigationActions for more information on using the ListMitigationActions
11948// API call, and error handling.
11949//
11950// This method is useful when you want to inject custom logic or configuration
11951// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11952//
11953//
11954//    // Example sending a request using the ListMitigationActionsRequest method.
11955//    req, resp := client.ListMitigationActionsRequest(params)
11956//
11957//    err := req.Send()
11958//    if err == nil { // resp is now filled
11959//        fmt.Println(resp)
11960//    }
11961func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
11962	op := &request.Operation{
11963		Name:       opListMitigationActions,
11964		HTTPMethod: "GET",
11965		HTTPPath:   "/mitigationactions/actions",
11966	}
11967
11968	if input == nil {
11969		input = &ListMitigationActionsInput{}
11970	}
11971
11972	output = &ListMitigationActionsOutput{}
11973	req = c.newRequest(op, input, output)
11974	return
11975}
11976
11977// ListMitigationActions API operation for AWS IoT.
11978//
11979// Gets a list of all mitigation actions that match the specified filter criteria.
11980//
11981// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11982// with awserr.Error's Code and Message methods to get detailed information about
11983// the error.
11984//
11985// See the AWS API reference guide for AWS IoT's
11986// API operation ListMitigationActions for usage and error information.
11987//
11988// Returned Error Types:
11989//   * InvalidRequestException
11990//   The request is not valid.
11991//
11992//   * ThrottlingException
11993//   The rate exceeds the limit.
11994//
11995//   * InternalFailureException
11996//   An unexpected error has occurred.
11997//
11998func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
11999	req, out := c.ListMitigationActionsRequest(input)
12000	return out, req.Send()
12001}
12002
12003// ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
12004// the ability to pass a context and additional request options.
12005//
12006// See ListMitigationActions for details on how to use this API operation.
12007//
12008// The context must be non-nil and will be used for request cancellation. If
12009// the context is nil a panic will occur. In the future the SDK may create
12010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12011// for more information on using Contexts.
12012func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
12013	req, out := c.ListMitigationActionsRequest(input)
12014	req.SetContext(ctx)
12015	req.ApplyOptions(opts...)
12016	return out, req.Send()
12017}
12018
12019const opListOTAUpdates = "ListOTAUpdates"
12020
12021// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
12022// client's request for the ListOTAUpdates operation. The "output" return
12023// value will be populated with the request's response once the request completes
12024// successfully.
12025//
12026// Use "Send" method on the returned Request to send the API call to the service.
12027// the "output" return value is not valid until after Send returns without error.
12028//
12029// See ListOTAUpdates for more information on using the ListOTAUpdates
12030// API call, and error handling.
12031//
12032// This method is useful when you want to inject custom logic or configuration
12033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12034//
12035//
12036//    // Example sending a request using the ListOTAUpdatesRequest method.
12037//    req, resp := client.ListOTAUpdatesRequest(params)
12038//
12039//    err := req.Send()
12040//    if err == nil { // resp is now filled
12041//        fmt.Println(resp)
12042//    }
12043func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
12044	op := &request.Operation{
12045		Name:       opListOTAUpdates,
12046		HTTPMethod: "GET",
12047		HTTPPath:   "/otaUpdates",
12048	}
12049
12050	if input == nil {
12051		input = &ListOTAUpdatesInput{}
12052	}
12053
12054	output = &ListOTAUpdatesOutput{}
12055	req = c.newRequest(op, input, output)
12056	return
12057}
12058
12059// ListOTAUpdates API operation for AWS IoT.
12060//
12061// Lists OTA updates.
12062//
12063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12064// with awserr.Error's Code and Message methods to get detailed information about
12065// the error.
12066//
12067// See the AWS API reference guide for AWS IoT's
12068// API operation ListOTAUpdates for usage and error information.
12069//
12070// Returned Error Types:
12071//   * InvalidRequestException
12072//   The request is not valid.
12073//
12074//   * ThrottlingException
12075//   The rate exceeds the limit.
12076//
12077//   * UnauthorizedException
12078//   You are not authorized to perform this operation.
12079//
12080//   * InternalFailureException
12081//   An unexpected error has occurred.
12082//
12083//   * ServiceUnavailableException
12084//   The service is temporarily unavailable.
12085//
12086func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
12087	req, out := c.ListOTAUpdatesRequest(input)
12088	return out, req.Send()
12089}
12090
12091// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
12092// the ability to pass a context and additional request options.
12093//
12094// See ListOTAUpdates for details on how to use this API operation.
12095//
12096// The context must be non-nil and will be used for request cancellation. If
12097// the context is nil a panic will occur. In the future the SDK may create
12098// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12099// for more information on using Contexts.
12100func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
12101	req, out := c.ListOTAUpdatesRequest(input)
12102	req.SetContext(ctx)
12103	req.ApplyOptions(opts...)
12104	return out, req.Send()
12105}
12106
12107const opListOutgoingCertificates = "ListOutgoingCertificates"
12108
12109// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
12110// client's request for the ListOutgoingCertificates operation. The "output" return
12111// value will be populated with the request's response once the request completes
12112// successfully.
12113//
12114// Use "Send" method on the returned Request to send the API call to the service.
12115// the "output" return value is not valid until after Send returns without error.
12116//
12117// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
12118// API call, and error handling.
12119//
12120// This method is useful when you want to inject custom logic or configuration
12121// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12122//
12123//
12124//    // Example sending a request using the ListOutgoingCertificatesRequest method.
12125//    req, resp := client.ListOutgoingCertificatesRequest(params)
12126//
12127//    err := req.Send()
12128//    if err == nil { // resp is now filled
12129//        fmt.Println(resp)
12130//    }
12131func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
12132	op := &request.Operation{
12133		Name:       opListOutgoingCertificates,
12134		HTTPMethod: "GET",
12135		HTTPPath:   "/certificates-out-going",
12136	}
12137
12138	if input == nil {
12139		input = &ListOutgoingCertificatesInput{}
12140	}
12141
12142	output = &ListOutgoingCertificatesOutput{}
12143	req = c.newRequest(op, input, output)
12144	return
12145}
12146
12147// ListOutgoingCertificates API operation for AWS IoT.
12148//
12149// Lists certificates that are being transferred but not yet accepted.
12150//
12151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12152// with awserr.Error's Code and Message methods to get detailed information about
12153// the error.
12154//
12155// See the AWS API reference guide for AWS IoT's
12156// API operation ListOutgoingCertificates for usage and error information.
12157//
12158// Returned Error Types:
12159//   * InvalidRequestException
12160//   The request is not valid.
12161//
12162//   * ThrottlingException
12163//   The rate exceeds the limit.
12164//
12165//   * UnauthorizedException
12166//   You are not authorized to perform this operation.
12167//
12168//   * ServiceUnavailableException
12169//   The service is temporarily unavailable.
12170//
12171//   * InternalFailureException
12172//   An unexpected error has occurred.
12173//
12174func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
12175	req, out := c.ListOutgoingCertificatesRequest(input)
12176	return out, req.Send()
12177}
12178
12179// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
12180// the ability to pass a context and additional request options.
12181//
12182// See ListOutgoingCertificates for details on how to use this API operation.
12183//
12184// The context must be non-nil and will be used for request cancellation. If
12185// the context is nil a panic will occur. In the future the SDK may create
12186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12187// for more information on using Contexts.
12188func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
12189	req, out := c.ListOutgoingCertificatesRequest(input)
12190	req.SetContext(ctx)
12191	req.ApplyOptions(opts...)
12192	return out, req.Send()
12193}
12194
12195const opListPolicies = "ListPolicies"
12196
12197// ListPoliciesRequest generates a "aws/request.Request" representing the
12198// client's request for the ListPolicies operation. The "output" return
12199// value will be populated with the request's response once the request completes
12200// successfully.
12201//
12202// Use "Send" method on the returned Request to send the API call to the service.
12203// the "output" return value is not valid until after Send returns without error.
12204//
12205// See ListPolicies for more information on using the ListPolicies
12206// API call, and error handling.
12207//
12208// This method is useful when you want to inject custom logic or configuration
12209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12210//
12211//
12212//    // Example sending a request using the ListPoliciesRequest method.
12213//    req, resp := client.ListPoliciesRequest(params)
12214//
12215//    err := req.Send()
12216//    if err == nil { // resp is now filled
12217//        fmt.Println(resp)
12218//    }
12219func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
12220	op := &request.Operation{
12221		Name:       opListPolicies,
12222		HTTPMethod: "GET",
12223		HTTPPath:   "/policies",
12224	}
12225
12226	if input == nil {
12227		input = &ListPoliciesInput{}
12228	}
12229
12230	output = &ListPoliciesOutput{}
12231	req = c.newRequest(op, input, output)
12232	return
12233}
12234
12235// ListPolicies API operation for AWS IoT.
12236//
12237// Lists your policies.
12238//
12239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12240// with awserr.Error's Code and Message methods to get detailed information about
12241// the error.
12242//
12243// See the AWS API reference guide for AWS IoT's
12244// API operation ListPolicies for usage and error information.
12245//
12246// Returned Error Types:
12247//   * InvalidRequestException
12248//   The request is not valid.
12249//
12250//   * ThrottlingException
12251//   The rate exceeds the limit.
12252//
12253//   * UnauthorizedException
12254//   You are not authorized to perform this operation.
12255//
12256//   * ServiceUnavailableException
12257//   The service is temporarily unavailable.
12258//
12259//   * InternalFailureException
12260//   An unexpected error has occurred.
12261//
12262func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
12263	req, out := c.ListPoliciesRequest(input)
12264	return out, req.Send()
12265}
12266
12267// ListPoliciesWithContext is the same as ListPolicies with the addition of
12268// the ability to pass a context and additional request options.
12269//
12270// See ListPolicies for details on how to use this API operation.
12271//
12272// The context must be non-nil and will be used for request cancellation. If
12273// the context is nil a panic will occur. In the future the SDK may create
12274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12275// for more information on using Contexts.
12276func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
12277	req, out := c.ListPoliciesRequest(input)
12278	req.SetContext(ctx)
12279	req.ApplyOptions(opts...)
12280	return out, req.Send()
12281}
12282
12283const opListPolicyPrincipals = "ListPolicyPrincipals"
12284
12285// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
12286// client's request for the ListPolicyPrincipals operation. The "output" return
12287// value will be populated with the request's response once the request completes
12288// successfully.
12289//
12290// Use "Send" method on the returned Request to send the API call to the service.
12291// the "output" return value is not valid until after Send returns without error.
12292//
12293// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
12294// API call, and error handling.
12295//
12296// This method is useful when you want to inject custom logic or configuration
12297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12298//
12299//
12300//    // Example sending a request using the ListPolicyPrincipalsRequest method.
12301//    req, resp := client.ListPolicyPrincipalsRequest(params)
12302//
12303//    err := req.Send()
12304//    if err == nil { // resp is now filled
12305//        fmt.Println(resp)
12306//    }
12307//
12308// Deprecated: ListPolicyPrincipals has been deprecated
12309func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
12310	if c.Client.Config.Logger != nil {
12311		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
12312	}
12313	op := &request.Operation{
12314		Name:       opListPolicyPrincipals,
12315		HTTPMethod: "GET",
12316		HTTPPath:   "/policy-principals",
12317	}
12318
12319	if input == nil {
12320		input = &ListPolicyPrincipalsInput{}
12321	}
12322
12323	output = &ListPolicyPrincipalsOutput{}
12324	req = c.newRequest(op, input, output)
12325	return
12326}
12327
12328// ListPolicyPrincipals API operation for AWS IoT.
12329//
12330// Lists the principals associated with the specified policy.
12331//
12332// Note: This API is deprecated. Please use ListTargetsForPolicy instead.
12333//
12334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12335// with awserr.Error's Code and Message methods to get detailed information about
12336// the error.
12337//
12338// See the AWS API reference guide for AWS IoT's
12339// API operation ListPolicyPrincipals for usage and error information.
12340//
12341// Returned Error Types:
12342//   * ResourceNotFoundException
12343//   The specified resource does not exist.
12344//
12345//   * InvalidRequestException
12346//   The request is not valid.
12347//
12348//   * ThrottlingException
12349//   The rate exceeds the limit.
12350//
12351//   * UnauthorizedException
12352//   You are not authorized to perform this operation.
12353//
12354//   * ServiceUnavailableException
12355//   The service is temporarily unavailable.
12356//
12357//   * InternalFailureException
12358//   An unexpected error has occurred.
12359//
12360//
12361// Deprecated: ListPolicyPrincipals has been deprecated
12362func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
12363	req, out := c.ListPolicyPrincipalsRequest(input)
12364	return out, req.Send()
12365}
12366
12367// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
12368// the ability to pass a context and additional request options.
12369//
12370// See ListPolicyPrincipals for details on how to use this API operation.
12371//
12372// The context must be non-nil and will be used for request cancellation. If
12373// the context is nil a panic will occur. In the future the SDK may create
12374// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12375// for more information on using Contexts.
12376//
12377// Deprecated: ListPolicyPrincipalsWithContext has been deprecated
12378func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
12379	req, out := c.ListPolicyPrincipalsRequest(input)
12380	req.SetContext(ctx)
12381	req.ApplyOptions(opts...)
12382	return out, req.Send()
12383}
12384
12385const opListPolicyVersions = "ListPolicyVersions"
12386
12387// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
12388// client's request for the ListPolicyVersions operation. The "output" return
12389// value will be populated with the request's response once the request completes
12390// successfully.
12391//
12392// Use "Send" method on the returned Request to send the API call to the service.
12393// the "output" return value is not valid until after Send returns without error.
12394//
12395// See ListPolicyVersions for more information on using the ListPolicyVersions
12396// API call, and error handling.
12397//
12398// This method is useful when you want to inject custom logic or configuration
12399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12400//
12401//
12402//    // Example sending a request using the ListPolicyVersionsRequest method.
12403//    req, resp := client.ListPolicyVersionsRequest(params)
12404//
12405//    err := req.Send()
12406//    if err == nil { // resp is now filled
12407//        fmt.Println(resp)
12408//    }
12409func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
12410	op := &request.Operation{
12411		Name:       opListPolicyVersions,
12412		HTTPMethod: "GET",
12413		HTTPPath:   "/policies/{policyName}/version",
12414	}
12415
12416	if input == nil {
12417		input = &ListPolicyVersionsInput{}
12418	}
12419
12420	output = &ListPolicyVersionsOutput{}
12421	req = c.newRequest(op, input, output)
12422	return
12423}
12424
12425// ListPolicyVersions API operation for AWS IoT.
12426//
12427// Lists the versions of the specified policy and identifies the default version.
12428//
12429// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12430// with awserr.Error's Code and Message methods to get detailed information about
12431// the error.
12432//
12433// See the AWS API reference guide for AWS IoT's
12434// API operation ListPolicyVersions for usage and error information.
12435//
12436// Returned Error Types:
12437//   * ResourceNotFoundException
12438//   The specified resource does not exist.
12439//
12440//   * InvalidRequestException
12441//   The request is not valid.
12442//
12443//   * ThrottlingException
12444//   The rate exceeds the limit.
12445//
12446//   * UnauthorizedException
12447//   You are not authorized to perform this operation.
12448//
12449//   * ServiceUnavailableException
12450//   The service is temporarily unavailable.
12451//
12452//   * InternalFailureException
12453//   An unexpected error has occurred.
12454//
12455func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
12456	req, out := c.ListPolicyVersionsRequest(input)
12457	return out, req.Send()
12458}
12459
12460// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
12461// the ability to pass a context and additional request options.
12462//
12463// See ListPolicyVersions for details on how to use this API operation.
12464//
12465// The context must be non-nil and will be used for request cancellation. If
12466// the context is nil a panic will occur. In the future the SDK may create
12467// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12468// for more information on using Contexts.
12469func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
12470	req, out := c.ListPolicyVersionsRequest(input)
12471	req.SetContext(ctx)
12472	req.ApplyOptions(opts...)
12473	return out, req.Send()
12474}
12475
12476const opListPrincipalPolicies = "ListPrincipalPolicies"
12477
12478// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
12479// client's request for the ListPrincipalPolicies operation. The "output" return
12480// value will be populated with the request's response once the request completes
12481// successfully.
12482//
12483// Use "Send" method on the returned Request to send the API call to the service.
12484// the "output" return value is not valid until after Send returns without error.
12485//
12486// See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
12487// API call, and error handling.
12488//
12489// This method is useful when you want to inject custom logic or configuration
12490// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12491//
12492//
12493//    // Example sending a request using the ListPrincipalPoliciesRequest method.
12494//    req, resp := client.ListPrincipalPoliciesRequest(params)
12495//
12496//    err := req.Send()
12497//    if err == nil { // resp is now filled
12498//        fmt.Println(resp)
12499//    }
12500//
12501// Deprecated: ListPrincipalPolicies has been deprecated
12502func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
12503	if c.Client.Config.Logger != nil {
12504		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
12505	}
12506	op := &request.Operation{
12507		Name:       opListPrincipalPolicies,
12508		HTTPMethod: "GET",
12509		HTTPPath:   "/principal-policies",
12510	}
12511
12512	if input == nil {
12513		input = &ListPrincipalPoliciesInput{}
12514	}
12515
12516	output = &ListPrincipalPoliciesOutput{}
12517	req = c.newRequest(op, input, output)
12518	return
12519}
12520
12521// ListPrincipalPolicies API operation for AWS IoT.
12522//
12523// Lists the policies attached to the specified principal. If you use an Cognito
12524// identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
12525//
12526// Note: This API is deprecated. Please use ListAttachedPolicies instead.
12527//
12528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12529// with awserr.Error's Code and Message methods to get detailed information about
12530// the error.
12531//
12532// See the AWS API reference guide for AWS IoT's
12533// API operation ListPrincipalPolicies for usage and error information.
12534//
12535// Returned Error Types:
12536//   * ResourceNotFoundException
12537//   The specified resource does not exist.
12538//
12539//   * InvalidRequestException
12540//   The request is not valid.
12541//
12542//   * ThrottlingException
12543//   The rate exceeds the limit.
12544//
12545//   * UnauthorizedException
12546//   You are not authorized to perform this operation.
12547//
12548//   * ServiceUnavailableException
12549//   The service is temporarily unavailable.
12550//
12551//   * InternalFailureException
12552//   An unexpected error has occurred.
12553//
12554//
12555// Deprecated: ListPrincipalPolicies has been deprecated
12556func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
12557	req, out := c.ListPrincipalPoliciesRequest(input)
12558	return out, req.Send()
12559}
12560
12561// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
12562// the ability to pass a context and additional request options.
12563//
12564// See ListPrincipalPolicies for details on how to use this API operation.
12565//
12566// The context must be non-nil and will be used for request cancellation. If
12567// the context is nil a panic will occur. In the future the SDK may create
12568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12569// for more information on using Contexts.
12570//
12571// Deprecated: ListPrincipalPoliciesWithContext has been deprecated
12572func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
12573	req, out := c.ListPrincipalPoliciesRequest(input)
12574	req.SetContext(ctx)
12575	req.ApplyOptions(opts...)
12576	return out, req.Send()
12577}
12578
12579const opListPrincipalThings = "ListPrincipalThings"
12580
12581// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
12582// client's request for the ListPrincipalThings operation. The "output" return
12583// value will be populated with the request's response once the request completes
12584// successfully.
12585//
12586// Use "Send" method on the returned Request to send the API call to the service.
12587// the "output" return value is not valid until after Send returns without error.
12588//
12589// See ListPrincipalThings for more information on using the ListPrincipalThings
12590// API call, and error handling.
12591//
12592// This method is useful when you want to inject custom logic or configuration
12593// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12594//
12595//
12596//    // Example sending a request using the ListPrincipalThingsRequest method.
12597//    req, resp := client.ListPrincipalThingsRequest(params)
12598//
12599//    err := req.Send()
12600//    if err == nil { // resp is now filled
12601//        fmt.Println(resp)
12602//    }
12603func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
12604	op := &request.Operation{
12605		Name:       opListPrincipalThings,
12606		HTTPMethod: "GET",
12607		HTTPPath:   "/principals/things",
12608	}
12609
12610	if input == nil {
12611		input = &ListPrincipalThingsInput{}
12612	}
12613
12614	output = &ListPrincipalThingsOutput{}
12615	req = c.newRequest(op, input, output)
12616	return
12617}
12618
12619// ListPrincipalThings API operation for AWS IoT.
12620//
12621// Lists the things associated with the specified principal. A principal can
12622// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
12623// or federated identities.
12624//
12625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12626// with awserr.Error's Code and Message methods to get detailed information about
12627// the error.
12628//
12629// See the AWS API reference guide for AWS IoT's
12630// API operation ListPrincipalThings for usage and error information.
12631//
12632// Returned Error Types:
12633//   * InvalidRequestException
12634//   The request is not valid.
12635//
12636//   * ThrottlingException
12637//   The rate exceeds the limit.
12638//
12639//   * UnauthorizedException
12640//   You are not authorized to perform this operation.
12641//
12642//   * ServiceUnavailableException
12643//   The service is temporarily unavailable.
12644//
12645//   * InternalFailureException
12646//   An unexpected error has occurred.
12647//
12648//   * ResourceNotFoundException
12649//   The specified resource does not exist.
12650//
12651func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
12652	req, out := c.ListPrincipalThingsRequest(input)
12653	return out, req.Send()
12654}
12655
12656// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
12657// the ability to pass a context and additional request options.
12658//
12659// See ListPrincipalThings for details on how to use this API operation.
12660//
12661// The context must be non-nil and will be used for request cancellation. If
12662// the context is nil a panic will occur. In the future the SDK may create
12663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12664// for more information on using Contexts.
12665func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
12666	req, out := c.ListPrincipalThingsRequest(input)
12667	req.SetContext(ctx)
12668	req.ApplyOptions(opts...)
12669	return out, req.Send()
12670}
12671
12672const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
12673
12674// ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
12675// client's request for the ListProvisioningTemplateVersions operation. The "output" return
12676// value will be populated with the request's response once the request completes
12677// successfully.
12678//
12679// Use "Send" method on the returned Request to send the API call to the service.
12680// the "output" return value is not valid until after Send returns without error.
12681//
12682// See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
12683// API call, and error handling.
12684//
12685// This method is useful when you want to inject custom logic or configuration
12686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12687//
12688//
12689//    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
12690//    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
12691//
12692//    err := req.Send()
12693//    if err == nil { // resp is now filled
12694//        fmt.Println(resp)
12695//    }
12696func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
12697	op := &request.Operation{
12698		Name:       opListProvisioningTemplateVersions,
12699		HTTPMethod: "GET",
12700		HTTPPath:   "/provisioning-templates/{templateName}/versions",
12701	}
12702
12703	if input == nil {
12704		input = &ListProvisioningTemplateVersionsInput{}
12705	}
12706
12707	output = &ListProvisioningTemplateVersionsOutput{}
12708	req = c.newRequest(op, input, output)
12709	return
12710}
12711
12712// ListProvisioningTemplateVersions API operation for AWS IoT.
12713//
12714// A list of fleet provisioning template versions.
12715//
12716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12717// with awserr.Error's Code and Message methods to get detailed information about
12718// the error.
12719//
12720// See the AWS API reference guide for AWS IoT's
12721// API operation ListProvisioningTemplateVersions for usage and error information.
12722//
12723// Returned Error Types:
12724//   * InternalFailureException
12725//   An unexpected error has occurred.
12726//
12727//   * InvalidRequestException
12728//   The request is not valid.
12729//
12730//   * ThrottlingException
12731//   The rate exceeds the limit.
12732//
12733//   * ResourceNotFoundException
12734//   The specified resource does not exist.
12735//
12736//   * UnauthorizedException
12737//   You are not authorized to perform this operation.
12738//
12739func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
12740	req, out := c.ListProvisioningTemplateVersionsRequest(input)
12741	return out, req.Send()
12742}
12743
12744// ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
12745// the ability to pass a context and additional request options.
12746//
12747// See ListProvisioningTemplateVersions for details on how to use this API operation.
12748//
12749// The context must be non-nil and will be used for request cancellation. If
12750// the context is nil a panic will occur. In the future the SDK may create
12751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12752// for more information on using Contexts.
12753func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
12754	req, out := c.ListProvisioningTemplateVersionsRequest(input)
12755	req.SetContext(ctx)
12756	req.ApplyOptions(opts...)
12757	return out, req.Send()
12758}
12759
12760const opListProvisioningTemplates = "ListProvisioningTemplates"
12761
12762// ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
12763// client's request for the ListProvisioningTemplates operation. The "output" return
12764// value will be populated with the request's response once the request completes
12765// successfully.
12766//
12767// Use "Send" method on the returned Request to send the API call to the service.
12768// the "output" return value is not valid until after Send returns without error.
12769//
12770// See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
12771// API call, and error handling.
12772//
12773// This method is useful when you want to inject custom logic or configuration
12774// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12775//
12776//
12777//    // Example sending a request using the ListProvisioningTemplatesRequest method.
12778//    req, resp := client.ListProvisioningTemplatesRequest(params)
12779//
12780//    err := req.Send()
12781//    if err == nil { // resp is now filled
12782//        fmt.Println(resp)
12783//    }
12784func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
12785	op := &request.Operation{
12786		Name:       opListProvisioningTemplates,
12787		HTTPMethod: "GET",
12788		HTTPPath:   "/provisioning-templates",
12789	}
12790
12791	if input == nil {
12792		input = &ListProvisioningTemplatesInput{}
12793	}
12794
12795	output = &ListProvisioningTemplatesOutput{}
12796	req = c.newRequest(op, input, output)
12797	return
12798}
12799
12800// ListProvisioningTemplates API operation for AWS IoT.
12801//
12802// Lists the fleet provisioning templates in your AWS account.
12803//
12804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12805// with awserr.Error's Code and Message methods to get detailed information about
12806// the error.
12807//
12808// See the AWS API reference guide for AWS IoT's
12809// API operation ListProvisioningTemplates for usage and error information.
12810//
12811// Returned Error Types:
12812//   * InternalFailureException
12813//   An unexpected error has occurred.
12814//
12815//   * InvalidRequestException
12816//   The request is not valid.
12817//
12818//   * ThrottlingException
12819//   The rate exceeds the limit.
12820//
12821//   * UnauthorizedException
12822//   You are not authorized to perform this operation.
12823//
12824func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
12825	req, out := c.ListProvisioningTemplatesRequest(input)
12826	return out, req.Send()
12827}
12828
12829// ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
12830// the ability to pass a context and additional request options.
12831//
12832// See ListProvisioningTemplates for details on how to use this API operation.
12833//
12834// The context must be non-nil and will be used for request cancellation. If
12835// the context is nil a panic will occur. In the future the SDK may create
12836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12837// for more information on using Contexts.
12838func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
12839	req, out := c.ListProvisioningTemplatesRequest(input)
12840	req.SetContext(ctx)
12841	req.ApplyOptions(opts...)
12842	return out, req.Send()
12843}
12844
12845const opListRoleAliases = "ListRoleAliases"
12846
12847// ListRoleAliasesRequest generates a "aws/request.Request" representing the
12848// client's request for the ListRoleAliases operation. The "output" return
12849// value will be populated with the request's response once the request completes
12850// successfully.
12851//
12852// Use "Send" method on the returned Request to send the API call to the service.
12853// the "output" return value is not valid until after Send returns without error.
12854//
12855// See ListRoleAliases for more information on using the ListRoleAliases
12856// API call, and error handling.
12857//
12858// This method is useful when you want to inject custom logic or configuration
12859// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12860//
12861//
12862//    // Example sending a request using the ListRoleAliasesRequest method.
12863//    req, resp := client.ListRoleAliasesRequest(params)
12864//
12865//    err := req.Send()
12866//    if err == nil { // resp is now filled
12867//        fmt.Println(resp)
12868//    }
12869func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
12870	op := &request.Operation{
12871		Name:       opListRoleAliases,
12872		HTTPMethod: "GET",
12873		HTTPPath:   "/role-aliases",
12874	}
12875
12876	if input == nil {
12877		input = &ListRoleAliasesInput{}
12878	}
12879
12880	output = &ListRoleAliasesOutput{}
12881	req = c.newRequest(op, input, output)
12882	return
12883}
12884
12885// ListRoleAliases API operation for AWS IoT.
12886//
12887// Lists the role aliases registered in your account.
12888//
12889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12890// with awserr.Error's Code and Message methods to get detailed information about
12891// the error.
12892//
12893// See the AWS API reference guide for AWS IoT's
12894// API operation ListRoleAliases for usage and error information.
12895//
12896// Returned Error Types:
12897//   * InvalidRequestException
12898//   The request is not valid.
12899//
12900//   * ThrottlingException
12901//   The rate exceeds the limit.
12902//
12903//   * UnauthorizedException
12904//   You are not authorized to perform this operation.
12905//
12906//   * ServiceUnavailableException
12907//   The service is temporarily unavailable.
12908//
12909//   * InternalFailureException
12910//   An unexpected error has occurred.
12911//
12912func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
12913	req, out := c.ListRoleAliasesRequest(input)
12914	return out, req.Send()
12915}
12916
12917// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
12918// the ability to pass a context and additional request options.
12919//
12920// See ListRoleAliases for details on how to use this API operation.
12921//
12922// The context must be non-nil and will be used for request cancellation. If
12923// the context is nil a panic will occur. In the future the SDK may create
12924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12925// for more information on using Contexts.
12926func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
12927	req, out := c.ListRoleAliasesRequest(input)
12928	req.SetContext(ctx)
12929	req.ApplyOptions(opts...)
12930	return out, req.Send()
12931}
12932
12933const opListScheduledAudits = "ListScheduledAudits"
12934
12935// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
12936// client's request for the ListScheduledAudits operation. The "output" return
12937// value will be populated with the request's response once the request completes
12938// successfully.
12939//
12940// Use "Send" method on the returned Request to send the API call to the service.
12941// the "output" return value is not valid until after Send returns without error.
12942//
12943// See ListScheduledAudits for more information on using the ListScheduledAudits
12944// API call, and error handling.
12945//
12946// This method is useful when you want to inject custom logic or configuration
12947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12948//
12949//
12950//    // Example sending a request using the ListScheduledAuditsRequest method.
12951//    req, resp := client.ListScheduledAuditsRequest(params)
12952//
12953//    err := req.Send()
12954//    if err == nil { // resp is now filled
12955//        fmt.Println(resp)
12956//    }
12957func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
12958	op := &request.Operation{
12959		Name:       opListScheduledAudits,
12960		HTTPMethod: "GET",
12961		HTTPPath:   "/audit/scheduledaudits",
12962	}
12963
12964	if input == nil {
12965		input = &ListScheduledAuditsInput{}
12966	}
12967
12968	output = &ListScheduledAuditsOutput{}
12969	req = c.newRequest(op, input, output)
12970	return
12971}
12972
12973// ListScheduledAudits API operation for AWS IoT.
12974//
12975// Lists all of your scheduled audits.
12976//
12977// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12978// with awserr.Error's Code and Message methods to get detailed information about
12979// the error.
12980//
12981// See the AWS API reference guide for AWS IoT's
12982// API operation ListScheduledAudits for usage and error information.
12983//
12984// Returned Error Types:
12985//   * InvalidRequestException
12986//   The request is not valid.
12987//
12988//   * ThrottlingException
12989//   The rate exceeds the limit.
12990//
12991//   * InternalFailureException
12992//   An unexpected error has occurred.
12993//
12994func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
12995	req, out := c.ListScheduledAuditsRequest(input)
12996	return out, req.Send()
12997}
12998
12999// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
13000// the ability to pass a context and additional request options.
13001//
13002// See ListScheduledAudits for details on how to use this API operation.
13003//
13004// The context must be non-nil and will be used for request cancellation. If
13005// the context is nil a panic will occur. In the future the SDK may create
13006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13007// for more information on using Contexts.
13008func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
13009	req, out := c.ListScheduledAuditsRequest(input)
13010	req.SetContext(ctx)
13011	req.ApplyOptions(opts...)
13012	return out, req.Send()
13013}
13014
13015const opListSecurityProfiles = "ListSecurityProfiles"
13016
13017// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
13018// client's request for the ListSecurityProfiles operation. The "output" return
13019// value will be populated with the request's response once the request completes
13020// successfully.
13021//
13022// Use "Send" method on the returned Request to send the API call to the service.
13023// the "output" return value is not valid until after Send returns without error.
13024//
13025// See ListSecurityProfiles for more information on using the ListSecurityProfiles
13026// API call, and error handling.
13027//
13028// This method is useful when you want to inject custom logic or configuration
13029// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13030//
13031//
13032//    // Example sending a request using the ListSecurityProfilesRequest method.
13033//    req, resp := client.ListSecurityProfilesRequest(params)
13034//
13035//    err := req.Send()
13036//    if err == nil { // resp is now filled
13037//        fmt.Println(resp)
13038//    }
13039func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
13040	op := &request.Operation{
13041		Name:       opListSecurityProfiles,
13042		HTTPMethod: "GET",
13043		HTTPPath:   "/security-profiles",
13044	}
13045
13046	if input == nil {
13047		input = &ListSecurityProfilesInput{}
13048	}
13049
13050	output = &ListSecurityProfilesOutput{}
13051	req = c.newRequest(op, input, output)
13052	return
13053}
13054
13055// ListSecurityProfiles API operation for AWS IoT.
13056//
13057// Lists the Device Defender security profiles you have created. You can use
13058// filters to list only those security profiles associated with a thing group
13059// or only those associated with your account.
13060//
13061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13062// with awserr.Error's Code and Message methods to get detailed information about
13063// the error.
13064//
13065// See the AWS API reference guide for AWS IoT's
13066// API operation ListSecurityProfiles for usage and error information.
13067//
13068// Returned Error Types:
13069//   * InvalidRequestException
13070//   The request is not valid.
13071//
13072//   * ThrottlingException
13073//   The rate exceeds the limit.
13074//
13075//   * InternalFailureException
13076//   An unexpected error has occurred.
13077//
13078//   * ResourceNotFoundException
13079//   The specified resource does not exist.
13080//
13081func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
13082	req, out := c.ListSecurityProfilesRequest(input)
13083	return out, req.Send()
13084}
13085
13086// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
13087// the ability to pass a context and additional request options.
13088//
13089// See ListSecurityProfiles for details on how to use this API operation.
13090//
13091// The context must be non-nil and will be used for request cancellation. If
13092// the context is nil a panic will occur. In the future the SDK may create
13093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13094// for more information on using Contexts.
13095func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
13096	req, out := c.ListSecurityProfilesRequest(input)
13097	req.SetContext(ctx)
13098	req.ApplyOptions(opts...)
13099	return out, req.Send()
13100}
13101
13102const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
13103
13104// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
13105// client's request for the ListSecurityProfilesForTarget operation. The "output" return
13106// value will be populated with the request's response once the request completes
13107// successfully.
13108//
13109// Use "Send" method on the returned Request to send the API call to the service.
13110// the "output" return value is not valid until after Send returns without error.
13111//
13112// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
13113// API call, and error handling.
13114//
13115// This method is useful when you want to inject custom logic or configuration
13116// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13117//
13118//
13119//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
13120//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
13121//
13122//    err := req.Send()
13123//    if err == nil { // resp is now filled
13124//        fmt.Println(resp)
13125//    }
13126func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
13127	op := &request.Operation{
13128		Name:       opListSecurityProfilesForTarget,
13129		HTTPMethod: "GET",
13130		HTTPPath:   "/security-profiles-for-target",
13131	}
13132
13133	if input == nil {
13134		input = &ListSecurityProfilesForTargetInput{}
13135	}
13136
13137	output = &ListSecurityProfilesForTargetOutput{}
13138	req = c.newRequest(op, input, output)
13139	return
13140}
13141
13142// ListSecurityProfilesForTarget API operation for AWS IoT.
13143//
13144// Lists the Device Defender security profiles attached to a target (thing group).
13145//
13146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13147// with awserr.Error's Code and Message methods to get detailed information about
13148// the error.
13149//
13150// See the AWS API reference guide for AWS IoT's
13151// API operation ListSecurityProfilesForTarget for usage and error information.
13152//
13153// Returned Error Types:
13154//   * InvalidRequestException
13155//   The request is not valid.
13156//
13157//   * ThrottlingException
13158//   The rate exceeds the limit.
13159//
13160//   * InternalFailureException
13161//   An unexpected error has occurred.
13162//
13163//   * ResourceNotFoundException
13164//   The specified resource does not exist.
13165//
13166func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
13167	req, out := c.ListSecurityProfilesForTargetRequest(input)
13168	return out, req.Send()
13169}
13170
13171// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
13172// the ability to pass a context and additional request options.
13173//
13174// See ListSecurityProfilesForTarget for details on how to use this API operation.
13175//
13176// The context must be non-nil and will be used for request cancellation. If
13177// the context is nil a panic will occur. In the future the SDK may create
13178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13179// for more information on using Contexts.
13180func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
13181	req, out := c.ListSecurityProfilesForTargetRequest(input)
13182	req.SetContext(ctx)
13183	req.ApplyOptions(opts...)
13184	return out, req.Send()
13185}
13186
13187const opListStreams = "ListStreams"
13188
13189// ListStreamsRequest generates a "aws/request.Request" representing the
13190// client's request for the ListStreams operation. The "output" return
13191// value will be populated with the request's response once the request completes
13192// successfully.
13193//
13194// Use "Send" method on the returned Request to send the API call to the service.
13195// the "output" return value is not valid until after Send returns without error.
13196//
13197// See ListStreams for more information on using the ListStreams
13198// API call, and error handling.
13199//
13200// This method is useful when you want to inject custom logic or configuration
13201// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13202//
13203//
13204//    // Example sending a request using the ListStreamsRequest method.
13205//    req, resp := client.ListStreamsRequest(params)
13206//
13207//    err := req.Send()
13208//    if err == nil { // resp is now filled
13209//        fmt.Println(resp)
13210//    }
13211func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
13212	op := &request.Operation{
13213		Name:       opListStreams,
13214		HTTPMethod: "GET",
13215		HTTPPath:   "/streams",
13216	}
13217
13218	if input == nil {
13219		input = &ListStreamsInput{}
13220	}
13221
13222	output = &ListStreamsOutput{}
13223	req = c.newRequest(op, input, output)
13224	return
13225}
13226
13227// ListStreams API operation for AWS IoT.
13228//
13229// Lists all of the streams in your AWS account.
13230//
13231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13232// with awserr.Error's Code and Message methods to get detailed information about
13233// the error.
13234//
13235// See the AWS API reference guide for AWS IoT's
13236// API operation ListStreams for usage and error information.
13237//
13238// Returned Error Types:
13239//   * InvalidRequestException
13240//   The request is not valid.
13241//
13242//   * ThrottlingException
13243//   The rate exceeds the limit.
13244//
13245//   * UnauthorizedException
13246//   You are not authorized to perform this operation.
13247//
13248//   * ServiceUnavailableException
13249//   The service is temporarily unavailable.
13250//
13251//   * InternalFailureException
13252//   An unexpected error has occurred.
13253//
13254func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
13255	req, out := c.ListStreamsRequest(input)
13256	return out, req.Send()
13257}
13258
13259// ListStreamsWithContext is the same as ListStreams with the addition of
13260// the ability to pass a context and additional request options.
13261//
13262// See ListStreams for details on how to use this API operation.
13263//
13264// The context must be non-nil and will be used for request cancellation. If
13265// the context is nil a panic will occur. In the future the SDK may create
13266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13267// for more information on using Contexts.
13268func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
13269	req, out := c.ListStreamsRequest(input)
13270	req.SetContext(ctx)
13271	req.ApplyOptions(opts...)
13272	return out, req.Send()
13273}
13274
13275const opListTagsForResource = "ListTagsForResource"
13276
13277// ListTagsForResourceRequest generates a "aws/request.Request" representing the
13278// client's request for the ListTagsForResource operation. The "output" return
13279// value will be populated with the request's response once the request completes
13280// successfully.
13281//
13282// Use "Send" method on the returned Request to send the API call to the service.
13283// the "output" return value is not valid until after Send returns without error.
13284//
13285// See ListTagsForResource for more information on using the ListTagsForResource
13286// API call, and error handling.
13287//
13288// This method is useful when you want to inject custom logic or configuration
13289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13290//
13291//
13292//    // Example sending a request using the ListTagsForResourceRequest method.
13293//    req, resp := client.ListTagsForResourceRequest(params)
13294//
13295//    err := req.Send()
13296//    if err == nil { // resp is now filled
13297//        fmt.Println(resp)
13298//    }
13299func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
13300	op := &request.Operation{
13301		Name:       opListTagsForResource,
13302		HTTPMethod: "GET",
13303		HTTPPath:   "/tags",
13304	}
13305
13306	if input == nil {
13307		input = &ListTagsForResourceInput{}
13308	}
13309
13310	output = &ListTagsForResourceOutput{}
13311	req = c.newRequest(op, input, output)
13312	return
13313}
13314
13315// ListTagsForResource API operation for AWS IoT.
13316//
13317// Lists the tags (metadata) you have assigned to the resource.
13318//
13319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13320// with awserr.Error's Code and Message methods to get detailed information about
13321// the error.
13322//
13323// See the AWS API reference guide for AWS IoT's
13324// API operation ListTagsForResource for usage and error information.
13325//
13326// Returned Error Types:
13327//   * InvalidRequestException
13328//   The request is not valid.
13329//
13330//   * InternalFailureException
13331//   An unexpected error has occurred.
13332//
13333//   * ResourceNotFoundException
13334//   The specified resource does not exist.
13335//
13336//   * ThrottlingException
13337//   The rate exceeds the limit.
13338//
13339func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
13340	req, out := c.ListTagsForResourceRequest(input)
13341	return out, req.Send()
13342}
13343
13344// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
13345// the ability to pass a context and additional request options.
13346//
13347// See ListTagsForResource for details on how to use this API operation.
13348//
13349// The context must be non-nil and will be used for request cancellation. If
13350// the context is nil a panic will occur. In the future the SDK may create
13351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13352// for more information on using Contexts.
13353func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
13354	req, out := c.ListTagsForResourceRequest(input)
13355	req.SetContext(ctx)
13356	req.ApplyOptions(opts...)
13357	return out, req.Send()
13358}
13359
13360const opListTargetsForPolicy = "ListTargetsForPolicy"
13361
13362// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
13363// client's request for the ListTargetsForPolicy operation. The "output" return
13364// value will be populated with the request's response once the request completes
13365// successfully.
13366//
13367// Use "Send" method on the returned Request to send the API call to the service.
13368// the "output" return value is not valid until after Send returns without error.
13369//
13370// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
13371// API call, and error handling.
13372//
13373// This method is useful when you want to inject custom logic or configuration
13374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13375//
13376//
13377//    // Example sending a request using the ListTargetsForPolicyRequest method.
13378//    req, resp := client.ListTargetsForPolicyRequest(params)
13379//
13380//    err := req.Send()
13381//    if err == nil { // resp is now filled
13382//        fmt.Println(resp)
13383//    }
13384func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
13385	op := &request.Operation{
13386		Name:       opListTargetsForPolicy,
13387		HTTPMethod: "POST",
13388		HTTPPath:   "/policy-targets/{policyName}",
13389	}
13390
13391	if input == nil {
13392		input = &ListTargetsForPolicyInput{}
13393	}
13394
13395	output = &ListTargetsForPolicyOutput{}
13396	req = c.newRequest(op, input, output)
13397	return
13398}
13399
13400// ListTargetsForPolicy API operation for AWS IoT.
13401//
13402// List targets for the specified policy.
13403//
13404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13405// with awserr.Error's Code and Message methods to get detailed information about
13406// the error.
13407//
13408// See the AWS API reference guide for AWS IoT's
13409// API operation ListTargetsForPolicy for usage and error information.
13410//
13411// Returned Error Types:
13412//   * ResourceNotFoundException
13413//   The specified resource does not exist.
13414//
13415//   * InvalidRequestException
13416//   The request is not valid.
13417//
13418//   * ThrottlingException
13419//   The rate exceeds the limit.
13420//
13421//   * UnauthorizedException
13422//   You are not authorized to perform this operation.
13423//
13424//   * ServiceUnavailableException
13425//   The service is temporarily unavailable.
13426//
13427//   * InternalFailureException
13428//   An unexpected error has occurred.
13429//
13430//   * LimitExceededException
13431//   A limit has been exceeded.
13432//
13433func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
13434	req, out := c.ListTargetsForPolicyRequest(input)
13435	return out, req.Send()
13436}
13437
13438// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
13439// the ability to pass a context and additional request options.
13440//
13441// See ListTargetsForPolicy for details on how to use this API operation.
13442//
13443// The context must be non-nil and will be used for request cancellation. If
13444// the context is nil a panic will occur. In the future the SDK may create
13445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13446// for more information on using Contexts.
13447func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
13448	req, out := c.ListTargetsForPolicyRequest(input)
13449	req.SetContext(ctx)
13450	req.ApplyOptions(opts...)
13451	return out, req.Send()
13452}
13453
13454const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
13455
13456// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
13457// client's request for the ListTargetsForSecurityProfile operation. The "output" return
13458// value will be populated with the request's response once the request completes
13459// successfully.
13460//
13461// Use "Send" method on the returned Request to send the API call to the service.
13462// the "output" return value is not valid until after Send returns without error.
13463//
13464// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
13465// API call, and error handling.
13466//
13467// This method is useful when you want to inject custom logic or configuration
13468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13469//
13470//
13471//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
13472//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
13473//
13474//    err := req.Send()
13475//    if err == nil { // resp is now filled
13476//        fmt.Println(resp)
13477//    }
13478func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
13479	op := &request.Operation{
13480		Name:       opListTargetsForSecurityProfile,
13481		HTTPMethod: "GET",
13482		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
13483	}
13484
13485	if input == nil {
13486		input = &ListTargetsForSecurityProfileInput{}
13487	}
13488
13489	output = &ListTargetsForSecurityProfileOutput{}
13490	req = c.newRequest(op, input, output)
13491	return
13492}
13493
13494// ListTargetsForSecurityProfile API operation for AWS IoT.
13495//
13496// Lists the targets (thing groups) associated with a given Device Defender
13497// security profile.
13498//
13499// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13500// with awserr.Error's Code and Message methods to get detailed information about
13501// the error.
13502//
13503// See the AWS API reference guide for AWS IoT's
13504// API operation ListTargetsForSecurityProfile for usage and error information.
13505//
13506// Returned Error Types:
13507//   * InvalidRequestException
13508//   The request is not valid.
13509//
13510//   * ResourceNotFoundException
13511//   The specified resource does not exist.
13512//
13513//   * ThrottlingException
13514//   The rate exceeds the limit.
13515//
13516//   * InternalFailureException
13517//   An unexpected error has occurred.
13518//
13519func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
13520	req, out := c.ListTargetsForSecurityProfileRequest(input)
13521	return out, req.Send()
13522}
13523
13524// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
13525// the ability to pass a context and additional request options.
13526//
13527// See ListTargetsForSecurityProfile for details on how to use this API operation.
13528//
13529// The context must be non-nil and will be used for request cancellation. If
13530// the context is nil a panic will occur. In the future the SDK may create
13531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13532// for more information on using Contexts.
13533func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
13534	req, out := c.ListTargetsForSecurityProfileRequest(input)
13535	req.SetContext(ctx)
13536	req.ApplyOptions(opts...)
13537	return out, req.Send()
13538}
13539
13540const opListThingGroups = "ListThingGroups"
13541
13542// ListThingGroupsRequest generates a "aws/request.Request" representing the
13543// client's request for the ListThingGroups operation. The "output" return
13544// value will be populated with the request's response once the request completes
13545// successfully.
13546//
13547// Use "Send" method on the returned Request to send the API call to the service.
13548// the "output" return value is not valid until after Send returns without error.
13549//
13550// See ListThingGroups for more information on using the ListThingGroups
13551// API call, and error handling.
13552//
13553// This method is useful when you want to inject custom logic or configuration
13554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13555//
13556//
13557//    // Example sending a request using the ListThingGroupsRequest method.
13558//    req, resp := client.ListThingGroupsRequest(params)
13559//
13560//    err := req.Send()
13561//    if err == nil { // resp is now filled
13562//        fmt.Println(resp)
13563//    }
13564func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
13565	op := &request.Operation{
13566		Name:       opListThingGroups,
13567		HTTPMethod: "GET",
13568		HTTPPath:   "/thing-groups",
13569	}
13570
13571	if input == nil {
13572		input = &ListThingGroupsInput{}
13573	}
13574
13575	output = &ListThingGroupsOutput{}
13576	req = c.newRequest(op, input, output)
13577	return
13578}
13579
13580// ListThingGroups API operation for AWS IoT.
13581//
13582// List the thing groups in your account.
13583//
13584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13585// with awserr.Error's Code and Message methods to get detailed information about
13586// the error.
13587//
13588// See the AWS API reference guide for AWS IoT's
13589// API operation ListThingGroups for usage and error information.
13590//
13591// Returned Error Types:
13592//   * InvalidRequestException
13593//   The request is not valid.
13594//
13595//   * InternalFailureException
13596//   An unexpected error has occurred.
13597//
13598//   * ResourceNotFoundException
13599//   The specified resource does not exist.
13600//
13601func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
13602	req, out := c.ListThingGroupsRequest(input)
13603	return out, req.Send()
13604}
13605
13606// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
13607// the ability to pass a context and additional request options.
13608//
13609// See ListThingGroups for details on how to use this API operation.
13610//
13611// The context must be non-nil and will be used for request cancellation. If
13612// the context is nil a panic will occur. In the future the SDK may create
13613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13614// for more information on using Contexts.
13615func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
13616	req, out := c.ListThingGroupsRequest(input)
13617	req.SetContext(ctx)
13618	req.ApplyOptions(opts...)
13619	return out, req.Send()
13620}
13621
13622const opListThingGroupsForThing = "ListThingGroupsForThing"
13623
13624// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
13625// client's request for the ListThingGroupsForThing operation. The "output" return
13626// value will be populated with the request's response once the request completes
13627// successfully.
13628//
13629// Use "Send" method on the returned Request to send the API call to the service.
13630// the "output" return value is not valid until after Send returns without error.
13631//
13632// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
13633// API call, and error handling.
13634//
13635// This method is useful when you want to inject custom logic or configuration
13636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13637//
13638//
13639//    // Example sending a request using the ListThingGroupsForThingRequest method.
13640//    req, resp := client.ListThingGroupsForThingRequest(params)
13641//
13642//    err := req.Send()
13643//    if err == nil { // resp is now filled
13644//        fmt.Println(resp)
13645//    }
13646func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
13647	op := &request.Operation{
13648		Name:       opListThingGroupsForThing,
13649		HTTPMethod: "GET",
13650		HTTPPath:   "/things/{thingName}/thing-groups",
13651	}
13652
13653	if input == nil {
13654		input = &ListThingGroupsForThingInput{}
13655	}
13656
13657	output = &ListThingGroupsForThingOutput{}
13658	req = c.newRequest(op, input, output)
13659	return
13660}
13661
13662// ListThingGroupsForThing API operation for AWS IoT.
13663//
13664// List the thing groups to which the specified thing belongs.
13665//
13666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13667// with awserr.Error's Code and Message methods to get detailed information about
13668// the error.
13669//
13670// See the AWS API reference guide for AWS IoT's
13671// API operation ListThingGroupsForThing for usage and error information.
13672//
13673// Returned Error Types:
13674//   * InvalidRequestException
13675//   The request is not valid.
13676//
13677//   * InternalFailureException
13678//   An unexpected error has occurred.
13679//
13680//   * ResourceNotFoundException
13681//   The specified resource does not exist.
13682//
13683func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
13684	req, out := c.ListThingGroupsForThingRequest(input)
13685	return out, req.Send()
13686}
13687
13688// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
13689// the ability to pass a context and additional request options.
13690//
13691// See ListThingGroupsForThing for details on how to use this API operation.
13692//
13693// The context must be non-nil and will be used for request cancellation. If
13694// the context is nil a panic will occur. In the future the SDK may create
13695// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13696// for more information on using Contexts.
13697func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
13698	req, out := c.ListThingGroupsForThingRequest(input)
13699	req.SetContext(ctx)
13700	req.ApplyOptions(opts...)
13701	return out, req.Send()
13702}
13703
13704const opListThingPrincipals = "ListThingPrincipals"
13705
13706// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
13707// client's request for the ListThingPrincipals operation. The "output" return
13708// value will be populated with the request's response once the request completes
13709// successfully.
13710//
13711// Use "Send" method on the returned Request to send the API call to the service.
13712// the "output" return value is not valid until after Send returns without error.
13713//
13714// See ListThingPrincipals for more information on using the ListThingPrincipals
13715// API call, and error handling.
13716//
13717// This method is useful when you want to inject custom logic or configuration
13718// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13719//
13720//
13721//    // Example sending a request using the ListThingPrincipalsRequest method.
13722//    req, resp := client.ListThingPrincipalsRequest(params)
13723//
13724//    err := req.Send()
13725//    if err == nil { // resp is now filled
13726//        fmt.Println(resp)
13727//    }
13728func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
13729	op := &request.Operation{
13730		Name:       opListThingPrincipals,
13731		HTTPMethod: "GET",
13732		HTTPPath:   "/things/{thingName}/principals",
13733	}
13734
13735	if input == nil {
13736		input = &ListThingPrincipalsInput{}
13737	}
13738
13739	output = &ListThingPrincipalsOutput{}
13740	req = c.newRequest(op, input, output)
13741	return
13742}
13743
13744// ListThingPrincipals API operation for AWS IoT.
13745//
13746// Lists the principals associated with the specified thing. A principal can
13747// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
13748// or federated identities.
13749//
13750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13751// with awserr.Error's Code and Message methods to get detailed information about
13752// the error.
13753//
13754// See the AWS API reference guide for AWS IoT's
13755// API operation ListThingPrincipals for usage and error information.
13756//
13757// Returned Error Types:
13758//   * InvalidRequestException
13759//   The request is not valid.
13760//
13761//   * ThrottlingException
13762//   The rate exceeds the limit.
13763//
13764//   * UnauthorizedException
13765//   You are not authorized to perform this operation.
13766//
13767//   * ServiceUnavailableException
13768//   The service is temporarily unavailable.
13769//
13770//   * InternalFailureException
13771//   An unexpected error has occurred.
13772//
13773//   * ResourceNotFoundException
13774//   The specified resource does not exist.
13775//
13776func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
13777	req, out := c.ListThingPrincipalsRequest(input)
13778	return out, req.Send()
13779}
13780
13781// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
13782// the ability to pass a context and additional request options.
13783//
13784// See ListThingPrincipals for details on how to use this API operation.
13785//
13786// The context must be non-nil and will be used for request cancellation. If
13787// the context is nil a panic will occur. In the future the SDK may create
13788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13789// for more information on using Contexts.
13790func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
13791	req, out := c.ListThingPrincipalsRequest(input)
13792	req.SetContext(ctx)
13793	req.ApplyOptions(opts...)
13794	return out, req.Send()
13795}
13796
13797const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
13798
13799// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
13800// client's request for the ListThingRegistrationTaskReports operation. The "output" return
13801// value will be populated with the request's response once the request completes
13802// successfully.
13803//
13804// Use "Send" method on the returned Request to send the API call to the service.
13805// the "output" return value is not valid until after Send returns without error.
13806//
13807// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
13808// API call, and error handling.
13809//
13810// This method is useful when you want to inject custom logic or configuration
13811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13812//
13813//
13814//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
13815//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
13816//
13817//    err := req.Send()
13818//    if err == nil { // resp is now filled
13819//        fmt.Println(resp)
13820//    }
13821func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
13822	op := &request.Operation{
13823		Name:       opListThingRegistrationTaskReports,
13824		HTTPMethod: "GET",
13825		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
13826	}
13827
13828	if input == nil {
13829		input = &ListThingRegistrationTaskReportsInput{}
13830	}
13831
13832	output = &ListThingRegistrationTaskReportsOutput{}
13833	req = c.newRequest(op, input, output)
13834	return
13835}
13836
13837// ListThingRegistrationTaskReports API operation for AWS IoT.
13838//
13839// Information about the thing registration tasks.
13840//
13841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13842// with awserr.Error's Code and Message methods to get detailed information about
13843// the error.
13844//
13845// See the AWS API reference guide for AWS IoT's
13846// API operation ListThingRegistrationTaskReports for usage and error information.
13847//
13848// Returned Error Types:
13849//   * InvalidRequestException
13850//   The request is not valid.
13851//
13852//   * ThrottlingException
13853//   The rate exceeds the limit.
13854//
13855//   * UnauthorizedException
13856//   You are not authorized to perform this operation.
13857//
13858//   * InternalFailureException
13859//   An unexpected error has occurred.
13860//
13861func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
13862	req, out := c.ListThingRegistrationTaskReportsRequest(input)
13863	return out, req.Send()
13864}
13865
13866// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
13867// the ability to pass a context and additional request options.
13868//
13869// See ListThingRegistrationTaskReports for details on how to use this API operation.
13870//
13871// The context must be non-nil and will be used for request cancellation. If
13872// the context is nil a panic will occur. In the future the SDK may create
13873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13874// for more information on using Contexts.
13875func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
13876	req, out := c.ListThingRegistrationTaskReportsRequest(input)
13877	req.SetContext(ctx)
13878	req.ApplyOptions(opts...)
13879	return out, req.Send()
13880}
13881
13882const opListThingRegistrationTasks = "ListThingRegistrationTasks"
13883
13884// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
13885// client's request for the ListThingRegistrationTasks operation. The "output" return
13886// value will be populated with the request's response once the request completes
13887// successfully.
13888//
13889// Use "Send" method on the returned Request to send the API call to the service.
13890// the "output" return value is not valid until after Send returns without error.
13891//
13892// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
13893// API call, and error handling.
13894//
13895// This method is useful when you want to inject custom logic or configuration
13896// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13897//
13898//
13899//    // Example sending a request using the ListThingRegistrationTasksRequest method.
13900//    req, resp := client.ListThingRegistrationTasksRequest(params)
13901//
13902//    err := req.Send()
13903//    if err == nil { // resp is now filled
13904//        fmt.Println(resp)
13905//    }
13906func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
13907	op := &request.Operation{
13908		Name:       opListThingRegistrationTasks,
13909		HTTPMethod: "GET",
13910		HTTPPath:   "/thing-registration-tasks",
13911	}
13912
13913	if input == nil {
13914		input = &ListThingRegistrationTasksInput{}
13915	}
13916
13917	output = &ListThingRegistrationTasksOutput{}
13918	req = c.newRequest(op, input, output)
13919	return
13920}
13921
13922// ListThingRegistrationTasks API operation for AWS IoT.
13923//
13924// List bulk thing provisioning tasks.
13925//
13926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13927// with awserr.Error's Code and Message methods to get detailed information about
13928// the error.
13929//
13930// See the AWS API reference guide for AWS IoT's
13931// API operation ListThingRegistrationTasks for usage and error information.
13932//
13933// Returned Error Types:
13934//   * InvalidRequestException
13935//   The request is not valid.
13936//
13937//   * ThrottlingException
13938//   The rate exceeds the limit.
13939//
13940//   * UnauthorizedException
13941//   You are not authorized to perform this operation.
13942//
13943//   * InternalFailureException
13944//   An unexpected error has occurred.
13945//
13946func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
13947	req, out := c.ListThingRegistrationTasksRequest(input)
13948	return out, req.Send()
13949}
13950
13951// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
13952// the ability to pass a context and additional request options.
13953//
13954// See ListThingRegistrationTasks for details on how to use this API operation.
13955//
13956// The context must be non-nil and will be used for request cancellation. If
13957// the context is nil a panic will occur. In the future the SDK may create
13958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13959// for more information on using Contexts.
13960func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
13961	req, out := c.ListThingRegistrationTasksRequest(input)
13962	req.SetContext(ctx)
13963	req.ApplyOptions(opts...)
13964	return out, req.Send()
13965}
13966
13967const opListThingTypes = "ListThingTypes"
13968
13969// ListThingTypesRequest generates a "aws/request.Request" representing the
13970// client's request for the ListThingTypes operation. The "output" return
13971// value will be populated with the request's response once the request completes
13972// successfully.
13973//
13974// Use "Send" method on the returned Request to send the API call to the service.
13975// the "output" return value is not valid until after Send returns without error.
13976//
13977// See ListThingTypes for more information on using the ListThingTypes
13978// API call, and error handling.
13979//
13980// This method is useful when you want to inject custom logic or configuration
13981// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13982//
13983//
13984//    // Example sending a request using the ListThingTypesRequest method.
13985//    req, resp := client.ListThingTypesRequest(params)
13986//
13987//    err := req.Send()
13988//    if err == nil { // resp is now filled
13989//        fmt.Println(resp)
13990//    }
13991func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
13992	op := &request.Operation{
13993		Name:       opListThingTypes,
13994		HTTPMethod: "GET",
13995		HTTPPath:   "/thing-types",
13996	}
13997
13998	if input == nil {
13999		input = &ListThingTypesInput{}
14000	}
14001
14002	output = &ListThingTypesOutput{}
14003	req = c.newRequest(op, input, output)
14004	return
14005}
14006
14007// ListThingTypes API operation for AWS IoT.
14008//
14009// Lists the existing thing types.
14010//
14011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14012// with awserr.Error's Code and Message methods to get detailed information about
14013// the error.
14014//
14015// See the AWS API reference guide for AWS IoT's
14016// API operation ListThingTypes for usage and error information.
14017//
14018// Returned Error Types:
14019//   * InvalidRequestException
14020//   The request is not valid.
14021//
14022//   * ThrottlingException
14023//   The rate exceeds the limit.
14024//
14025//   * UnauthorizedException
14026//   You are not authorized to perform this operation.
14027//
14028//   * ServiceUnavailableException
14029//   The service is temporarily unavailable.
14030//
14031//   * InternalFailureException
14032//   An unexpected error has occurred.
14033//
14034func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
14035	req, out := c.ListThingTypesRequest(input)
14036	return out, req.Send()
14037}
14038
14039// ListThingTypesWithContext is the same as ListThingTypes with the addition of
14040// the ability to pass a context and additional request options.
14041//
14042// See ListThingTypes for details on how to use this API operation.
14043//
14044// The context must be non-nil and will be used for request cancellation. If
14045// the context is nil a panic will occur. In the future the SDK may create
14046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14047// for more information on using Contexts.
14048func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
14049	req, out := c.ListThingTypesRequest(input)
14050	req.SetContext(ctx)
14051	req.ApplyOptions(opts...)
14052	return out, req.Send()
14053}
14054
14055const opListThings = "ListThings"
14056
14057// ListThingsRequest generates a "aws/request.Request" representing the
14058// client's request for the ListThings operation. The "output" return
14059// value will be populated with the request's response once the request completes
14060// successfully.
14061//
14062// Use "Send" method on the returned Request to send the API call to the service.
14063// the "output" return value is not valid until after Send returns without error.
14064//
14065// See ListThings for more information on using the ListThings
14066// API call, and error handling.
14067//
14068// This method is useful when you want to inject custom logic or configuration
14069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14070//
14071//
14072//    // Example sending a request using the ListThingsRequest method.
14073//    req, resp := client.ListThingsRequest(params)
14074//
14075//    err := req.Send()
14076//    if err == nil { // resp is now filled
14077//        fmt.Println(resp)
14078//    }
14079func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
14080	op := &request.Operation{
14081		Name:       opListThings,
14082		HTTPMethod: "GET",
14083		HTTPPath:   "/things",
14084	}
14085
14086	if input == nil {
14087		input = &ListThingsInput{}
14088	}
14089
14090	output = &ListThingsOutput{}
14091	req = c.newRequest(op, input, output)
14092	return
14093}
14094
14095// ListThings API operation for AWS IoT.
14096//
14097// Lists your things. Use the attributeName and attributeValue parameters to
14098// filter your things. For example, calling ListThings with attributeName=Color
14099// and attributeValue=Red retrieves all things in the registry that contain
14100// an attribute Color with the value Red.
14101//
14102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14103// with awserr.Error's Code and Message methods to get detailed information about
14104// the error.
14105//
14106// See the AWS API reference guide for AWS IoT's
14107// API operation ListThings for usage and error information.
14108//
14109// Returned Error Types:
14110//   * InvalidRequestException
14111//   The request is not valid.
14112//
14113//   * ThrottlingException
14114//   The rate exceeds the limit.
14115//
14116//   * UnauthorizedException
14117//   You are not authorized to perform this operation.
14118//
14119//   * ServiceUnavailableException
14120//   The service is temporarily unavailable.
14121//
14122//   * InternalFailureException
14123//   An unexpected error has occurred.
14124//
14125func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
14126	req, out := c.ListThingsRequest(input)
14127	return out, req.Send()
14128}
14129
14130// ListThingsWithContext is the same as ListThings with the addition of
14131// the ability to pass a context and additional request options.
14132//
14133// See ListThings for details on how to use this API operation.
14134//
14135// The context must be non-nil and will be used for request cancellation. If
14136// the context is nil a panic will occur. In the future the SDK may create
14137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14138// for more information on using Contexts.
14139func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
14140	req, out := c.ListThingsRequest(input)
14141	req.SetContext(ctx)
14142	req.ApplyOptions(opts...)
14143	return out, req.Send()
14144}
14145
14146const opListThingsInBillingGroup = "ListThingsInBillingGroup"
14147
14148// ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
14149// client's request for the ListThingsInBillingGroup operation. The "output" return
14150// value will be populated with the request's response once the request completes
14151// successfully.
14152//
14153// Use "Send" method on the returned Request to send the API call to the service.
14154// the "output" return value is not valid until after Send returns without error.
14155//
14156// See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
14157// API call, and error handling.
14158//
14159// This method is useful when you want to inject custom logic or configuration
14160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14161//
14162//
14163//    // Example sending a request using the ListThingsInBillingGroupRequest method.
14164//    req, resp := client.ListThingsInBillingGroupRequest(params)
14165//
14166//    err := req.Send()
14167//    if err == nil { // resp is now filled
14168//        fmt.Println(resp)
14169//    }
14170func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
14171	op := &request.Operation{
14172		Name:       opListThingsInBillingGroup,
14173		HTTPMethod: "GET",
14174		HTTPPath:   "/billing-groups/{billingGroupName}/things",
14175	}
14176
14177	if input == nil {
14178		input = &ListThingsInBillingGroupInput{}
14179	}
14180
14181	output = &ListThingsInBillingGroupOutput{}
14182	req = c.newRequest(op, input, output)
14183	return
14184}
14185
14186// ListThingsInBillingGroup API operation for AWS IoT.
14187//
14188// Lists the things you have added to the given billing group.
14189//
14190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14191// with awserr.Error's Code and Message methods to get detailed information about
14192// the error.
14193//
14194// See the AWS API reference guide for AWS IoT's
14195// API operation ListThingsInBillingGroup for usage and error information.
14196//
14197// Returned Error Types:
14198//   * InvalidRequestException
14199//   The request is not valid.
14200//
14201//   * InternalFailureException
14202//   An unexpected error has occurred.
14203//
14204//   * ResourceNotFoundException
14205//   The specified resource does not exist.
14206//
14207//   * ThrottlingException
14208//   The rate exceeds the limit.
14209//
14210func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
14211	req, out := c.ListThingsInBillingGroupRequest(input)
14212	return out, req.Send()
14213}
14214
14215// ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
14216// the ability to pass a context and additional request options.
14217//
14218// See ListThingsInBillingGroup for details on how to use this API operation.
14219//
14220// The context must be non-nil and will be used for request cancellation. If
14221// the context is nil a panic will occur. In the future the SDK may create
14222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14223// for more information on using Contexts.
14224func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
14225	req, out := c.ListThingsInBillingGroupRequest(input)
14226	req.SetContext(ctx)
14227	req.ApplyOptions(opts...)
14228	return out, req.Send()
14229}
14230
14231const opListThingsInThingGroup = "ListThingsInThingGroup"
14232
14233// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
14234// client's request for the ListThingsInThingGroup operation. The "output" return
14235// value will be populated with the request's response once the request completes
14236// successfully.
14237//
14238// Use "Send" method on the returned Request to send the API call to the service.
14239// the "output" return value is not valid until after Send returns without error.
14240//
14241// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
14242// API call, and error handling.
14243//
14244// This method is useful when you want to inject custom logic or configuration
14245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14246//
14247//
14248//    // Example sending a request using the ListThingsInThingGroupRequest method.
14249//    req, resp := client.ListThingsInThingGroupRequest(params)
14250//
14251//    err := req.Send()
14252//    if err == nil { // resp is now filled
14253//        fmt.Println(resp)
14254//    }
14255func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
14256	op := &request.Operation{
14257		Name:       opListThingsInThingGroup,
14258		HTTPMethod: "GET",
14259		HTTPPath:   "/thing-groups/{thingGroupName}/things",
14260	}
14261
14262	if input == nil {
14263		input = &ListThingsInThingGroupInput{}
14264	}
14265
14266	output = &ListThingsInThingGroupOutput{}
14267	req = c.newRequest(op, input, output)
14268	return
14269}
14270
14271// ListThingsInThingGroup API operation for AWS IoT.
14272//
14273// Lists the things in the specified group.
14274//
14275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14276// with awserr.Error's Code and Message methods to get detailed information about
14277// the error.
14278//
14279// See the AWS API reference guide for AWS IoT's
14280// API operation ListThingsInThingGroup for usage and error information.
14281//
14282// Returned Error Types:
14283//   * InvalidRequestException
14284//   The request is not valid.
14285//
14286//   * InternalFailureException
14287//   An unexpected error has occurred.
14288//
14289//   * ResourceNotFoundException
14290//   The specified resource does not exist.
14291//
14292func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
14293	req, out := c.ListThingsInThingGroupRequest(input)
14294	return out, req.Send()
14295}
14296
14297// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
14298// the ability to pass a context and additional request options.
14299//
14300// See ListThingsInThingGroup for details on how to use this API operation.
14301//
14302// The context must be non-nil and will be used for request cancellation. If
14303// the context is nil a panic will occur. In the future the SDK may create
14304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14305// for more information on using Contexts.
14306func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
14307	req, out := c.ListThingsInThingGroupRequest(input)
14308	req.SetContext(ctx)
14309	req.ApplyOptions(opts...)
14310	return out, req.Send()
14311}
14312
14313const opListTopicRuleDestinations = "ListTopicRuleDestinations"
14314
14315// ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
14316// client's request for the ListTopicRuleDestinations operation. The "output" return
14317// value will be populated with the request's response once the request completes
14318// successfully.
14319//
14320// Use "Send" method on the returned Request to send the API call to the service.
14321// the "output" return value is not valid until after Send returns without error.
14322//
14323// See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
14324// API call, and error handling.
14325//
14326// This method is useful when you want to inject custom logic or configuration
14327// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14328//
14329//
14330//    // Example sending a request using the ListTopicRuleDestinationsRequest method.
14331//    req, resp := client.ListTopicRuleDestinationsRequest(params)
14332//
14333//    err := req.Send()
14334//    if err == nil { // resp is now filled
14335//        fmt.Println(resp)
14336//    }
14337func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
14338	op := &request.Operation{
14339		Name:       opListTopicRuleDestinations,
14340		HTTPMethod: "GET",
14341		HTTPPath:   "/destinations",
14342	}
14343
14344	if input == nil {
14345		input = &ListTopicRuleDestinationsInput{}
14346	}
14347
14348	output = &ListTopicRuleDestinationsOutput{}
14349	req = c.newRequest(op, input, output)
14350	return
14351}
14352
14353// ListTopicRuleDestinations API operation for AWS IoT.
14354//
14355// Lists all the topic rule destinations in your AWS account.
14356//
14357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14358// with awserr.Error's Code and Message methods to get detailed information about
14359// the error.
14360//
14361// See the AWS API reference guide for AWS IoT's
14362// API operation ListTopicRuleDestinations for usage and error information.
14363//
14364// Returned Error Types:
14365//   * InternalException
14366//   An unexpected error has occurred.
14367//
14368//   * InvalidRequestException
14369//   The request is not valid.
14370//
14371//   * ServiceUnavailableException
14372//   The service is temporarily unavailable.
14373//
14374//   * UnauthorizedException
14375//   You are not authorized to perform this operation.
14376//
14377func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
14378	req, out := c.ListTopicRuleDestinationsRequest(input)
14379	return out, req.Send()
14380}
14381
14382// ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
14383// the ability to pass a context and additional request options.
14384//
14385// See ListTopicRuleDestinations for details on how to use this API operation.
14386//
14387// The context must be non-nil and will be used for request cancellation. If
14388// the context is nil a panic will occur. In the future the SDK may create
14389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14390// for more information on using Contexts.
14391func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
14392	req, out := c.ListTopicRuleDestinationsRequest(input)
14393	req.SetContext(ctx)
14394	req.ApplyOptions(opts...)
14395	return out, req.Send()
14396}
14397
14398const opListTopicRules = "ListTopicRules"
14399
14400// ListTopicRulesRequest generates a "aws/request.Request" representing the
14401// client's request for the ListTopicRules operation. The "output" return
14402// value will be populated with the request's response once the request completes
14403// successfully.
14404//
14405// Use "Send" method on the returned Request to send the API call to the service.
14406// the "output" return value is not valid until after Send returns without error.
14407//
14408// See ListTopicRules for more information on using the ListTopicRules
14409// API call, and error handling.
14410//
14411// This method is useful when you want to inject custom logic or configuration
14412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14413//
14414//
14415//    // Example sending a request using the ListTopicRulesRequest method.
14416//    req, resp := client.ListTopicRulesRequest(params)
14417//
14418//    err := req.Send()
14419//    if err == nil { // resp is now filled
14420//        fmt.Println(resp)
14421//    }
14422func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
14423	op := &request.Operation{
14424		Name:       opListTopicRules,
14425		HTTPMethod: "GET",
14426		HTTPPath:   "/rules",
14427	}
14428
14429	if input == nil {
14430		input = &ListTopicRulesInput{}
14431	}
14432
14433	output = &ListTopicRulesOutput{}
14434	req = c.newRequest(op, input, output)
14435	return
14436}
14437
14438// ListTopicRules API operation for AWS IoT.
14439//
14440// Lists the rules for the specific topic.
14441//
14442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14443// with awserr.Error's Code and Message methods to get detailed information about
14444// the error.
14445//
14446// See the AWS API reference guide for AWS IoT's
14447// API operation ListTopicRules for usage and error information.
14448//
14449// Returned Error Types:
14450//   * InternalException
14451//   An unexpected error has occurred.
14452//
14453//   * InvalidRequestException
14454//   The request is not valid.
14455//
14456//   * ServiceUnavailableException
14457//   The service is temporarily unavailable.
14458//
14459func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
14460	req, out := c.ListTopicRulesRequest(input)
14461	return out, req.Send()
14462}
14463
14464// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
14465// the ability to pass a context and additional request options.
14466//
14467// See ListTopicRules for details on how to use this API operation.
14468//
14469// The context must be non-nil and will be used for request cancellation. If
14470// the context is nil a panic will occur. In the future the SDK may create
14471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14472// for more information on using Contexts.
14473func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
14474	req, out := c.ListTopicRulesRequest(input)
14475	req.SetContext(ctx)
14476	req.ApplyOptions(opts...)
14477	return out, req.Send()
14478}
14479
14480const opListV2LoggingLevels = "ListV2LoggingLevels"
14481
14482// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
14483// client's request for the ListV2LoggingLevels operation. The "output" return
14484// value will be populated with the request's response once the request completes
14485// successfully.
14486//
14487// Use "Send" method on the returned Request to send the API call to the service.
14488// the "output" return value is not valid until after Send returns without error.
14489//
14490// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
14491// API call, and error handling.
14492//
14493// This method is useful when you want to inject custom logic or configuration
14494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14495//
14496//
14497//    // Example sending a request using the ListV2LoggingLevelsRequest method.
14498//    req, resp := client.ListV2LoggingLevelsRequest(params)
14499//
14500//    err := req.Send()
14501//    if err == nil { // resp is now filled
14502//        fmt.Println(resp)
14503//    }
14504func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
14505	op := &request.Operation{
14506		Name:       opListV2LoggingLevels,
14507		HTTPMethod: "GET",
14508		HTTPPath:   "/v2LoggingLevel",
14509	}
14510
14511	if input == nil {
14512		input = &ListV2LoggingLevelsInput{}
14513	}
14514
14515	output = &ListV2LoggingLevelsOutput{}
14516	req = c.newRequest(op, input, output)
14517	return
14518}
14519
14520// ListV2LoggingLevels API operation for AWS IoT.
14521//
14522// Lists logging levels.
14523//
14524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14525// with awserr.Error's Code and Message methods to get detailed information about
14526// the error.
14527//
14528// See the AWS API reference guide for AWS IoT's
14529// API operation ListV2LoggingLevels for usage and error information.
14530//
14531// Returned Error Types:
14532//   * InternalException
14533//   An unexpected error has occurred.
14534//
14535//   * NotConfiguredException
14536//   The resource is not configured.
14537//
14538//   * InvalidRequestException
14539//   The request is not valid.
14540//
14541//   * ServiceUnavailableException
14542//   The service is temporarily unavailable.
14543//
14544func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
14545	req, out := c.ListV2LoggingLevelsRequest(input)
14546	return out, req.Send()
14547}
14548
14549// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
14550// the ability to pass a context and additional request options.
14551//
14552// See ListV2LoggingLevels for details on how to use this API operation.
14553//
14554// The context must be non-nil and will be used for request cancellation. If
14555// the context is nil a panic will occur. In the future the SDK may create
14556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14557// for more information on using Contexts.
14558func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
14559	req, out := c.ListV2LoggingLevelsRequest(input)
14560	req.SetContext(ctx)
14561	req.ApplyOptions(opts...)
14562	return out, req.Send()
14563}
14564
14565const opListViolationEvents = "ListViolationEvents"
14566
14567// ListViolationEventsRequest generates a "aws/request.Request" representing the
14568// client's request for the ListViolationEvents operation. The "output" return
14569// value will be populated with the request's response once the request completes
14570// successfully.
14571//
14572// Use "Send" method on the returned Request to send the API call to the service.
14573// the "output" return value is not valid until after Send returns without error.
14574//
14575// See ListViolationEvents for more information on using the ListViolationEvents
14576// API call, and error handling.
14577//
14578// This method is useful when you want to inject custom logic or configuration
14579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14580//
14581//
14582//    // Example sending a request using the ListViolationEventsRequest method.
14583//    req, resp := client.ListViolationEventsRequest(params)
14584//
14585//    err := req.Send()
14586//    if err == nil { // resp is now filled
14587//        fmt.Println(resp)
14588//    }
14589func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
14590	op := &request.Operation{
14591		Name:       opListViolationEvents,
14592		HTTPMethod: "GET",
14593		HTTPPath:   "/violation-events",
14594	}
14595
14596	if input == nil {
14597		input = &ListViolationEventsInput{}
14598	}
14599
14600	output = &ListViolationEventsOutput{}
14601	req = c.newRequest(op, input, output)
14602	return
14603}
14604
14605// ListViolationEvents API operation for AWS IoT.
14606//
14607// Lists the Device Defender security profile violations discovered during the
14608// given time period. You can use filters to limit the results to those alerts
14609// issued for a particular security profile, behavior, or thing (device).
14610//
14611// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14612// with awserr.Error's Code and Message methods to get detailed information about
14613// the error.
14614//
14615// See the AWS API reference guide for AWS IoT's
14616// API operation ListViolationEvents for usage and error information.
14617//
14618// Returned Error Types:
14619//   * InvalidRequestException
14620//   The request is not valid.
14621//
14622//   * ThrottlingException
14623//   The rate exceeds the limit.
14624//
14625//   * InternalFailureException
14626//   An unexpected error has occurred.
14627//
14628func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
14629	req, out := c.ListViolationEventsRequest(input)
14630	return out, req.Send()
14631}
14632
14633// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
14634// the ability to pass a context and additional request options.
14635//
14636// See ListViolationEvents for details on how to use this API operation.
14637//
14638// The context must be non-nil and will be used for request cancellation. If
14639// the context is nil a panic will occur. In the future the SDK may create
14640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14641// for more information on using Contexts.
14642func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
14643	req, out := c.ListViolationEventsRequest(input)
14644	req.SetContext(ctx)
14645	req.ApplyOptions(opts...)
14646	return out, req.Send()
14647}
14648
14649const opRegisterCACertificate = "RegisterCACertificate"
14650
14651// RegisterCACertificateRequest generates a "aws/request.Request" representing the
14652// client's request for the RegisterCACertificate operation. The "output" return
14653// value will be populated with the request's response once the request completes
14654// successfully.
14655//
14656// Use "Send" method on the returned Request to send the API call to the service.
14657// the "output" return value is not valid until after Send returns without error.
14658//
14659// See RegisterCACertificate for more information on using the RegisterCACertificate
14660// API call, and error handling.
14661//
14662// This method is useful when you want to inject custom logic or configuration
14663// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14664//
14665//
14666//    // Example sending a request using the RegisterCACertificateRequest method.
14667//    req, resp := client.RegisterCACertificateRequest(params)
14668//
14669//    err := req.Send()
14670//    if err == nil { // resp is now filled
14671//        fmt.Println(resp)
14672//    }
14673func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
14674	op := &request.Operation{
14675		Name:       opRegisterCACertificate,
14676		HTTPMethod: "POST",
14677		HTTPPath:   "/cacertificate",
14678	}
14679
14680	if input == nil {
14681		input = &RegisterCACertificateInput{}
14682	}
14683
14684	output = &RegisterCACertificateOutput{}
14685	req = c.newRequest(op, input, output)
14686	return
14687}
14688
14689// RegisterCACertificate API operation for AWS IoT.
14690//
14691// Registers a CA certificate with AWS IoT. This CA certificate can then be
14692// used to sign device certificates, which can be then registered with AWS IoT.
14693// You can register up to 10 CA certificates per AWS account that have the same
14694// subject field. This enables you to have up to 10 certificate authorities
14695// sign your device certificates. If you have more than one CA certificate registered,
14696// make sure you pass the CA certificate when you register your device certificates
14697// with the RegisterCertificate API.
14698//
14699// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14700// with awserr.Error's Code and Message methods to get detailed information about
14701// the error.
14702//
14703// See the AWS API reference guide for AWS IoT's
14704// API operation RegisterCACertificate for usage and error information.
14705//
14706// Returned Error Types:
14707//   * ResourceAlreadyExistsException
14708//   The resource already exists.
14709//
14710//   * RegistrationCodeValidationException
14711//   The registration code is invalid.
14712//
14713//   * InvalidRequestException
14714//   The request is not valid.
14715//
14716//   * CertificateValidationException
14717//   The certificate is invalid.
14718//
14719//   * ThrottlingException
14720//   The rate exceeds the limit.
14721//
14722//   * LimitExceededException
14723//   A limit has been exceeded.
14724//
14725//   * UnauthorizedException
14726//   You are not authorized to perform this operation.
14727//
14728//   * ServiceUnavailableException
14729//   The service is temporarily unavailable.
14730//
14731//   * InternalFailureException
14732//   An unexpected error has occurred.
14733//
14734func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
14735	req, out := c.RegisterCACertificateRequest(input)
14736	return out, req.Send()
14737}
14738
14739// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
14740// the ability to pass a context and additional request options.
14741//
14742// See RegisterCACertificate for details on how to use this API operation.
14743//
14744// The context must be non-nil and will be used for request cancellation. If
14745// the context is nil a panic will occur. In the future the SDK may create
14746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14747// for more information on using Contexts.
14748func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
14749	req, out := c.RegisterCACertificateRequest(input)
14750	req.SetContext(ctx)
14751	req.ApplyOptions(opts...)
14752	return out, req.Send()
14753}
14754
14755const opRegisterCertificate = "RegisterCertificate"
14756
14757// RegisterCertificateRequest generates a "aws/request.Request" representing the
14758// client's request for the RegisterCertificate operation. The "output" return
14759// value will be populated with the request's response once the request completes
14760// successfully.
14761//
14762// Use "Send" method on the returned Request to send the API call to the service.
14763// the "output" return value is not valid until after Send returns without error.
14764//
14765// See RegisterCertificate for more information on using the RegisterCertificate
14766// API call, and error handling.
14767//
14768// This method is useful when you want to inject custom logic or configuration
14769// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14770//
14771//
14772//    // Example sending a request using the RegisterCertificateRequest method.
14773//    req, resp := client.RegisterCertificateRequest(params)
14774//
14775//    err := req.Send()
14776//    if err == nil { // resp is now filled
14777//        fmt.Println(resp)
14778//    }
14779func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
14780	op := &request.Operation{
14781		Name:       opRegisterCertificate,
14782		HTTPMethod: "POST",
14783		HTTPPath:   "/certificate/register",
14784	}
14785
14786	if input == nil {
14787		input = &RegisterCertificateInput{}
14788	}
14789
14790	output = &RegisterCertificateOutput{}
14791	req = c.newRequest(op, input, output)
14792	return
14793}
14794
14795// RegisterCertificate API operation for AWS IoT.
14796//
14797// Registers a device certificate with AWS IoT. If you have more than one CA
14798// certificate that has the same subject field, you must specify the CA certificate
14799// that was used to sign the device certificate being registered.
14800//
14801// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14802// with awserr.Error's Code and Message methods to get detailed information about
14803// the error.
14804//
14805// See the AWS API reference guide for AWS IoT's
14806// API operation RegisterCertificate for usage and error information.
14807//
14808// Returned Error Types:
14809//   * ResourceAlreadyExistsException
14810//   The resource already exists.
14811//
14812//   * InvalidRequestException
14813//   The request is not valid.
14814//
14815//   * CertificateValidationException
14816//   The certificate is invalid.
14817//
14818//   * CertificateStateException
14819//   The certificate operation is not allowed.
14820//
14821//   * CertificateConflictException
14822//   Unable to verify the CA certificate used to sign the device certificate you
14823//   are attempting to register. This is happens when you have registered more
14824//   than one CA certificate that has the same subject field and public key.
14825//
14826//   * ThrottlingException
14827//   The rate exceeds the limit.
14828//
14829//   * UnauthorizedException
14830//   You are not authorized to perform this operation.
14831//
14832//   * ServiceUnavailableException
14833//   The service is temporarily unavailable.
14834//
14835//   * InternalFailureException
14836//   An unexpected error has occurred.
14837//
14838func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
14839	req, out := c.RegisterCertificateRequest(input)
14840	return out, req.Send()
14841}
14842
14843// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
14844// the ability to pass a context and additional request options.
14845//
14846// See RegisterCertificate for details on how to use this API operation.
14847//
14848// The context must be non-nil and will be used for request cancellation. If
14849// the context is nil a panic will occur. In the future the SDK may create
14850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14851// for more information on using Contexts.
14852func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
14853	req, out := c.RegisterCertificateRequest(input)
14854	req.SetContext(ctx)
14855	req.ApplyOptions(opts...)
14856	return out, req.Send()
14857}
14858
14859const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
14860
14861// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
14862// client's request for the RegisterCertificateWithoutCA operation. The "output" return
14863// value will be populated with the request's response once the request completes
14864// successfully.
14865//
14866// Use "Send" method on the returned Request to send the API call to the service.
14867// the "output" return value is not valid until after Send returns without error.
14868//
14869// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
14870// API call, and error handling.
14871//
14872// This method is useful when you want to inject custom logic or configuration
14873// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14874//
14875//
14876//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
14877//    req, resp := client.RegisterCertificateWithoutCARequest(params)
14878//
14879//    err := req.Send()
14880//    if err == nil { // resp is now filled
14881//        fmt.Println(resp)
14882//    }
14883func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
14884	op := &request.Operation{
14885		Name:       opRegisterCertificateWithoutCA,
14886		HTTPMethod: "POST",
14887		HTTPPath:   "/certificate/register-no-ca",
14888	}
14889
14890	if input == nil {
14891		input = &RegisterCertificateWithoutCAInput{}
14892	}
14893
14894	output = &RegisterCertificateWithoutCAOutput{}
14895	req = c.newRequest(op, input, output)
14896	return
14897}
14898
14899// RegisterCertificateWithoutCA API operation for AWS IoT.
14900//
14901// Register a certificate that does not have a certificate authority (CA).
14902//
14903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14904// with awserr.Error's Code and Message methods to get detailed information about
14905// the error.
14906//
14907// See the AWS API reference guide for AWS IoT's
14908// API operation RegisterCertificateWithoutCA for usage and error information.
14909//
14910// Returned Error Types:
14911//   * ResourceAlreadyExistsException
14912//   The resource already exists.
14913//
14914//   * InvalidRequestException
14915//   The request is not valid.
14916//
14917//   * CertificateStateException
14918//   The certificate operation is not allowed.
14919//
14920//   * CertificateValidationException
14921//   The certificate is invalid.
14922//
14923//   * ThrottlingException
14924//   The rate exceeds the limit.
14925//
14926//   * UnauthorizedException
14927//   You are not authorized to perform this operation.
14928//
14929//   * ServiceUnavailableException
14930//   The service is temporarily unavailable.
14931//
14932//   * InternalFailureException
14933//   An unexpected error has occurred.
14934//
14935func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
14936	req, out := c.RegisterCertificateWithoutCARequest(input)
14937	return out, req.Send()
14938}
14939
14940// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
14941// the ability to pass a context and additional request options.
14942//
14943// See RegisterCertificateWithoutCA for details on how to use this API operation.
14944//
14945// The context must be non-nil and will be used for request cancellation. If
14946// the context is nil a panic will occur. In the future the SDK may create
14947// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14948// for more information on using Contexts.
14949func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
14950	req, out := c.RegisterCertificateWithoutCARequest(input)
14951	req.SetContext(ctx)
14952	req.ApplyOptions(opts...)
14953	return out, req.Send()
14954}
14955
14956const opRegisterThing = "RegisterThing"
14957
14958// RegisterThingRequest generates a "aws/request.Request" representing the
14959// client's request for the RegisterThing operation. The "output" return
14960// value will be populated with the request's response once the request completes
14961// successfully.
14962//
14963// Use "Send" method on the returned Request to send the API call to the service.
14964// the "output" return value is not valid until after Send returns without error.
14965//
14966// See RegisterThing for more information on using the RegisterThing
14967// API call, and error handling.
14968//
14969// This method is useful when you want to inject custom logic or configuration
14970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14971//
14972//
14973//    // Example sending a request using the RegisterThingRequest method.
14974//    req, resp := client.RegisterThingRequest(params)
14975//
14976//    err := req.Send()
14977//    if err == nil { // resp is now filled
14978//        fmt.Println(resp)
14979//    }
14980func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
14981	op := &request.Operation{
14982		Name:       opRegisterThing,
14983		HTTPMethod: "POST",
14984		HTTPPath:   "/things",
14985	}
14986
14987	if input == nil {
14988		input = &RegisterThingInput{}
14989	}
14990
14991	output = &RegisterThingOutput{}
14992	req = c.newRequest(op, input, output)
14993	return
14994}
14995
14996// RegisterThing API operation for AWS IoT.
14997//
14998// Provisions a thing in the device registry. RegisterThing calls other AWS
14999// IoT control plane APIs. These calls might exceed your account level AWS IoT
15000// Throttling Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
15001// and cause throttle errors. Please contact AWS Customer Support (https://console.aws.amazon.com/support/home)
15002// to raise your throttling limits if necessary.
15003//
15004// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15005// with awserr.Error's Code and Message methods to get detailed information about
15006// the error.
15007//
15008// See the AWS API reference guide for AWS IoT's
15009// API operation RegisterThing for usage and error information.
15010//
15011// Returned Error Types:
15012//   * InternalFailureException
15013//   An unexpected error has occurred.
15014//
15015//   * ServiceUnavailableException
15016//   The service is temporarily unavailable.
15017//
15018//   * InvalidRequestException
15019//   The request is not valid.
15020//
15021//   * UnauthorizedException
15022//   You are not authorized to perform this operation.
15023//
15024//   * ThrottlingException
15025//   The rate exceeds the limit.
15026//
15027//   * ConflictingResourceUpdateException
15028//   A conflicting resource update exception. This exception is thrown when two
15029//   pending updates cause a conflict.
15030//
15031//   * ResourceRegistrationFailureException
15032//   The resource registration failed.
15033//
15034func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
15035	req, out := c.RegisterThingRequest(input)
15036	return out, req.Send()
15037}
15038
15039// RegisterThingWithContext is the same as RegisterThing with the addition of
15040// the ability to pass a context and additional request options.
15041//
15042// See RegisterThing for details on how to use this API operation.
15043//
15044// The context must be non-nil and will be used for request cancellation. If
15045// the context is nil a panic will occur. In the future the SDK may create
15046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15047// for more information on using Contexts.
15048func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
15049	req, out := c.RegisterThingRequest(input)
15050	req.SetContext(ctx)
15051	req.ApplyOptions(opts...)
15052	return out, req.Send()
15053}
15054
15055const opRejectCertificateTransfer = "RejectCertificateTransfer"
15056
15057// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
15058// client's request for the RejectCertificateTransfer operation. The "output" return
15059// value will be populated with the request's response once the request completes
15060// successfully.
15061//
15062// Use "Send" method on the returned Request to send the API call to the service.
15063// the "output" return value is not valid until after Send returns without error.
15064//
15065// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
15066// API call, and error handling.
15067//
15068// This method is useful when you want to inject custom logic or configuration
15069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15070//
15071//
15072//    // Example sending a request using the RejectCertificateTransferRequest method.
15073//    req, resp := client.RejectCertificateTransferRequest(params)
15074//
15075//    err := req.Send()
15076//    if err == nil { // resp is now filled
15077//        fmt.Println(resp)
15078//    }
15079func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
15080	op := &request.Operation{
15081		Name:       opRejectCertificateTransfer,
15082		HTTPMethod: "PATCH",
15083		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
15084	}
15085
15086	if input == nil {
15087		input = &RejectCertificateTransferInput{}
15088	}
15089
15090	output = &RejectCertificateTransferOutput{}
15091	req = c.newRequest(op, input, output)
15092	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15093	return
15094}
15095
15096// RejectCertificateTransfer API operation for AWS IoT.
15097//
15098// Rejects a pending certificate transfer. After AWS IoT rejects a certificate
15099// transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.
15100//
15101// To check for pending certificate transfers, call ListCertificates to enumerate
15102// your certificates.
15103//
15104// This operation can only be called by the transfer destination. After it is
15105// called, the certificate will be returned to the source's account in the INACTIVE
15106// state.
15107//
15108// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15109// with awserr.Error's Code and Message methods to get detailed information about
15110// the error.
15111//
15112// See the AWS API reference guide for AWS IoT's
15113// API operation RejectCertificateTransfer for usage and error information.
15114//
15115// Returned Error Types:
15116//   * ResourceNotFoundException
15117//   The specified resource does not exist.
15118//
15119//   * TransferAlreadyCompletedException
15120//   You can't revert the certificate transfer because the transfer is already
15121//   complete.
15122//
15123//   * InvalidRequestException
15124//   The request is not valid.
15125//
15126//   * ThrottlingException
15127//   The rate exceeds the limit.
15128//
15129//   * UnauthorizedException
15130//   You are not authorized to perform this operation.
15131//
15132//   * ServiceUnavailableException
15133//   The service is temporarily unavailable.
15134//
15135//   * InternalFailureException
15136//   An unexpected error has occurred.
15137//
15138func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
15139	req, out := c.RejectCertificateTransferRequest(input)
15140	return out, req.Send()
15141}
15142
15143// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
15144// the ability to pass a context and additional request options.
15145//
15146// See RejectCertificateTransfer for details on how to use this API operation.
15147//
15148// The context must be non-nil and will be used for request cancellation. If
15149// the context is nil a panic will occur. In the future the SDK may create
15150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15151// for more information on using Contexts.
15152func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
15153	req, out := c.RejectCertificateTransferRequest(input)
15154	req.SetContext(ctx)
15155	req.ApplyOptions(opts...)
15156	return out, req.Send()
15157}
15158
15159const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
15160
15161// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
15162// client's request for the RemoveThingFromBillingGroup operation. The "output" return
15163// value will be populated with the request's response once the request completes
15164// successfully.
15165//
15166// Use "Send" method on the returned Request to send the API call to the service.
15167// the "output" return value is not valid until after Send returns without error.
15168//
15169// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
15170// API call, and error handling.
15171//
15172// This method is useful when you want to inject custom logic or configuration
15173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15174//
15175//
15176//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
15177//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
15178//
15179//    err := req.Send()
15180//    if err == nil { // resp is now filled
15181//        fmt.Println(resp)
15182//    }
15183func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
15184	op := &request.Operation{
15185		Name:       opRemoveThingFromBillingGroup,
15186		HTTPMethod: "PUT",
15187		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
15188	}
15189
15190	if input == nil {
15191		input = &RemoveThingFromBillingGroupInput{}
15192	}
15193
15194	output = &RemoveThingFromBillingGroupOutput{}
15195	req = c.newRequest(op, input, output)
15196	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15197	return
15198}
15199
15200// RemoveThingFromBillingGroup API operation for AWS IoT.
15201//
15202// Removes the given thing from the billing group.
15203//
15204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15205// with awserr.Error's Code and Message methods to get detailed information about
15206// the error.
15207//
15208// See the AWS API reference guide for AWS IoT's
15209// API operation RemoveThingFromBillingGroup for usage and error information.
15210//
15211// Returned Error Types:
15212//   * InvalidRequestException
15213//   The request is not valid.
15214//
15215//   * ThrottlingException
15216//   The rate exceeds the limit.
15217//
15218//   * InternalFailureException
15219//   An unexpected error has occurred.
15220//
15221//   * ResourceNotFoundException
15222//   The specified resource does not exist.
15223//
15224func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
15225	req, out := c.RemoveThingFromBillingGroupRequest(input)
15226	return out, req.Send()
15227}
15228
15229// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
15230// the ability to pass a context and additional request options.
15231//
15232// See RemoveThingFromBillingGroup for details on how to use this API operation.
15233//
15234// The context must be non-nil and will be used for request cancellation. If
15235// the context is nil a panic will occur. In the future the SDK may create
15236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15237// for more information on using Contexts.
15238func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
15239	req, out := c.RemoveThingFromBillingGroupRequest(input)
15240	req.SetContext(ctx)
15241	req.ApplyOptions(opts...)
15242	return out, req.Send()
15243}
15244
15245const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
15246
15247// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
15248// client's request for the RemoveThingFromThingGroup operation. The "output" return
15249// value will be populated with the request's response once the request completes
15250// successfully.
15251//
15252// Use "Send" method on the returned Request to send the API call to the service.
15253// the "output" return value is not valid until after Send returns without error.
15254//
15255// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
15256// API call, and error handling.
15257//
15258// This method is useful when you want to inject custom logic or configuration
15259// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15260//
15261//
15262//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
15263//    req, resp := client.RemoveThingFromThingGroupRequest(params)
15264//
15265//    err := req.Send()
15266//    if err == nil { // resp is now filled
15267//        fmt.Println(resp)
15268//    }
15269func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
15270	op := &request.Operation{
15271		Name:       opRemoveThingFromThingGroup,
15272		HTTPMethod: "PUT",
15273		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
15274	}
15275
15276	if input == nil {
15277		input = &RemoveThingFromThingGroupInput{}
15278	}
15279
15280	output = &RemoveThingFromThingGroupOutput{}
15281	req = c.newRequest(op, input, output)
15282	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15283	return
15284}
15285
15286// RemoveThingFromThingGroup API operation for AWS IoT.
15287//
15288// Remove the specified thing from the specified group.
15289//
15290// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15291// with awserr.Error's Code and Message methods to get detailed information about
15292// the error.
15293//
15294// See the AWS API reference guide for AWS IoT's
15295// API operation RemoveThingFromThingGroup for usage and error information.
15296//
15297// Returned Error Types:
15298//   * InvalidRequestException
15299//   The request is not valid.
15300//
15301//   * ThrottlingException
15302//   The rate exceeds the limit.
15303//
15304//   * InternalFailureException
15305//   An unexpected error has occurred.
15306//
15307//   * ResourceNotFoundException
15308//   The specified resource does not exist.
15309//
15310func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
15311	req, out := c.RemoveThingFromThingGroupRequest(input)
15312	return out, req.Send()
15313}
15314
15315// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
15316// the ability to pass a context and additional request options.
15317//
15318// See RemoveThingFromThingGroup for details on how to use this API operation.
15319//
15320// The context must be non-nil and will be used for request cancellation. If
15321// the context is nil a panic will occur. In the future the SDK may create
15322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15323// for more information on using Contexts.
15324func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
15325	req, out := c.RemoveThingFromThingGroupRequest(input)
15326	req.SetContext(ctx)
15327	req.ApplyOptions(opts...)
15328	return out, req.Send()
15329}
15330
15331const opReplaceTopicRule = "ReplaceTopicRule"
15332
15333// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
15334// client's request for the ReplaceTopicRule operation. The "output" return
15335// value will be populated with the request's response once the request completes
15336// successfully.
15337//
15338// Use "Send" method on the returned Request to send the API call to the service.
15339// the "output" return value is not valid until after Send returns without error.
15340//
15341// See ReplaceTopicRule for more information on using the ReplaceTopicRule
15342// API call, and error handling.
15343//
15344// This method is useful when you want to inject custom logic or configuration
15345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15346//
15347//
15348//    // Example sending a request using the ReplaceTopicRuleRequest method.
15349//    req, resp := client.ReplaceTopicRuleRequest(params)
15350//
15351//    err := req.Send()
15352//    if err == nil { // resp is now filled
15353//        fmt.Println(resp)
15354//    }
15355func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
15356	op := &request.Operation{
15357		Name:       opReplaceTopicRule,
15358		HTTPMethod: "PATCH",
15359		HTTPPath:   "/rules/{ruleName}",
15360	}
15361
15362	if input == nil {
15363		input = &ReplaceTopicRuleInput{}
15364	}
15365
15366	output = &ReplaceTopicRuleOutput{}
15367	req = c.newRequest(op, input, output)
15368	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15369	return
15370}
15371
15372// ReplaceTopicRule API operation for AWS IoT.
15373//
15374// Replaces the rule. You must specify all parameters for the new rule. Creating
15375// rules is an administrator-level action. Any user who has permission to create
15376// rules will be able to access data processed by the rule.
15377//
15378// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15379// with awserr.Error's Code and Message methods to get detailed information about
15380// the error.
15381//
15382// See the AWS API reference guide for AWS IoT's
15383// API operation ReplaceTopicRule for usage and error information.
15384//
15385// Returned Error Types:
15386//   * SqlParseException
15387//   The Rule-SQL expression can't be parsed correctly.
15388//
15389//   * InternalException
15390//   An unexpected error has occurred.
15391//
15392//   * InvalidRequestException
15393//   The request is not valid.
15394//
15395//   * ServiceUnavailableException
15396//   The service is temporarily unavailable.
15397//
15398//   * UnauthorizedException
15399//   You are not authorized to perform this operation.
15400//
15401//   * ConflictingResourceUpdateException
15402//   A conflicting resource update exception. This exception is thrown when two
15403//   pending updates cause a conflict.
15404//
15405func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
15406	req, out := c.ReplaceTopicRuleRequest(input)
15407	return out, req.Send()
15408}
15409
15410// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
15411// the ability to pass a context and additional request options.
15412//
15413// See ReplaceTopicRule for details on how to use this API operation.
15414//
15415// The context must be non-nil and will be used for request cancellation. If
15416// the context is nil a panic will occur. In the future the SDK may create
15417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15418// for more information on using Contexts.
15419func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
15420	req, out := c.ReplaceTopicRuleRequest(input)
15421	req.SetContext(ctx)
15422	req.ApplyOptions(opts...)
15423	return out, req.Send()
15424}
15425
15426const opSearchIndex = "SearchIndex"
15427
15428// SearchIndexRequest generates a "aws/request.Request" representing the
15429// client's request for the SearchIndex operation. The "output" return
15430// value will be populated with the request's response once the request completes
15431// successfully.
15432//
15433// Use "Send" method on the returned Request to send the API call to the service.
15434// the "output" return value is not valid until after Send returns without error.
15435//
15436// See SearchIndex for more information on using the SearchIndex
15437// API call, and error handling.
15438//
15439// This method is useful when you want to inject custom logic or configuration
15440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15441//
15442//
15443//    // Example sending a request using the SearchIndexRequest method.
15444//    req, resp := client.SearchIndexRequest(params)
15445//
15446//    err := req.Send()
15447//    if err == nil { // resp is now filled
15448//        fmt.Println(resp)
15449//    }
15450func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
15451	op := &request.Operation{
15452		Name:       opSearchIndex,
15453		HTTPMethod: "POST",
15454		HTTPPath:   "/indices/search",
15455	}
15456
15457	if input == nil {
15458		input = &SearchIndexInput{}
15459	}
15460
15461	output = &SearchIndexOutput{}
15462	req = c.newRequest(op, input, output)
15463	return
15464}
15465
15466// SearchIndex API operation for AWS IoT.
15467//
15468// The query search index.
15469//
15470// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15471// with awserr.Error's Code and Message methods to get detailed information about
15472// the error.
15473//
15474// See the AWS API reference guide for AWS IoT's
15475// API operation SearchIndex for usage and error information.
15476//
15477// Returned Error Types:
15478//   * InvalidRequestException
15479//   The request is not valid.
15480//
15481//   * ThrottlingException
15482//   The rate exceeds the limit.
15483//
15484//   * UnauthorizedException
15485//   You are not authorized to perform this operation.
15486//
15487//   * ServiceUnavailableException
15488//   The service is temporarily unavailable.
15489//
15490//   * InternalFailureException
15491//   An unexpected error has occurred.
15492//
15493//   * ResourceNotFoundException
15494//   The specified resource does not exist.
15495//
15496//   * InvalidQueryException
15497//   The query is invalid.
15498//
15499//   * IndexNotReadyException
15500//   The index is not ready.
15501//
15502func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
15503	req, out := c.SearchIndexRequest(input)
15504	return out, req.Send()
15505}
15506
15507// SearchIndexWithContext is the same as SearchIndex with the addition of
15508// the ability to pass a context and additional request options.
15509//
15510// See SearchIndex for details on how to use this API operation.
15511//
15512// The context must be non-nil and will be used for request cancellation. If
15513// the context is nil a panic will occur. In the future the SDK may create
15514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15515// for more information on using Contexts.
15516func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
15517	req, out := c.SearchIndexRequest(input)
15518	req.SetContext(ctx)
15519	req.ApplyOptions(opts...)
15520	return out, req.Send()
15521}
15522
15523const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
15524
15525// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
15526// client's request for the SetDefaultAuthorizer operation. The "output" return
15527// value will be populated with the request's response once the request completes
15528// successfully.
15529//
15530// Use "Send" method on the returned Request to send the API call to the service.
15531// the "output" return value is not valid until after Send returns without error.
15532//
15533// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
15534// API call, and error handling.
15535//
15536// This method is useful when you want to inject custom logic or configuration
15537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15538//
15539//
15540//    // Example sending a request using the SetDefaultAuthorizerRequest method.
15541//    req, resp := client.SetDefaultAuthorizerRequest(params)
15542//
15543//    err := req.Send()
15544//    if err == nil { // resp is now filled
15545//        fmt.Println(resp)
15546//    }
15547func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
15548	op := &request.Operation{
15549		Name:       opSetDefaultAuthorizer,
15550		HTTPMethod: "POST",
15551		HTTPPath:   "/default-authorizer",
15552	}
15553
15554	if input == nil {
15555		input = &SetDefaultAuthorizerInput{}
15556	}
15557
15558	output = &SetDefaultAuthorizerOutput{}
15559	req = c.newRequest(op, input, output)
15560	return
15561}
15562
15563// SetDefaultAuthorizer API operation for AWS IoT.
15564//
15565// Sets the default authorizer. This will be used if a websocket connection
15566// is made without specifying an authorizer.
15567//
15568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15569// with awserr.Error's Code and Message methods to get detailed information about
15570// the error.
15571//
15572// See the AWS API reference guide for AWS IoT's
15573// API operation SetDefaultAuthorizer for usage and error information.
15574//
15575// Returned Error Types:
15576//   * ResourceNotFoundException
15577//   The specified resource does not exist.
15578//
15579//   * InvalidRequestException
15580//   The request is not valid.
15581//
15582//   * ThrottlingException
15583//   The rate exceeds the limit.
15584//
15585//   * UnauthorizedException
15586//   You are not authorized to perform this operation.
15587//
15588//   * ServiceUnavailableException
15589//   The service is temporarily unavailable.
15590//
15591//   * InternalFailureException
15592//   An unexpected error has occurred.
15593//
15594//   * ResourceAlreadyExistsException
15595//   The resource already exists.
15596//
15597func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
15598	req, out := c.SetDefaultAuthorizerRequest(input)
15599	return out, req.Send()
15600}
15601
15602// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
15603// the ability to pass a context and additional request options.
15604//
15605// See SetDefaultAuthorizer for details on how to use this API operation.
15606//
15607// The context must be non-nil and will be used for request cancellation. If
15608// the context is nil a panic will occur. In the future the SDK may create
15609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15610// for more information on using Contexts.
15611func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
15612	req, out := c.SetDefaultAuthorizerRequest(input)
15613	req.SetContext(ctx)
15614	req.ApplyOptions(opts...)
15615	return out, req.Send()
15616}
15617
15618const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
15619
15620// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
15621// client's request for the SetDefaultPolicyVersion operation. The "output" return
15622// value will be populated with the request's response once the request completes
15623// successfully.
15624//
15625// Use "Send" method on the returned Request to send the API call to the service.
15626// the "output" return value is not valid until after Send returns without error.
15627//
15628// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
15629// API call, and error handling.
15630//
15631// This method is useful when you want to inject custom logic or configuration
15632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15633//
15634//
15635//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
15636//    req, resp := client.SetDefaultPolicyVersionRequest(params)
15637//
15638//    err := req.Send()
15639//    if err == nil { // resp is now filled
15640//        fmt.Println(resp)
15641//    }
15642func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
15643	op := &request.Operation{
15644		Name:       opSetDefaultPolicyVersion,
15645		HTTPMethod: "PATCH",
15646		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
15647	}
15648
15649	if input == nil {
15650		input = &SetDefaultPolicyVersionInput{}
15651	}
15652
15653	output = &SetDefaultPolicyVersionOutput{}
15654	req = c.newRequest(op, input, output)
15655	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15656	return
15657}
15658
15659// SetDefaultPolicyVersion API operation for AWS IoT.
15660//
15661// Sets the specified version of the specified policy as the policy's default
15662// (operative) version. This action affects all certificates to which the policy
15663// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy
15664// API.
15665//
15666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15667// with awserr.Error's Code and Message methods to get detailed information about
15668// the error.
15669//
15670// See the AWS API reference guide for AWS IoT's
15671// API operation SetDefaultPolicyVersion for usage and error information.
15672//
15673// Returned Error Types:
15674//   * ResourceNotFoundException
15675//   The specified resource does not exist.
15676//
15677//   * InvalidRequestException
15678//   The request is not valid.
15679//
15680//   * ThrottlingException
15681//   The rate exceeds the limit.
15682//
15683//   * UnauthorizedException
15684//   You are not authorized to perform this operation.
15685//
15686//   * ServiceUnavailableException
15687//   The service is temporarily unavailable.
15688//
15689//   * InternalFailureException
15690//   An unexpected error has occurred.
15691//
15692func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
15693	req, out := c.SetDefaultPolicyVersionRequest(input)
15694	return out, req.Send()
15695}
15696
15697// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
15698// the ability to pass a context and additional request options.
15699//
15700// See SetDefaultPolicyVersion for details on how to use this API operation.
15701//
15702// The context must be non-nil and will be used for request cancellation. If
15703// the context is nil a panic will occur. In the future the SDK may create
15704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15705// for more information on using Contexts.
15706func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
15707	req, out := c.SetDefaultPolicyVersionRequest(input)
15708	req.SetContext(ctx)
15709	req.ApplyOptions(opts...)
15710	return out, req.Send()
15711}
15712
15713const opSetLoggingOptions = "SetLoggingOptions"
15714
15715// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
15716// client's request for the SetLoggingOptions operation. The "output" return
15717// value will be populated with the request's response once the request completes
15718// successfully.
15719//
15720// Use "Send" method on the returned Request to send the API call to the service.
15721// the "output" return value is not valid until after Send returns without error.
15722//
15723// See SetLoggingOptions for more information on using the SetLoggingOptions
15724// API call, and error handling.
15725//
15726// This method is useful when you want to inject custom logic or configuration
15727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15728//
15729//
15730//    // Example sending a request using the SetLoggingOptionsRequest method.
15731//    req, resp := client.SetLoggingOptionsRequest(params)
15732//
15733//    err := req.Send()
15734//    if err == nil { // resp is now filled
15735//        fmt.Println(resp)
15736//    }
15737func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
15738	op := &request.Operation{
15739		Name:       opSetLoggingOptions,
15740		HTTPMethod: "POST",
15741		HTTPPath:   "/loggingOptions",
15742	}
15743
15744	if input == nil {
15745		input = &SetLoggingOptionsInput{}
15746	}
15747
15748	output = &SetLoggingOptionsOutput{}
15749	req = c.newRequest(op, input, output)
15750	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15751	return
15752}
15753
15754// SetLoggingOptions API operation for AWS IoT.
15755//
15756// Sets the logging options.
15757//
15758// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
15759//
15760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15761// with awserr.Error's Code and Message methods to get detailed information about
15762// the error.
15763//
15764// See the AWS API reference guide for AWS IoT's
15765// API operation SetLoggingOptions for usage and error information.
15766//
15767// Returned Error Types:
15768//   * InternalException
15769//   An unexpected error has occurred.
15770//
15771//   * InvalidRequestException
15772//   The request is not valid.
15773//
15774//   * ServiceUnavailableException
15775//   The service is temporarily unavailable.
15776//
15777func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
15778	req, out := c.SetLoggingOptionsRequest(input)
15779	return out, req.Send()
15780}
15781
15782// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
15783// the ability to pass a context and additional request options.
15784//
15785// See SetLoggingOptions for details on how to use this API operation.
15786//
15787// The context must be non-nil and will be used for request cancellation. If
15788// the context is nil a panic will occur. In the future the SDK may create
15789// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15790// for more information on using Contexts.
15791func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
15792	req, out := c.SetLoggingOptionsRequest(input)
15793	req.SetContext(ctx)
15794	req.ApplyOptions(opts...)
15795	return out, req.Send()
15796}
15797
15798const opSetV2LoggingLevel = "SetV2LoggingLevel"
15799
15800// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
15801// client's request for the SetV2LoggingLevel operation. The "output" return
15802// value will be populated with the request's response once the request completes
15803// successfully.
15804//
15805// Use "Send" method on the returned Request to send the API call to the service.
15806// the "output" return value is not valid until after Send returns without error.
15807//
15808// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
15809// API call, and error handling.
15810//
15811// This method is useful when you want to inject custom logic or configuration
15812// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15813//
15814//
15815//    // Example sending a request using the SetV2LoggingLevelRequest method.
15816//    req, resp := client.SetV2LoggingLevelRequest(params)
15817//
15818//    err := req.Send()
15819//    if err == nil { // resp is now filled
15820//        fmt.Println(resp)
15821//    }
15822func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
15823	op := &request.Operation{
15824		Name:       opSetV2LoggingLevel,
15825		HTTPMethod: "POST",
15826		HTTPPath:   "/v2LoggingLevel",
15827	}
15828
15829	if input == nil {
15830		input = &SetV2LoggingLevelInput{}
15831	}
15832
15833	output = &SetV2LoggingLevelOutput{}
15834	req = c.newRequest(op, input, output)
15835	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15836	return
15837}
15838
15839// SetV2LoggingLevel API operation for AWS IoT.
15840//
15841// Sets the logging level.
15842//
15843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15844// with awserr.Error's Code and Message methods to get detailed information about
15845// the error.
15846//
15847// See the AWS API reference guide for AWS IoT's
15848// API operation SetV2LoggingLevel for usage and error information.
15849//
15850// Returned Error Types:
15851//   * InternalException
15852//   An unexpected error has occurred.
15853//
15854//   * NotConfiguredException
15855//   The resource is not configured.
15856//
15857//   * InvalidRequestException
15858//   The request is not valid.
15859//
15860//   * ServiceUnavailableException
15861//   The service is temporarily unavailable.
15862//
15863func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
15864	req, out := c.SetV2LoggingLevelRequest(input)
15865	return out, req.Send()
15866}
15867
15868// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
15869// the ability to pass a context and additional request options.
15870//
15871// See SetV2LoggingLevel for details on how to use this API operation.
15872//
15873// The context must be non-nil and will be used for request cancellation. If
15874// the context is nil a panic will occur. In the future the SDK may create
15875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15876// for more information on using Contexts.
15877func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
15878	req, out := c.SetV2LoggingLevelRequest(input)
15879	req.SetContext(ctx)
15880	req.ApplyOptions(opts...)
15881	return out, req.Send()
15882}
15883
15884const opSetV2LoggingOptions = "SetV2LoggingOptions"
15885
15886// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
15887// client's request for the SetV2LoggingOptions operation. The "output" return
15888// value will be populated with the request's response once the request completes
15889// successfully.
15890//
15891// Use "Send" method on the returned Request to send the API call to the service.
15892// the "output" return value is not valid until after Send returns without error.
15893//
15894// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
15895// API call, and error handling.
15896//
15897// This method is useful when you want to inject custom logic or configuration
15898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15899//
15900//
15901//    // Example sending a request using the SetV2LoggingOptionsRequest method.
15902//    req, resp := client.SetV2LoggingOptionsRequest(params)
15903//
15904//    err := req.Send()
15905//    if err == nil { // resp is now filled
15906//        fmt.Println(resp)
15907//    }
15908func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
15909	op := &request.Operation{
15910		Name:       opSetV2LoggingOptions,
15911		HTTPMethod: "POST",
15912		HTTPPath:   "/v2LoggingOptions",
15913	}
15914
15915	if input == nil {
15916		input = &SetV2LoggingOptionsInput{}
15917	}
15918
15919	output = &SetV2LoggingOptionsOutput{}
15920	req = c.newRequest(op, input, output)
15921	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
15922	return
15923}
15924
15925// SetV2LoggingOptions API operation for AWS IoT.
15926//
15927// Sets the logging options for the V2 logging service.
15928//
15929// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15930// with awserr.Error's Code and Message methods to get detailed information about
15931// the error.
15932//
15933// See the AWS API reference guide for AWS IoT's
15934// API operation SetV2LoggingOptions for usage and error information.
15935//
15936// Returned Error Types:
15937//   * InternalException
15938//   An unexpected error has occurred.
15939//
15940//   * InvalidRequestException
15941//   The request is not valid.
15942//
15943//   * ServiceUnavailableException
15944//   The service is temporarily unavailable.
15945//
15946func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
15947	req, out := c.SetV2LoggingOptionsRequest(input)
15948	return out, req.Send()
15949}
15950
15951// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
15952// the ability to pass a context and additional request options.
15953//
15954// See SetV2LoggingOptions for details on how to use this API operation.
15955//
15956// The context must be non-nil and will be used for request cancellation. If
15957// the context is nil a panic will occur. In the future the SDK may create
15958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15959// for more information on using Contexts.
15960func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
15961	req, out := c.SetV2LoggingOptionsRequest(input)
15962	req.SetContext(ctx)
15963	req.ApplyOptions(opts...)
15964	return out, req.Send()
15965}
15966
15967const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
15968
15969// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
15970// client's request for the StartAuditMitigationActionsTask operation. The "output" return
15971// value will be populated with the request's response once the request completes
15972// successfully.
15973//
15974// Use "Send" method on the returned Request to send the API call to the service.
15975// the "output" return value is not valid until after Send returns without error.
15976//
15977// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
15978// API call, and error handling.
15979//
15980// This method is useful when you want to inject custom logic or configuration
15981// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15982//
15983//
15984//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
15985//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
15986//
15987//    err := req.Send()
15988//    if err == nil { // resp is now filled
15989//        fmt.Println(resp)
15990//    }
15991func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
15992	op := &request.Operation{
15993		Name:       opStartAuditMitigationActionsTask,
15994		HTTPMethod: "POST",
15995		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
15996	}
15997
15998	if input == nil {
15999		input = &StartAuditMitigationActionsTaskInput{}
16000	}
16001
16002	output = &StartAuditMitigationActionsTaskOutput{}
16003	req = c.newRequest(op, input, output)
16004	return
16005}
16006
16007// StartAuditMitigationActionsTask API operation for AWS IoT.
16008//
16009// Starts a task that applies a set of mitigation actions to the specified target.
16010//
16011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16012// with awserr.Error's Code and Message methods to get detailed information about
16013// the error.
16014//
16015// See the AWS API reference guide for AWS IoT's
16016// API operation StartAuditMitigationActionsTask for usage and error information.
16017//
16018// Returned Error Types:
16019//   * InvalidRequestException
16020//   The request is not valid.
16021//
16022//   * TaskAlreadyExistsException
16023//   This exception occurs if you attempt to start a task with the same task-id
16024//   as an existing task but with a different clientRequestToken.
16025//
16026//   * LimitExceededException
16027//   A limit has been exceeded.
16028//
16029//   * ThrottlingException
16030//   The rate exceeds the limit.
16031//
16032//   * InternalFailureException
16033//   An unexpected error has occurred.
16034//
16035func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
16036	req, out := c.StartAuditMitigationActionsTaskRequest(input)
16037	return out, req.Send()
16038}
16039
16040// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
16041// the ability to pass a context and additional request options.
16042//
16043// See StartAuditMitigationActionsTask for details on how to use this API operation.
16044//
16045// The context must be non-nil and will be used for request cancellation. If
16046// the context is nil a panic will occur. In the future the SDK may create
16047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16048// for more information on using Contexts.
16049func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
16050	req, out := c.StartAuditMitigationActionsTaskRequest(input)
16051	req.SetContext(ctx)
16052	req.ApplyOptions(opts...)
16053	return out, req.Send()
16054}
16055
16056const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
16057
16058// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
16059// client's request for the StartOnDemandAuditTask operation. The "output" return
16060// value will be populated with the request's response once the request completes
16061// successfully.
16062//
16063// Use "Send" method on the returned Request to send the API call to the service.
16064// the "output" return value is not valid until after Send returns without error.
16065//
16066// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
16067// API call, and error handling.
16068//
16069// This method is useful when you want to inject custom logic or configuration
16070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16071//
16072//
16073//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
16074//    req, resp := client.StartOnDemandAuditTaskRequest(params)
16075//
16076//    err := req.Send()
16077//    if err == nil { // resp is now filled
16078//        fmt.Println(resp)
16079//    }
16080func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
16081	op := &request.Operation{
16082		Name:       opStartOnDemandAuditTask,
16083		HTTPMethod: "POST",
16084		HTTPPath:   "/audit/tasks",
16085	}
16086
16087	if input == nil {
16088		input = &StartOnDemandAuditTaskInput{}
16089	}
16090
16091	output = &StartOnDemandAuditTaskOutput{}
16092	req = c.newRequest(op, input, output)
16093	return
16094}
16095
16096// StartOnDemandAuditTask API operation for AWS IoT.
16097//
16098// Starts an on-demand Device Defender audit.
16099//
16100// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16101// with awserr.Error's Code and Message methods to get detailed information about
16102// the error.
16103//
16104// See the AWS API reference guide for AWS IoT's
16105// API operation StartOnDemandAuditTask for usage and error information.
16106//
16107// Returned Error Types:
16108//   * InvalidRequestException
16109//   The request is not valid.
16110//
16111//   * ThrottlingException
16112//   The rate exceeds the limit.
16113//
16114//   * InternalFailureException
16115//   An unexpected error has occurred.
16116//
16117//   * LimitExceededException
16118//   A limit has been exceeded.
16119//
16120func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
16121	req, out := c.StartOnDemandAuditTaskRequest(input)
16122	return out, req.Send()
16123}
16124
16125// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
16126// the ability to pass a context and additional request options.
16127//
16128// See StartOnDemandAuditTask for details on how to use this API operation.
16129//
16130// The context must be non-nil and will be used for request cancellation. If
16131// the context is nil a panic will occur. In the future the SDK may create
16132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16133// for more information on using Contexts.
16134func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
16135	req, out := c.StartOnDemandAuditTaskRequest(input)
16136	req.SetContext(ctx)
16137	req.ApplyOptions(opts...)
16138	return out, req.Send()
16139}
16140
16141const opStartThingRegistrationTask = "StartThingRegistrationTask"
16142
16143// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
16144// client's request for the StartThingRegistrationTask operation. The "output" return
16145// value will be populated with the request's response once the request completes
16146// successfully.
16147//
16148// Use "Send" method on the returned Request to send the API call to the service.
16149// the "output" return value is not valid until after Send returns without error.
16150//
16151// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
16152// API call, and error handling.
16153//
16154// This method is useful when you want to inject custom logic or configuration
16155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16156//
16157//
16158//    // Example sending a request using the StartThingRegistrationTaskRequest method.
16159//    req, resp := client.StartThingRegistrationTaskRequest(params)
16160//
16161//    err := req.Send()
16162//    if err == nil { // resp is now filled
16163//        fmt.Println(resp)
16164//    }
16165func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
16166	op := &request.Operation{
16167		Name:       opStartThingRegistrationTask,
16168		HTTPMethod: "POST",
16169		HTTPPath:   "/thing-registration-tasks",
16170	}
16171
16172	if input == nil {
16173		input = &StartThingRegistrationTaskInput{}
16174	}
16175
16176	output = &StartThingRegistrationTaskOutput{}
16177	req = c.newRequest(op, input, output)
16178	return
16179}
16180
16181// StartThingRegistrationTask API operation for AWS IoT.
16182//
16183// Creates a bulk thing provisioning task.
16184//
16185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16186// with awserr.Error's Code and Message methods to get detailed information about
16187// the error.
16188//
16189// See the AWS API reference guide for AWS IoT's
16190// API operation StartThingRegistrationTask for usage and error information.
16191//
16192// Returned Error Types:
16193//   * InvalidRequestException
16194//   The request is not valid.
16195//
16196//   * ThrottlingException
16197//   The rate exceeds the limit.
16198//
16199//   * UnauthorizedException
16200//   You are not authorized to perform this operation.
16201//
16202//   * InternalFailureException
16203//   An unexpected error has occurred.
16204//
16205func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
16206	req, out := c.StartThingRegistrationTaskRequest(input)
16207	return out, req.Send()
16208}
16209
16210// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
16211// the ability to pass a context and additional request options.
16212//
16213// See StartThingRegistrationTask for details on how to use this API operation.
16214//
16215// The context must be non-nil and will be used for request cancellation. If
16216// the context is nil a panic will occur. In the future the SDK may create
16217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16218// for more information on using Contexts.
16219func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
16220	req, out := c.StartThingRegistrationTaskRequest(input)
16221	req.SetContext(ctx)
16222	req.ApplyOptions(opts...)
16223	return out, req.Send()
16224}
16225
16226const opStopThingRegistrationTask = "StopThingRegistrationTask"
16227
16228// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
16229// client's request for the StopThingRegistrationTask operation. The "output" return
16230// value will be populated with the request's response once the request completes
16231// successfully.
16232//
16233// Use "Send" method on the returned Request to send the API call to the service.
16234// the "output" return value is not valid until after Send returns without error.
16235//
16236// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
16237// API call, and error handling.
16238//
16239// This method is useful when you want to inject custom logic or configuration
16240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16241//
16242//
16243//    // Example sending a request using the StopThingRegistrationTaskRequest method.
16244//    req, resp := client.StopThingRegistrationTaskRequest(params)
16245//
16246//    err := req.Send()
16247//    if err == nil { // resp is now filled
16248//        fmt.Println(resp)
16249//    }
16250func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
16251	op := &request.Operation{
16252		Name:       opStopThingRegistrationTask,
16253		HTTPMethod: "PUT",
16254		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
16255	}
16256
16257	if input == nil {
16258		input = &StopThingRegistrationTaskInput{}
16259	}
16260
16261	output = &StopThingRegistrationTaskOutput{}
16262	req = c.newRequest(op, input, output)
16263	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
16264	return
16265}
16266
16267// StopThingRegistrationTask API operation for AWS IoT.
16268//
16269// Cancels a bulk thing provisioning task.
16270//
16271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16272// with awserr.Error's Code and Message methods to get detailed information about
16273// the error.
16274//
16275// See the AWS API reference guide for AWS IoT's
16276// API operation StopThingRegistrationTask for usage and error information.
16277//
16278// Returned Error Types:
16279//   * InvalidRequestException
16280//   The request is not valid.
16281//
16282//   * ThrottlingException
16283//   The rate exceeds the limit.
16284//
16285//   * UnauthorizedException
16286//   You are not authorized to perform this operation.
16287//
16288//   * InternalFailureException
16289//   An unexpected error has occurred.
16290//
16291//   * ResourceNotFoundException
16292//   The specified resource does not exist.
16293//
16294func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
16295	req, out := c.StopThingRegistrationTaskRequest(input)
16296	return out, req.Send()
16297}
16298
16299// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
16300// the ability to pass a context and additional request options.
16301//
16302// See StopThingRegistrationTask for details on how to use this API operation.
16303//
16304// The context must be non-nil and will be used for request cancellation. If
16305// the context is nil a panic will occur. In the future the SDK may create
16306// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16307// for more information on using Contexts.
16308func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
16309	req, out := c.StopThingRegistrationTaskRequest(input)
16310	req.SetContext(ctx)
16311	req.ApplyOptions(opts...)
16312	return out, req.Send()
16313}
16314
16315const opTagResource = "TagResource"
16316
16317// TagResourceRequest generates a "aws/request.Request" representing the
16318// client's request for the TagResource operation. The "output" return
16319// value will be populated with the request's response once the request completes
16320// successfully.
16321//
16322// Use "Send" method on the returned Request to send the API call to the service.
16323// the "output" return value is not valid until after Send returns without error.
16324//
16325// See TagResource for more information on using the TagResource
16326// API call, and error handling.
16327//
16328// This method is useful when you want to inject custom logic or configuration
16329// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16330//
16331//
16332//    // Example sending a request using the TagResourceRequest method.
16333//    req, resp := client.TagResourceRequest(params)
16334//
16335//    err := req.Send()
16336//    if err == nil { // resp is now filled
16337//        fmt.Println(resp)
16338//    }
16339func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
16340	op := &request.Operation{
16341		Name:       opTagResource,
16342		HTTPMethod: "POST",
16343		HTTPPath:   "/tags",
16344	}
16345
16346	if input == nil {
16347		input = &TagResourceInput{}
16348	}
16349
16350	output = &TagResourceOutput{}
16351	req = c.newRequest(op, input, output)
16352	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
16353	return
16354}
16355
16356// TagResource API operation for AWS IoT.
16357//
16358// Adds to or modifies the tags of the given resource. Tags are metadata which
16359// can be used to manage a resource.
16360//
16361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16362// with awserr.Error's Code and Message methods to get detailed information about
16363// the error.
16364//
16365// See the AWS API reference guide for AWS IoT's
16366// API operation TagResource for usage and error information.
16367//
16368// Returned Error Types:
16369//   * InvalidRequestException
16370//   The request is not valid.
16371//
16372//   * InternalFailureException
16373//   An unexpected error has occurred.
16374//
16375//   * ResourceNotFoundException
16376//   The specified resource does not exist.
16377//
16378//   * ThrottlingException
16379//   The rate exceeds the limit.
16380//
16381//   * LimitExceededException
16382//   A limit has been exceeded.
16383//
16384func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
16385	req, out := c.TagResourceRequest(input)
16386	return out, req.Send()
16387}
16388
16389// TagResourceWithContext is the same as TagResource with the addition of
16390// the ability to pass a context and additional request options.
16391//
16392// See TagResource for details on how to use this API operation.
16393//
16394// The context must be non-nil and will be used for request cancellation. If
16395// the context is nil a panic will occur. In the future the SDK may create
16396// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16397// for more information on using Contexts.
16398func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
16399	req, out := c.TagResourceRequest(input)
16400	req.SetContext(ctx)
16401	req.ApplyOptions(opts...)
16402	return out, req.Send()
16403}
16404
16405const opTestAuthorization = "TestAuthorization"
16406
16407// TestAuthorizationRequest generates a "aws/request.Request" representing the
16408// client's request for the TestAuthorization operation. The "output" return
16409// value will be populated with the request's response once the request completes
16410// successfully.
16411//
16412// Use "Send" method on the returned Request to send the API call to the service.
16413// the "output" return value is not valid until after Send returns without error.
16414//
16415// See TestAuthorization for more information on using the TestAuthorization
16416// API call, and error handling.
16417//
16418// This method is useful when you want to inject custom logic or configuration
16419// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16420//
16421//
16422//    // Example sending a request using the TestAuthorizationRequest method.
16423//    req, resp := client.TestAuthorizationRequest(params)
16424//
16425//    err := req.Send()
16426//    if err == nil { // resp is now filled
16427//        fmt.Println(resp)
16428//    }
16429func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
16430	op := &request.Operation{
16431		Name:       opTestAuthorization,
16432		HTTPMethod: "POST",
16433		HTTPPath:   "/test-authorization",
16434	}
16435
16436	if input == nil {
16437		input = &TestAuthorizationInput{}
16438	}
16439
16440	output = &TestAuthorizationOutput{}
16441	req = c.newRequest(op, input, output)
16442	return
16443}
16444
16445// TestAuthorization API operation for AWS IoT.
16446//
16447// Tests if a specified principal is authorized to perform an AWS IoT action
16448// on a specified resource. Use this to test and debug the authorization behavior
16449// of devices that connect to the AWS IoT device gateway.
16450//
16451// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16452// with awserr.Error's Code and Message methods to get detailed information about
16453// the error.
16454//
16455// See the AWS API reference guide for AWS IoT's
16456// API operation TestAuthorization for usage and error information.
16457//
16458// Returned Error Types:
16459//   * ResourceNotFoundException
16460//   The specified resource does not exist.
16461//
16462//   * InvalidRequestException
16463//   The request is not valid.
16464//
16465//   * ThrottlingException
16466//   The rate exceeds the limit.
16467//
16468//   * UnauthorizedException
16469//   You are not authorized to perform this operation.
16470//
16471//   * ServiceUnavailableException
16472//   The service is temporarily unavailable.
16473//
16474//   * InternalFailureException
16475//   An unexpected error has occurred.
16476//
16477//   * LimitExceededException
16478//   A limit has been exceeded.
16479//
16480func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
16481	req, out := c.TestAuthorizationRequest(input)
16482	return out, req.Send()
16483}
16484
16485// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
16486// the ability to pass a context and additional request options.
16487//
16488// See TestAuthorization for details on how to use this API operation.
16489//
16490// The context must be non-nil and will be used for request cancellation. If
16491// the context is nil a panic will occur. In the future the SDK may create
16492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16493// for more information on using Contexts.
16494func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
16495	req, out := c.TestAuthorizationRequest(input)
16496	req.SetContext(ctx)
16497	req.ApplyOptions(opts...)
16498	return out, req.Send()
16499}
16500
16501const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
16502
16503// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
16504// client's request for the TestInvokeAuthorizer operation. The "output" return
16505// value will be populated with the request's response once the request completes
16506// successfully.
16507//
16508// Use "Send" method on the returned Request to send the API call to the service.
16509// the "output" return value is not valid until after Send returns without error.
16510//
16511// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
16512// API call, and error handling.
16513//
16514// This method is useful when you want to inject custom logic or configuration
16515// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16516//
16517//
16518//    // Example sending a request using the TestInvokeAuthorizerRequest method.
16519//    req, resp := client.TestInvokeAuthorizerRequest(params)
16520//
16521//    err := req.Send()
16522//    if err == nil { // resp is now filled
16523//        fmt.Println(resp)
16524//    }
16525func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
16526	op := &request.Operation{
16527		Name:       opTestInvokeAuthorizer,
16528		HTTPMethod: "POST",
16529		HTTPPath:   "/authorizer/{authorizerName}/test",
16530	}
16531
16532	if input == nil {
16533		input = &TestInvokeAuthorizerInput{}
16534	}
16535
16536	output = &TestInvokeAuthorizerOutput{}
16537	req = c.newRequest(op, input, output)
16538	return
16539}
16540
16541// TestInvokeAuthorizer API operation for AWS IoT.
16542//
16543// Tests a custom authorization behavior by invoking a specified custom authorizer.
16544// Use this to test and debug the custom authorization behavior of devices that
16545// connect to the AWS IoT device gateway.
16546//
16547// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16548// with awserr.Error's Code and Message methods to get detailed information about
16549// the error.
16550//
16551// See the AWS API reference guide for AWS IoT's
16552// API operation TestInvokeAuthorizer for usage and error information.
16553//
16554// Returned Error Types:
16555//   * ResourceNotFoundException
16556//   The specified resource does not exist.
16557//
16558//   * InvalidRequestException
16559//   The request is not valid.
16560//
16561//   * ThrottlingException
16562//   The rate exceeds the limit.
16563//
16564//   * UnauthorizedException
16565//   You are not authorized to perform this operation.
16566//
16567//   * ServiceUnavailableException
16568//   The service is temporarily unavailable.
16569//
16570//   * InternalFailureException
16571//   An unexpected error has occurred.
16572//
16573//   * InvalidResponseException
16574//   The response is invalid.
16575//
16576func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
16577	req, out := c.TestInvokeAuthorizerRequest(input)
16578	return out, req.Send()
16579}
16580
16581// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
16582// the ability to pass a context and additional request options.
16583//
16584// See TestInvokeAuthorizer for details on how to use this API operation.
16585//
16586// The context must be non-nil and will be used for request cancellation. If
16587// the context is nil a panic will occur. In the future the SDK may create
16588// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16589// for more information on using Contexts.
16590func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
16591	req, out := c.TestInvokeAuthorizerRequest(input)
16592	req.SetContext(ctx)
16593	req.ApplyOptions(opts...)
16594	return out, req.Send()
16595}
16596
16597const opTransferCertificate = "TransferCertificate"
16598
16599// TransferCertificateRequest generates a "aws/request.Request" representing the
16600// client's request for the TransferCertificate operation. The "output" return
16601// value will be populated with the request's response once the request completes
16602// successfully.
16603//
16604// Use "Send" method on the returned Request to send the API call to the service.
16605// the "output" return value is not valid until after Send returns without error.
16606//
16607// See TransferCertificate for more information on using the TransferCertificate
16608// API call, and error handling.
16609//
16610// This method is useful when you want to inject custom logic or configuration
16611// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16612//
16613//
16614//    // Example sending a request using the TransferCertificateRequest method.
16615//    req, resp := client.TransferCertificateRequest(params)
16616//
16617//    err := req.Send()
16618//    if err == nil { // resp is now filled
16619//        fmt.Println(resp)
16620//    }
16621func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
16622	op := &request.Operation{
16623		Name:       opTransferCertificate,
16624		HTTPMethod: "PATCH",
16625		HTTPPath:   "/transfer-certificate/{certificateId}",
16626	}
16627
16628	if input == nil {
16629		input = &TransferCertificateInput{}
16630	}
16631
16632	output = &TransferCertificateOutput{}
16633	req = c.newRequest(op, input, output)
16634	return
16635}
16636
16637// TransferCertificate API operation for AWS IoT.
16638//
16639// Transfers the specified certificate to the specified AWS account.
16640//
16641// You can cancel the transfer until it is acknowledged by the recipient.
16642//
16643// No notification is sent to the transfer destination's account. It is up to
16644// the caller to notify the transfer target.
16645//
16646// The certificate being transferred must not be in the ACTIVE state. You can
16647// use the UpdateCertificate API to deactivate it.
16648//
16649// The certificate must not have any policies attached to it. You can use the
16650// DetachPrincipalPolicy API to detach them.
16651//
16652// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16653// with awserr.Error's Code and Message methods to get detailed information about
16654// the error.
16655//
16656// See the AWS API reference guide for AWS IoT's
16657// API operation TransferCertificate for usage and error information.
16658//
16659// Returned Error Types:
16660//   * InvalidRequestException
16661//   The request is not valid.
16662//
16663//   * ResourceNotFoundException
16664//   The specified resource does not exist.
16665//
16666//   * CertificateStateException
16667//   The certificate operation is not allowed.
16668//
16669//   * TransferConflictException
16670//   You can't transfer the certificate because authorization policies are still
16671//   attached.
16672//
16673//   * ThrottlingException
16674//   The rate exceeds the limit.
16675//
16676//   * UnauthorizedException
16677//   You are not authorized to perform this operation.
16678//
16679//   * ServiceUnavailableException
16680//   The service is temporarily unavailable.
16681//
16682//   * InternalFailureException
16683//   An unexpected error has occurred.
16684//
16685func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
16686	req, out := c.TransferCertificateRequest(input)
16687	return out, req.Send()
16688}
16689
16690// TransferCertificateWithContext is the same as TransferCertificate with the addition of
16691// the ability to pass a context and additional request options.
16692//
16693// See TransferCertificate for details on how to use this API operation.
16694//
16695// The context must be non-nil and will be used for request cancellation. If
16696// the context is nil a panic will occur. In the future the SDK may create
16697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16698// for more information on using Contexts.
16699func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
16700	req, out := c.TransferCertificateRequest(input)
16701	req.SetContext(ctx)
16702	req.ApplyOptions(opts...)
16703	return out, req.Send()
16704}
16705
16706const opUntagResource = "UntagResource"
16707
16708// UntagResourceRequest generates a "aws/request.Request" representing the
16709// client's request for the UntagResource operation. The "output" return
16710// value will be populated with the request's response once the request completes
16711// successfully.
16712//
16713// Use "Send" method on the returned Request to send the API call to the service.
16714// the "output" return value is not valid until after Send returns without error.
16715//
16716// See UntagResource for more information on using the UntagResource
16717// API call, and error handling.
16718//
16719// This method is useful when you want to inject custom logic or configuration
16720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16721//
16722//
16723//    // Example sending a request using the UntagResourceRequest method.
16724//    req, resp := client.UntagResourceRequest(params)
16725//
16726//    err := req.Send()
16727//    if err == nil { // resp is now filled
16728//        fmt.Println(resp)
16729//    }
16730func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
16731	op := &request.Operation{
16732		Name:       opUntagResource,
16733		HTTPMethod: "POST",
16734		HTTPPath:   "/untag",
16735	}
16736
16737	if input == nil {
16738		input = &UntagResourceInput{}
16739	}
16740
16741	output = &UntagResourceOutput{}
16742	req = c.newRequest(op, input, output)
16743	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
16744	return
16745}
16746
16747// UntagResource API operation for AWS IoT.
16748//
16749// Removes the given tags (metadata) from the resource.
16750//
16751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16752// with awserr.Error's Code and Message methods to get detailed information about
16753// the error.
16754//
16755// See the AWS API reference guide for AWS IoT's
16756// API operation UntagResource for usage and error information.
16757//
16758// Returned Error Types:
16759//   * InvalidRequestException
16760//   The request is not valid.
16761//
16762//   * InternalFailureException
16763//   An unexpected error has occurred.
16764//
16765//   * ResourceNotFoundException
16766//   The specified resource does not exist.
16767//
16768//   * ThrottlingException
16769//   The rate exceeds the limit.
16770//
16771func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
16772	req, out := c.UntagResourceRequest(input)
16773	return out, req.Send()
16774}
16775
16776// UntagResourceWithContext is the same as UntagResource with the addition of
16777// the ability to pass a context and additional request options.
16778//
16779// See UntagResource for details on how to use this API operation.
16780//
16781// The context must be non-nil and will be used for request cancellation. If
16782// the context is nil a panic will occur. In the future the SDK may create
16783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16784// for more information on using Contexts.
16785func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
16786	req, out := c.UntagResourceRequest(input)
16787	req.SetContext(ctx)
16788	req.ApplyOptions(opts...)
16789	return out, req.Send()
16790}
16791
16792const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
16793
16794// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
16795// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
16796// value will be populated with the request's response once the request completes
16797// successfully.
16798//
16799// Use "Send" method on the returned Request to send the API call to the service.
16800// the "output" return value is not valid until after Send returns without error.
16801//
16802// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
16803// API call, and error handling.
16804//
16805// This method is useful when you want to inject custom logic or configuration
16806// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16807//
16808//
16809//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
16810//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
16811//
16812//    err := req.Send()
16813//    if err == nil { // resp is now filled
16814//        fmt.Println(resp)
16815//    }
16816func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
16817	op := &request.Operation{
16818		Name:       opUpdateAccountAuditConfiguration,
16819		HTTPMethod: "PATCH",
16820		HTTPPath:   "/audit/configuration",
16821	}
16822
16823	if input == nil {
16824		input = &UpdateAccountAuditConfigurationInput{}
16825	}
16826
16827	output = &UpdateAccountAuditConfigurationOutput{}
16828	req = c.newRequest(op, input, output)
16829	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
16830	return
16831}
16832
16833// UpdateAccountAuditConfiguration API operation for AWS IoT.
16834//
16835// Configures or reconfigures the Device Defender audit settings for this account.
16836// Settings include how audit notifications are sent and which audit checks
16837// are enabled or disabled.
16838//
16839// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16840// with awserr.Error's Code and Message methods to get detailed information about
16841// the error.
16842//
16843// See the AWS API reference guide for AWS IoT's
16844// API operation UpdateAccountAuditConfiguration for usage and error information.
16845//
16846// Returned Error Types:
16847//   * InvalidRequestException
16848//   The request is not valid.
16849//
16850//   * ThrottlingException
16851//   The rate exceeds the limit.
16852//
16853//   * InternalFailureException
16854//   An unexpected error has occurred.
16855//
16856func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
16857	req, out := c.UpdateAccountAuditConfigurationRequest(input)
16858	return out, req.Send()
16859}
16860
16861// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
16862// the ability to pass a context and additional request options.
16863//
16864// See UpdateAccountAuditConfiguration for details on how to use this API operation.
16865//
16866// The context must be non-nil and will be used for request cancellation. If
16867// the context is nil a panic will occur. In the future the SDK may create
16868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16869// for more information on using Contexts.
16870func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
16871	req, out := c.UpdateAccountAuditConfigurationRequest(input)
16872	req.SetContext(ctx)
16873	req.ApplyOptions(opts...)
16874	return out, req.Send()
16875}
16876
16877const opUpdateAuthorizer = "UpdateAuthorizer"
16878
16879// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
16880// client's request for the UpdateAuthorizer operation. The "output" return
16881// value will be populated with the request's response once the request completes
16882// successfully.
16883//
16884// Use "Send" method on the returned Request to send the API call to the service.
16885// the "output" return value is not valid until after Send returns without error.
16886//
16887// See UpdateAuthorizer for more information on using the UpdateAuthorizer
16888// API call, and error handling.
16889//
16890// This method is useful when you want to inject custom logic or configuration
16891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16892//
16893//
16894//    // Example sending a request using the UpdateAuthorizerRequest method.
16895//    req, resp := client.UpdateAuthorizerRequest(params)
16896//
16897//    err := req.Send()
16898//    if err == nil { // resp is now filled
16899//        fmt.Println(resp)
16900//    }
16901func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
16902	op := &request.Operation{
16903		Name:       opUpdateAuthorizer,
16904		HTTPMethod: "PUT",
16905		HTTPPath:   "/authorizer/{authorizerName}",
16906	}
16907
16908	if input == nil {
16909		input = &UpdateAuthorizerInput{}
16910	}
16911
16912	output = &UpdateAuthorizerOutput{}
16913	req = c.newRequest(op, input, output)
16914	return
16915}
16916
16917// UpdateAuthorizer API operation for AWS IoT.
16918//
16919// Updates an authorizer.
16920//
16921// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16922// with awserr.Error's Code and Message methods to get detailed information about
16923// the error.
16924//
16925// See the AWS API reference guide for AWS IoT's
16926// API operation UpdateAuthorizer for usage and error information.
16927//
16928// Returned Error Types:
16929//   * ResourceNotFoundException
16930//   The specified resource does not exist.
16931//
16932//   * InvalidRequestException
16933//   The request is not valid.
16934//
16935//   * LimitExceededException
16936//   A limit has been exceeded.
16937//
16938//   * ThrottlingException
16939//   The rate exceeds the limit.
16940//
16941//   * UnauthorizedException
16942//   You are not authorized to perform this operation.
16943//
16944//   * ServiceUnavailableException
16945//   The service is temporarily unavailable.
16946//
16947//   * InternalFailureException
16948//   An unexpected error has occurred.
16949//
16950func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
16951	req, out := c.UpdateAuthorizerRequest(input)
16952	return out, req.Send()
16953}
16954
16955// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
16956// the ability to pass a context and additional request options.
16957//
16958// See UpdateAuthorizer for details on how to use this API operation.
16959//
16960// The context must be non-nil and will be used for request cancellation. If
16961// the context is nil a panic will occur. In the future the SDK may create
16962// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16963// for more information on using Contexts.
16964func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
16965	req, out := c.UpdateAuthorizerRequest(input)
16966	req.SetContext(ctx)
16967	req.ApplyOptions(opts...)
16968	return out, req.Send()
16969}
16970
16971const opUpdateBillingGroup = "UpdateBillingGroup"
16972
16973// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
16974// client's request for the UpdateBillingGroup operation. The "output" return
16975// value will be populated with the request's response once the request completes
16976// successfully.
16977//
16978// Use "Send" method on the returned Request to send the API call to the service.
16979// the "output" return value is not valid until after Send returns without error.
16980//
16981// See UpdateBillingGroup for more information on using the UpdateBillingGroup
16982// API call, and error handling.
16983//
16984// This method is useful when you want to inject custom logic or configuration
16985// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16986//
16987//
16988//    // Example sending a request using the UpdateBillingGroupRequest method.
16989//    req, resp := client.UpdateBillingGroupRequest(params)
16990//
16991//    err := req.Send()
16992//    if err == nil { // resp is now filled
16993//        fmt.Println(resp)
16994//    }
16995func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
16996	op := &request.Operation{
16997		Name:       opUpdateBillingGroup,
16998		HTTPMethod: "PATCH",
16999		HTTPPath:   "/billing-groups/{billingGroupName}",
17000	}
17001
17002	if input == nil {
17003		input = &UpdateBillingGroupInput{}
17004	}
17005
17006	output = &UpdateBillingGroupOutput{}
17007	req = c.newRequest(op, input, output)
17008	return
17009}
17010
17011// UpdateBillingGroup API operation for AWS IoT.
17012//
17013// Updates information about the billing group.
17014//
17015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17016// with awserr.Error's Code and Message methods to get detailed information about
17017// the error.
17018//
17019// See the AWS API reference guide for AWS IoT's
17020// API operation UpdateBillingGroup for usage and error information.
17021//
17022// Returned Error Types:
17023//   * InvalidRequestException
17024//   The request is not valid.
17025//
17026//   * VersionConflictException
17027//   An exception thrown when the version of an entity specified with the expectedVersion
17028//   parameter does not match the latest version in the system.
17029//
17030//   * ThrottlingException
17031//   The rate exceeds the limit.
17032//
17033//   * InternalFailureException
17034//   An unexpected error has occurred.
17035//
17036//   * ResourceNotFoundException
17037//   The specified resource does not exist.
17038//
17039func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
17040	req, out := c.UpdateBillingGroupRequest(input)
17041	return out, req.Send()
17042}
17043
17044// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
17045// the ability to pass a context and additional request options.
17046//
17047// See UpdateBillingGroup for details on how to use this API operation.
17048//
17049// The context must be non-nil and will be used for request cancellation. If
17050// the context is nil a panic will occur. In the future the SDK may create
17051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17052// for more information on using Contexts.
17053func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
17054	req, out := c.UpdateBillingGroupRequest(input)
17055	req.SetContext(ctx)
17056	req.ApplyOptions(opts...)
17057	return out, req.Send()
17058}
17059
17060const opUpdateCACertificate = "UpdateCACertificate"
17061
17062// UpdateCACertificateRequest generates a "aws/request.Request" representing the
17063// client's request for the UpdateCACertificate operation. The "output" return
17064// value will be populated with the request's response once the request completes
17065// successfully.
17066//
17067// Use "Send" method on the returned Request to send the API call to the service.
17068// the "output" return value is not valid until after Send returns without error.
17069//
17070// See UpdateCACertificate for more information on using the UpdateCACertificate
17071// API call, and error handling.
17072//
17073// This method is useful when you want to inject custom logic or configuration
17074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17075//
17076//
17077//    // Example sending a request using the UpdateCACertificateRequest method.
17078//    req, resp := client.UpdateCACertificateRequest(params)
17079//
17080//    err := req.Send()
17081//    if err == nil { // resp is now filled
17082//        fmt.Println(resp)
17083//    }
17084func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
17085	op := &request.Operation{
17086		Name:       opUpdateCACertificate,
17087		HTTPMethod: "PUT",
17088		HTTPPath:   "/cacertificate/{caCertificateId}",
17089	}
17090
17091	if input == nil {
17092		input = &UpdateCACertificateInput{}
17093	}
17094
17095	output = &UpdateCACertificateOutput{}
17096	req = c.newRequest(op, input, output)
17097	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17098	return
17099}
17100
17101// UpdateCACertificate API operation for AWS IoT.
17102//
17103// Updates a registered CA certificate.
17104//
17105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17106// with awserr.Error's Code and Message methods to get detailed information about
17107// the error.
17108//
17109// See the AWS API reference guide for AWS IoT's
17110// API operation UpdateCACertificate for usage and error information.
17111//
17112// Returned Error Types:
17113//   * ResourceNotFoundException
17114//   The specified resource does not exist.
17115//
17116//   * InvalidRequestException
17117//   The request is not valid.
17118//
17119//   * ThrottlingException
17120//   The rate exceeds the limit.
17121//
17122//   * UnauthorizedException
17123//   You are not authorized to perform this operation.
17124//
17125//   * ServiceUnavailableException
17126//   The service is temporarily unavailable.
17127//
17128//   * InternalFailureException
17129//   An unexpected error has occurred.
17130//
17131func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
17132	req, out := c.UpdateCACertificateRequest(input)
17133	return out, req.Send()
17134}
17135
17136// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
17137// the ability to pass a context and additional request options.
17138//
17139// See UpdateCACertificate for details on how to use this API operation.
17140//
17141// The context must be non-nil and will be used for request cancellation. If
17142// the context is nil a panic will occur. In the future the SDK may create
17143// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17144// for more information on using Contexts.
17145func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
17146	req, out := c.UpdateCACertificateRequest(input)
17147	req.SetContext(ctx)
17148	req.ApplyOptions(opts...)
17149	return out, req.Send()
17150}
17151
17152const opUpdateCertificate = "UpdateCertificate"
17153
17154// UpdateCertificateRequest generates a "aws/request.Request" representing the
17155// client's request for the UpdateCertificate operation. The "output" return
17156// value will be populated with the request's response once the request completes
17157// successfully.
17158//
17159// Use "Send" method on the returned Request to send the API call to the service.
17160// the "output" return value is not valid until after Send returns without error.
17161//
17162// See UpdateCertificate for more information on using the UpdateCertificate
17163// API call, and error handling.
17164//
17165// This method is useful when you want to inject custom logic or configuration
17166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17167//
17168//
17169//    // Example sending a request using the UpdateCertificateRequest method.
17170//    req, resp := client.UpdateCertificateRequest(params)
17171//
17172//    err := req.Send()
17173//    if err == nil { // resp is now filled
17174//        fmt.Println(resp)
17175//    }
17176func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
17177	op := &request.Operation{
17178		Name:       opUpdateCertificate,
17179		HTTPMethod: "PUT",
17180		HTTPPath:   "/certificates/{certificateId}",
17181	}
17182
17183	if input == nil {
17184		input = &UpdateCertificateInput{}
17185	}
17186
17187	output = &UpdateCertificateOutput{}
17188	req = c.newRequest(op, input, output)
17189	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17190	return
17191}
17192
17193// UpdateCertificate API operation for AWS IoT.
17194//
17195// Updates the status of the specified certificate. This operation is idempotent.
17196//
17197// Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect
17198// currently connected devices, but these devices will be unable to reconnect.
17199//
17200// The ACTIVE state is required to authenticate devices connecting to AWS IoT
17201// using a certificate.
17202//
17203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17204// with awserr.Error's Code and Message methods to get detailed information about
17205// the error.
17206//
17207// See the AWS API reference guide for AWS IoT's
17208// API operation UpdateCertificate for usage and error information.
17209//
17210// Returned Error Types:
17211//   * ResourceNotFoundException
17212//   The specified resource does not exist.
17213//
17214//   * CertificateStateException
17215//   The certificate operation is not allowed.
17216//
17217//   * InvalidRequestException
17218//   The request is not valid.
17219//
17220//   * ThrottlingException
17221//   The rate exceeds the limit.
17222//
17223//   * UnauthorizedException
17224//   You are not authorized to perform this operation.
17225//
17226//   * ServiceUnavailableException
17227//   The service is temporarily unavailable.
17228//
17229//   * InternalFailureException
17230//   An unexpected error has occurred.
17231//
17232func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
17233	req, out := c.UpdateCertificateRequest(input)
17234	return out, req.Send()
17235}
17236
17237// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
17238// the ability to pass a context and additional request options.
17239//
17240// See UpdateCertificate for details on how to use this API operation.
17241//
17242// The context must be non-nil and will be used for request cancellation. If
17243// the context is nil a panic will occur. In the future the SDK may create
17244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17245// for more information on using Contexts.
17246func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
17247	req, out := c.UpdateCertificateRequest(input)
17248	req.SetContext(ctx)
17249	req.ApplyOptions(opts...)
17250	return out, req.Send()
17251}
17252
17253const opUpdateDimension = "UpdateDimension"
17254
17255// UpdateDimensionRequest generates a "aws/request.Request" representing the
17256// client's request for the UpdateDimension operation. The "output" return
17257// value will be populated with the request's response once the request completes
17258// successfully.
17259//
17260// Use "Send" method on the returned Request to send the API call to the service.
17261// the "output" return value is not valid until after Send returns without error.
17262//
17263// See UpdateDimension for more information on using the UpdateDimension
17264// API call, and error handling.
17265//
17266// This method is useful when you want to inject custom logic or configuration
17267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17268//
17269//
17270//    // Example sending a request using the UpdateDimensionRequest method.
17271//    req, resp := client.UpdateDimensionRequest(params)
17272//
17273//    err := req.Send()
17274//    if err == nil { // resp is now filled
17275//        fmt.Println(resp)
17276//    }
17277func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
17278	op := &request.Operation{
17279		Name:       opUpdateDimension,
17280		HTTPMethod: "PATCH",
17281		HTTPPath:   "/dimensions/{name}",
17282	}
17283
17284	if input == nil {
17285		input = &UpdateDimensionInput{}
17286	}
17287
17288	output = &UpdateDimensionOutput{}
17289	req = c.newRequest(op, input, output)
17290	return
17291}
17292
17293// UpdateDimension API operation for AWS IoT.
17294//
17295// Updates the definition for a dimension. You cannot change the type of a dimension
17296// after it is created (you can delete it and re-create it).
17297//
17298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17299// with awserr.Error's Code and Message methods to get detailed information about
17300// the error.
17301//
17302// See the AWS API reference guide for AWS IoT's
17303// API operation UpdateDimension for usage and error information.
17304//
17305// Returned Error Types:
17306//   * InternalFailureException
17307//   An unexpected error has occurred.
17308//
17309//   * InvalidRequestException
17310//   The request is not valid.
17311//
17312//   * ResourceNotFoundException
17313//   The specified resource does not exist.
17314//
17315//   * ThrottlingException
17316//   The rate exceeds the limit.
17317//
17318func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
17319	req, out := c.UpdateDimensionRequest(input)
17320	return out, req.Send()
17321}
17322
17323// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
17324// the ability to pass a context and additional request options.
17325//
17326// See UpdateDimension for details on how to use this API operation.
17327//
17328// The context must be non-nil and will be used for request cancellation. If
17329// the context is nil a panic will occur. In the future the SDK may create
17330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17331// for more information on using Contexts.
17332func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
17333	req, out := c.UpdateDimensionRequest(input)
17334	req.SetContext(ctx)
17335	req.ApplyOptions(opts...)
17336	return out, req.Send()
17337}
17338
17339const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
17340
17341// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
17342// client's request for the UpdateDomainConfiguration operation. The "output" return
17343// value will be populated with the request's response once the request completes
17344// successfully.
17345//
17346// Use "Send" method on the returned Request to send the API call to the service.
17347// the "output" return value is not valid until after Send returns without error.
17348//
17349// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
17350// API call, and error handling.
17351//
17352// This method is useful when you want to inject custom logic or configuration
17353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17354//
17355//
17356//    // Example sending a request using the UpdateDomainConfigurationRequest method.
17357//    req, resp := client.UpdateDomainConfigurationRequest(params)
17358//
17359//    err := req.Send()
17360//    if err == nil { // resp is now filled
17361//        fmt.Println(resp)
17362//    }
17363func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
17364	op := &request.Operation{
17365		Name:       opUpdateDomainConfiguration,
17366		HTTPMethod: "PUT",
17367		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
17368	}
17369
17370	if input == nil {
17371		input = &UpdateDomainConfigurationInput{}
17372	}
17373
17374	output = &UpdateDomainConfigurationOutput{}
17375	req = c.newRequest(op, input, output)
17376	return
17377}
17378
17379// UpdateDomainConfiguration API operation for AWS IoT.
17380//
17381// Updates values stored in the domain configuration. Domain configurations
17382// for default endpoints can't be updated.
17383//
17384// The domain configuration feature is in public preview and is subject to change.
17385//
17386// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17387// with awserr.Error's Code and Message methods to get detailed information about
17388// the error.
17389//
17390// See the AWS API reference guide for AWS IoT's
17391// API operation UpdateDomainConfiguration for usage and error information.
17392//
17393// Returned Error Types:
17394//   * ResourceNotFoundException
17395//   The specified resource does not exist.
17396//
17397//   * CertificateValidationException
17398//   The certificate is invalid.
17399//
17400//   * InvalidRequestException
17401//   The request is not valid.
17402//
17403//   * ThrottlingException
17404//   The rate exceeds the limit.
17405//
17406//   * UnauthorizedException
17407//   You are not authorized to perform this operation.
17408//
17409//   * ServiceUnavailableException
17410//   The service is temporarily unavailable.
17411//
17412//   * InternalFailureException
17413//   An unexpected error has occurred.
17414//
17415func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
17416	req, out := c.UpdateDomainConfigurationRequest(input)
17417	return out, req.Send()
17418}
17419
17420// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
17421// the ability to pass a context and additional request options.
17422//
17423// See UpdateDomainConfiguration for details on how to use this API operation.
17424//
17425// The context must be non-nil and will be used for request cancellation. If
17426// the context is nil a panic will occur. In the future the SDK may create
17427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17428// for more information on using Contexts.
17429func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
17430	req, out := c.UpdateDomainConfigurationRequest(input)
17431	req.SetContext(ctx)
17432	req.ApplyOptions(opts...)
17433	return out, req.Send()
17434}
17435
17436const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
17437
17438// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
17439// client's request for the UpdateDynamicThingGroup operation. The "output" return
17440// value will be populated with the request's response once the request completes
17441// successfully.
17442//
17443// Use "Send" method on the returned Request to send the API call to the service.
17444// the "output" return value is not valid until after Send returns without error.
17445//
17446// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
17447// API call, and error handling.
17448//
17449// This method is useful when you want to inject custom logic or configuration
17450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17451//
17452//
17453//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
17454//    req, resp := client.UpdateDynamicThingGroupRequest(params)
17455//
17456//    err := req.Send()
17457//    if err == nil { // resp is now filled
17458//        fmt.Println(resp)
17459//    }
17460func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
17461	op := &request.Operation{
17462		Name:       opUpdateDynamicThingGroup,
17463		HTTPMethod: "PATCH",
17464		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
17465	}
17466
17467	if input == nil {
17468		input = &UpdateDynamicThingGroupInput{}
17469	}
17470
17471	output = &UpdateDynamicThingGroupOutput{}
17472	req = c.newRequest(op, input, output)
17473	return
17474}
17475
17476// UpdateDynamicThingGroup API operation for AWS IoT.
17477//
17478// Updates a dynamic thing group.
17479//
17480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17481// with awserr.Error's Code and Message methods to get detailed information about
17482// the error.
17483//
17484// See the AWS API reference guide for AWS IoT's
17485// API operation UpdateDynamicThingGroup for usage and error information.
17486//
17487// Returned Error Types:
17488//   * InvalidRequestException
17489//   The request is not valid.
17490//
17491//   * VersionConflictException
17492//   An exception thrown when the version of an entity specified with the expectedVersion
17493//   parameter does not match the latest version in the system.
17494//
17495//   * ThrottlingException
17496//   The rate exceeds the limit.
17497//
17498//   * InternalFailureException
17499//   An unexpected error has occurred.
17500//
17501//   * ResourceNotFoundException
17502//   The specified resource does not exist.
17503//
17504//   * InvalidQueryException
17505//   The query is invalid.
17506//
17507func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
17508	req, out := c.UpdateDynamicThingGroupRequest(input)
17509	return out, req.Send()
17510}
17511
17512// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
17513// the ability to pass a context and additional request options.
17514//
17515// See UpdateDynamicThingGroup for details on how to use this API operation.
17516//
17517// The context must be non-nil and will be used for request cancellation. If
17518// the context is nil a panic will occur. In the future the SDK may create
17519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17520// for more information on using Contexts.
17521func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
17522	req, out := c.UpdateDynamicThingGroupRequest(input)
17523	req.SetContext(ctx)
17524	req.ApplyOptions(opts...)
17525	return out, req.Send()
17526}
17527
17528const opUpdateEventConfigurations = "UpdateEventConfigurations"
17529
17530// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
17531// client's request for the UpdateEventConfigurations operation. The "output" return
17532// value will be populated with the request's response once the request completes
17533// successfully.
17534//
17535// Use "Send" method on the returned Request to send the API call to the service.
17536// the "output" return value is not valid until after Send returns without error.
17537//
17538// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
17539// API call, and error handling.
17540//
17541// This method is useful when you want to inject custom logic or configuration
17542// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17543//
17544//
17545//    // Example sending a request using the UpdateEventConfigurationsRequest method.
17546//    req, resp := client.UpdateEventConfigurationsRequest(params)
17547//
17548//    err := req.Send()
17549//    if err == nil { // resp is now filled
17550//        fmt.Println(resp)
17551//    }
17552func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
17553	op := &request.Operation{
17554		Name:       opUpdateEventConfigurations,
17555		HTTPMethod: "PATCH",
17556		HTTPPath:   "/event-configurations",
17557	}
17558
17559	if input == nil {
17560		input = &UpdateEventConfigurationsInput{}
17561	}
17562
17563	output = &UpdateEventConfigurationsOutput{}
17564	req = c.newRequest(op, input, output)
17565	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17566	return
17567}
17568
17569// UpdateEventConfigurations API operation for AWS IoT.
17570//
17571// Updates the event configurations.
17572//
17573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17574// with awserr.Error's Code and Message methods to get detailed information about
17575// the error.
17576//
17577// See the AWS API reference guide for AWS IoT's
17578// API operation UpdateEventConfigurations for usage and error information.
17579//
17580// Returned Error Types:
17581//   * InvalidRequestException
17582//   The request is not valid.
17583//
17584//   * InternalFailureException
17585//   An unexpected error has occurred.
17586//
17587//   * ThrottlingException
17588//   The rate exceeds the limit.
17589//
17590func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
17591	req, out := c.UpdateEventConfigurationsRequest(input)
17592	return out, req.Send()
17593}
17594
17595// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
17596// the ability to pass a context and additional request options.
17597//
17598// See UpdateEventConfigurations for details on how to use this API operation.
17599//
17600// The context must be non-nil and will be used for request cancellation. If
17601// the context is nil a panic will occur. In the future the SDK may create
17602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17603// for more information on using Contexts.
17604func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
17605	req, out := c.UpdateEventConfigurationsRequest(input)
17606	req.SetContext(ctx)
17607	req.ApplyOptions(opts...)
17608	return out, req.Send()
17609}
17610
17611const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
17612
17613// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
17614// client's request for the UpdateIndexingConfiguration operation. The "output" return
17615// value will be populated with the request's response once the request completes
17616// successfully.
17617//
17618// Use "Send" method on the returned Request to send the API call to the service.
17619// the "output" return value is not valid until after Send returns without error.
17620//
17621// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
17622// API call, and error handling.
17623//
17624// This method is useful when you want to inject custom logic or configuration
17625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17626//
17627//
17628//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
17629//    req, resp := client.UpdateIndexingConfigurationRequest(params)
17630//
17631//    err := req.Send()
17632//    if err == nil { // resp is now filled
17633//        fmt.Println(resp)
17634//    }
17635func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
17636	op := &request.Operation{
17637		Name:       opUpdateIndexingConfiguration,
17638		HTTPMethod: "POST",
17639		HTTPPath:   "/indexing/config",
17640	}
17641
17642	if input == nil {
17643		input = &UpdateIndexingConfigurationInput{}
17644	}
17645
17646	output = &UpdateIndexingConfigurationOutput{}
17647	req = c.newRequest(op, input, output)
17648	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17649	return
17650}
17651
17652// UpdateIndexingConfiguration API operation for AWS IoT.
17653//
17654// Updates the search configuration.
17655//
17656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17657// with awserr.Error's Code and Message methods to get detailed information about
17658// the error.
17659//
17660// See the AWS API reference guide for AWS IoT's
17661// API operation UpdateIndexingConfiguration for usage and error information.
17662//
17663// Returned Error Types:
17664//   * InvalidRequestException
17665//   The request is not valid.
17666//
17667//   * ThrottlingException
17668//   The rate exceeds the limit.
17669//
17670//   * UnauthorizedException
17671//   You are not authorized to perform this operation.
17672//
17673//   * ServiceUnavailableException
17674//   The service is temporarily unavailable.
17675//
17676//   * InternalFailureException
17677//   An unexpected error has occurred.
17678//
17679func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
17680	req, out := c.UpdateIndexingConfigurationRequest(input)
17681	return out, req.Send()
17682}
17683
17684// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
17685// the ability to pass a context and additional request options.
17686//
17687// See UpdateIndexingConfiguration for details on how to use this API operation.
17688//
17689// The context must be non-nil and will be used for request cancellation. If
17690// the context is nil a panic will occur. In the future the SDK may create
17691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17692// for more information on using Contexts.
17693func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
17694	req, out := c.UpdateIndexingConfigurationRequest(input)
17695	req.SetContext(ctx)
17696	req.ApplyOptions(opts...)
17697	return out, req.Send()
17698}
17699
17700const opUpdateJob = "UpdateJob"
17701
17702// UpdateJobRequest generates a "aws/request.Request" representing the
17703// client's request for the UpdateJob operation. The "output" return
17704// value will be populated with the request's response once the request completes
17705// successfully.
17706//
17707// Use "Send" method on the returned Request to send the API call to the service.
17708// the "output" return value is not valid until after Send returns without error.
17709//
17710// See UpdateJob for more information on using the UpdateJob
17711// API call, and error handling.
17712//
17713// This method is useful when you want to inject custom logic or configuration
17714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17715//
17716//
17717//    // Example sending a request using the UpdateJobRequest method.
17718//    req, resp := client.UpdateJobRequest(params)
17719//
17720//    err := req.Send()
17721//    if err == nil { // resp is now filled
17722//        fmt.Println(resp)
17723//    }
17724func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
17725	op := &request.Operation{
17726		Name:       opUpdateJob,
17727		HTTPMethod: "PATCH",
17728		HTTPPath:   "/jobs/{jobId}",
17729	}
17730
17731	if input == nil {
17732		input = &UpdateJobInput{}
17733	}
17734
17735	output = &UpdateJobOutput{}
17736	req = c.newRequest(op, input, output)
17737	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17738	return
17739}
17740
17741// UpdateJob API operation for AWS IoT.
17742//
17743// Updates supported fields of the specified job.
17744//
17745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17746// with awserr.Error's Code and Message methods to get detailed information about
17747// the error.
17748//
17749// See the AWS API reference guide for AWS IoT's
17750// API operation UpdateJob for usage and error information.
17751//
17752// Returned Error Types:
17753//   * InvalidRequestException
17754//   The request is not valid.
17755//
17756//   * ResourceNotFoundException
17757//   The specified resource does not exist.
17758//
17759//   * ThrottlingException
17760//   The rate exceeds the limit.
17761//
17762//   * ServiceUnavailableException
17763//   The service is temporarily unavailable.
17764//
17765func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
17766	req, out := c.UpdateJobRequest(input)
17767	return out, req.Send()
17768}
17769
17770// UpdateJobWithContext is the same as UpdateJob with the addition of
17771// the ability to pass a context and additional request options.
17772//
17773// See UpdateJob for details on how to use this API operation.
17774//
17775// The context must be non-nil and will be used for request cancellation. If
17776// the context is nil a panic will occur. In the future the SDK may create
17777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17778// for more information on using Contexts.
17779func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
17780	req, out := c.UpdateJobRequest(input)
17781	req.SetContext(ctx)
17782	req.ApplyOptions(opts...)
17783	return out, req.Send()
17784}
17785
17786const opUpdateMitigationAction = "UpdateMitigationAction"
17787
17788// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
17789// client's request for the UpdateMitigationAction operation. The "output" return
17790// value will be populated with the request's response once the request completes
17791// successfully.
17792//
17793// Use "Send" method on the returned Request to send the API call to the service.
17794// the "output" return value is not valid until after Send returns without error.
17795//
17796// See UpdateMitigationAction for more information on using the UpdateMitigationAction
17797// API call, and error handling.
17798//
17799// This method is useful when you want to inject custom logic or configuration
17800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17801//
17802//
17803//    // Example sending a request using the UpdateMitigationActionRequest method.
17804//    req, resp := client.UpdateMitigationActionRequest(params)
17805//
17806//    err := req.Send()
17807//    if err == nil { // resp is now filled
17808//        fmt.Println(resp)
17809//    }
17810func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
17811	op := &request.Operation{
17812		Name:       opUpdateMitigationAction,
17813		HTTPMethod: "PATCH",
17814		HTTPPath:   "/mitigationactions/actions/{actionName}",
17815	}
17816
17817	if input == nil {
17818		input = &UpdateMitigationActionInput{}
17819	}
17820
17821	output = &UpdateMitigationActionOutput{}
17822	req = c.newRequest(op, input, output)
17823	return
17824}
17825
17826// UpdateMitigationAction API operation for AWS IoT.
17827//
17828// Updates the definition for the specified mitigation action.
17829//
17830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17831// with awserr.Error's Code and Message methods to get detailed information about
17832// the error.
17833//
17834// See the AWS API reference guide for AWS IoT's
17835// API operation UpdateMitigationAction for usage and error information.
17836//
17837// Returned Error Types:
17838//   * InvalidRequestException
17839//   The request is not valid.
17840//
17841//   * ResourceNotFoundException
17842//   The specified resource does not exist.
17843//
17844//   * ThrottlingException
17845//   The rate exceeds the limit.
17846//
17847//   * InternalFailureException
17848//   An unexpected error has occurred.
17849//
17850func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
17851	req, out := c.UpdateMitigationActionRequest(input)
17852	return out, req.Send()
17853}
17854
17855// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
17856// the ability to pass a context and additional request options.
17857//
17858// See UpdateMitigationAction for details on how to use this API operation.
17859//
17860// The context must be non-nil and will be used for request cancellation. If
17861// the context is nil a panic will occur. In the future the SDK may create
17862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17863// for more information on using Contexts.
17864func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
17865	req, out := c.UpdateMitigationActionRequest(input)
17866	req.SetContext(ctx)
17867	req.ApplyOptions(opts...)
17868	return out, req.Send()
17869}
17870
17871const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
17872
17873// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
17874// client's request for the UpdateProvisioningTemplate operation. The "output" return
17875// value will be populated with the request's response once the request completes
17876// successfully.
17877//
17878// Use "Send" method on the returned Request to send the API call to the service.
17879// the "output" return value is not valid until after Send returns without error.
17880//
17881// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
17882// API call, and error handling.
17883//
17884// This method is useful when you want to inject custom logic or configuration
17885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17886//
17887//
17888//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
17889//    req, resp := client.UpdateProvisioningTemplateRequest(params)
17890//
17891//    err := req.Send()
17892//    if err == nil { // resp is now filled
17893//        fmt.Println(resp)
17894//    }
17895func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
17896	op := &request.Operation{
17897		Name:       opUpdateProvisioningTemplate,
17898		HTTPMethod: "PATCH",
17899		HTTPPath:   "/provisioning-templates/{templateName}",
17900	}
17901
17902	if input == nil {
17903		input = &UpdateProvisioningTemplateInput{}
17904	}
17905
17906	output = &UpdateProvisioningTemplateOutput{}
17907	req = c.newRequest(op, input, output)
17908	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
17909	return
17910}
17911
17912// UpdateProvisioningTemplate API operation for AWS IoT.
17913//
17914// Updates a fleet provisioning template.
17915//
17916// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17917// with awserr.Error's Code and Message methods to get detailed information about
17918// the error.
17919//
17920// See the AWS API reference guide for AWS IoT's
17921// API operation UpdateProvisioningTemplate for usage and error information.
17922//
17923// Returned Error Types:
17924//   * InternalFailureException
17925//   An unexpected error has occurred.
17926//
17927//   * InvalidRequestException
17928//   The request is not valid.
17929//
17930//   * ResourceNotFoundException
17931//   The specified resource does not exist.
17932//
17933//   * UnauthorizedException
17934//   You are not authorized to perform this operation.
17935//
17936//   * ConflictingResourceUpdateException
17937//   A conflicting resource update exception. This exception is thrown when two
17938//   pending updates cause a conflict.
17939//
17940func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
17941	req, out := c.UpdateProvisioningTemplateRequest(input)
17942	return out, req.Send()
17943}
17944
17945// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
17946// the ability to pass a context and additional request options.
17947//
17948// See UpdateProvisioningTemplate for details on how to use this API operation.
17949//
17950// The context must be non-nil and will be used for request cancellation. If
17951// the context is nil a panic will occur. In the future the SDK may create
17952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17953// for more information on using Contexts.
17954func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
17955	req, out := c.UpdateProvisioningTemplateRequest(input)
17956	req.SetContext(ctx)
17957	req.ApplyOptions(opts...)
17958	return out, req.Send()
17959}
17960
17961const opUpdateRoleAlias = "UpdateRoleAlias"
17962
17963// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
17964// client's request for the UpdateRoleAlias operation. The "output" return
17965// value will be populated with the request's response once the request completes
17966// successfully.
17967//
17968// Use "Send" method on the returned Request to send the API call to the service.
17969// the "output" return value is not valid until after Send returns without error.
17970//
17971// See UpdateRoleAlias for more information on using the UpdateRoleAlias
17972// API call, and error handling.
17973//
17974// This method is useful when you want to inject custom logic or configuration
17975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17976//
17977//
17978//    // Example sending a request using the UpdateRoleAliasRequest method.
17979//    req, resp := client.UpdateRoleAliasRequest(params)
17980//
17981//    err := req.Send()
17982//    if err == nil { // resp is now filled
17983//        fmt.Println(resp)
17984//    }
17985func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
17986	op := &request.Operation{
17987		Name:       opUpdateRoleAlias,
17988		HTTPMethod: "PUT",
17989		HTTPPath:   "/role-aliases/{roleAlias}",
17990	}
17991
17992	if input == nil {
17993		input = &UpdateRoleAliasInput{}
17994	}
17995
17996	output = &UpdateRoleAliasOutput{}
17997	req = c.newRequest(op, input, output)
17998	return
17999}
18000
18001// UpdateRoleAlias API operation for AWS IoT.
18002//
18003// Updates a role alias.
18004//
18005// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18006// with awserr.Error's Code and Message methods to get detailed information about
18007// the error.
18008//
18009// See the AWS API reference guide for AWS IoT's
18010// API operation UpdateRoleAlias for usage and error information.
18011//
18012// Returned Error Types:
18013//   * ResourceNotFoundException
18014//   The specified resource does not exist.
18015//
18016//   * InvalidRequestException
18017//   The request is not valid.
18018//
18019//   * ThrottlingException
18020//   The rate exceeds the limit.
18021//
18022//   * UnauthorizedException
18023//   You are not authorized to perform this operation.
18024//
18025//   * ServiceUnavailableException
18026//   The service is temporarily unavailable.
18027//
18028//   * InternalFailureException
18029//   An unexpected error has occurred.
18030//
18031func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
18032	req, out := c.UpdateRoleAliasRequest(input)
18033	return out, req.Send()
18034}
18035
18036// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
18037// the ability to pass a context and additional request options.
18038//
18039// See UpdateRoleAlias for details on how to use this API operation.
18040//
18041// The context must be non-nil and will be used for request cancellation. If
18042// the context is nil a panic will occur. In the future the SDK may create
18043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18044// for more information on using Contexts.
18045func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
18046	req, out := c.UpdateRoleAliasRequest(input)
18047	req.SetContext(ctx)
18048	req.ApplyOptions(opts...)
18049	return out, req.Send()
18050}
18051
18052const opUpdateScheduledAudit = "UpdateScheduledAudit"
18053
18054// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
18055// client's request for the UpdateScheduledAudit operation. The "output" return
18056// value will be populated with the request's response once the request completes
18057// successfully.
18058//
18059// Use "Send" method on the returned Request to send the API call to the service.
18060// the "output" return value is not valid until after Send returns without error.
18061//
18062// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
18063// API call, and error handling.
18064//
18065// This method is useful when you want to inject custom logic or configuration
18066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18067//
18068//
18069//    // Example sending a request using the UpdateScheduledAuditRequest method.
18070//    req, resp := client.UpdateScheduledAuditRequest(params)
18071//
18072//    err := req.Send()
18073//    if err == nil { // resp is now filled
18074//        fmt.Println(resp)
18075//    }
18076func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
18077	op := &request.Operation{
18078		Name:       opUpdateScheduledAudit,
18079		HTTPMethod: "PATCH",
18080		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
18081	}
18082
18083	if input == nil {
18084		input = &UpdateScheduledAuditInput{}
18085	}
18086
18087	output = &UpdateScheduledAuditOutput{}
18088	req = c.newRequest(op, input, output)
18089	return
18090}
18091
18092// UpdateScheduledAudit API operation for AWS IoT.
18093//
18094// Updates a scheduled audit, including which checks are performed and how often
18095// the audit takes place.
18096//
18097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18098// with awserr.Error's Code and Message methods to get detailed information about
18099// the error.
18100//
18101// See the AWS API reference guide for AWS IoT's
18102// API operation UpdateScheduledAudit for usage and error information.
18103//
18104// Returned Error Types:
18105//   * InvalidRequestException
18106//   The request is not valid.
18107//
18108//   * ResourceNotFoundException
18109//   The specified resource does not exist.
18110//
18111//   * ThrottlingException
18112//   The rate exceeds the limit.
18113//
18114//   * InternalFailureException
18115//   An unexpected error has occurred.
18116//
18117func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
18118	req, out := c.UpdateScheduledAuditRequest(input)
18119	return out, req.Send()
18120}
18121
18122// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
18123// the ability to pass a context and additional request options.
18124//
18125// See UpdateScheduledAudit for details on how to use this API operation.
18126//
18127// The context must be non-nil and will be used for request cancellation. If
18128// the context is nil a panic will occur. In the future the SDK may create
18129// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18130// for more information on using Contexts.
18131func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
18132	req, out := c.UpdateScheduledAuditRequest(input)
18133	req.SetContext(ctx)
18134	req.ApplyOptions(opts...)
18135	return out, req.Send()
18136}
18137
18138const opUpdateSecurityProfile = "UpdateSecurityProfile"
18139
18140// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
18141// client's request for the UpdateSecurityProfile operation. The "output" return
18142// value will be populated with the request's response once the request completes
18143// successfully.
18144//
18145// Use "Send" method on the returned Request to send the API call to the service.
18146// the "output" return value is not valid until after Send returns without error.
18147//
18148// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
18149// API call, and error handling.
18150//
18151// This method is useful when you want to inject custom logic or configuration
18152// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18153//
18154//
18155//    // Example sending a request using the UpdateSecurityProfileRequest method.
18156//    req, resp := client.UpdateSecurityProfileRequest(params)
18157//
18158//    err := req.Send()
18159//    if err == nil { // resp is now filled
18160//        fmt.Println(resp)
18161//    }
18162func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
18163	op := &request.Operation{
18164		Name:       opUpdateSecurityProfile,
18165		HTTPMethod: "PATCH",
18166		HTTPPath:   "/security-profiles/{securityProfileName}",
18167	}
18168
18169	if input == nil {
18170		input = &UpdateSecurityProfileInput{}
18171	}
18172
18173	output = &UpdateSecurityProfileOutput{}
18174	req = c.newRequest(op, input, output)
18175	return
18176}
18177
18178// UpdateSecurityProfile API operation for AWS IoT.
18179//
18180// Updates a Device Defender security profile.
18181//
18182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18183// with awserr.Error's Code and Message methods to get detailed information about
18184// the error.
18185//
18186// See the AWS API reference guide for AWS IoT's
18187// API operation UpdateSecurityProfile for usage and error information.
18188//
18189// Returned Error Types:
18190//   * InvalidRequestException
18191//   The request is not valid.
18192//
18193//   * ResourceNotFoundException
18194//   The specified resource does not exist.
18195//
18196//   * VersionConflictException
18197//   An exception thrown when the version of an entity specified with the expectedVersion
18198//   parameter does not match the latest version in the system.
18199//
18200//   * ThrottlingException
18201//   The rate exceeds the limit.
18202//
18203//   * InternalFailureException
18204//   An unexpected error has occurred.
18205//
18206func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
18207	req, out := c.UpdateSecurityProfileRequest(input)
18208	return out, req.Send()
18209}
18210
18211// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
18212// the ability to pass a context and additional request options.
18213//
18214// See UpdateSecurityProfile for details on how to use this API operation.
18215//
18216// The context must be non-nil and will be used for request cancellation. If
18217// the context is nil a panic will occur. In the future the SDK may create
18218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18219// for more information on using Contexts.
18220func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
18221	req, out := c.UpdateSecurityProfileRequest(input)
18222	req.SetContext(ctx)
18223	req.ApplyOptions(opts...)
18224	return out, req.Send()
18225}
18226
18227const opUpdateStream = "UpdateStream"
18228
18229// UpdateStreamRequest generates a "aws/request.Request" representing the
18230// client's request for the UpdateStream operation. The "output" return
18231// value will be populated with the request's response once the request completes
18232// successfully.
18233//
18234// Use "Send" method on the returned Request to send the API call to the service.
18235// the "output" return value is not valid until after Send returns without error.
18236//
18237// See UpdateStream for more information on using the UpdateStream
18238// API call, and error handling.
18239//
18240// This method is useful when you want to inject custom logic or configuration
18241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18242//
18243//
18244//    // Example sending a request using the UpdateStreamRequest method.
18245//    req, resp := client.UpdateStreamRequest(params)
18246//
18247//    err := req.Send()
18248//    if err == nil { // resp is now filled
18249//        fmt.Println(resp)
18250//    }
18251func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
18252	op := &request.Operation{
18253		Name:       opUpdateStream,
18254		HTTPMethod: "PUT",
18255		HTTPPath:   "/streams/{streamId}",
18256	}
18257
18258	if input == nil {
18259		input = &UpdateStreamInput{}
18260	}
18261
18262	output = &UpdateStreamOutput{}
18263	req = c.newRequest(op, input, output)
18264	return
18265}
18266
18267// UpdateStream API operation for AWS IoT.
18268//
18269// Updates an existing stream. The stream version will be incremented by one.
18270//
18271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18272// with awserr.Error's Code and Message methods to get detailed information about
18273// the error.
18274//
18275// See the AWS API reference guide for AWS IoT's
18276// API operation UpdateStream for usage and error information.
18277//
18278// Returned Error Types:
18279//   * InvalidRequestException
18280//   The request is not valid.
18281//
18282//   * ResourceNotFoundException
18283//   The specified resource does not exist.
18284//
18285//   * ThrottlingException
18286//   The rate exceeds the limit.
18287//
18288//   * UnauthorizedException
18289//   You are not authorized to perform this operation.
18290//
18291//   * ServiceUnavailableException
18292//   The service is temporarily unavailable.
18293//
18294//   * InternalFailureException
18295//   An unexpected error has occurred.
18296//
18297func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
18298	req, out := c.UpdateStreamRequest(input)
18299	return out, req.Send()
18300}
18301
18302// UpdateStreamWithContext is the same as UpdateStream with the addition of
18303// the ability to pass a context and additional request options.
18304//
18305// See UpdateStream for details on how to use this API operation.
18306//
18307// The context must be non-nil and will be used for request cancellation. If
18308// the context is nil a panic will occur. In the future the SDK may create
18309// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18310// for more information on using Contexts.
18311func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
18312	req, out := c.UpdateStreamRequest(input)
18313	req.SetContext(ctx)
18314	req.ApplyOptions(opts...)
18315	return out, req.Send()
18316}
18317
18318const opUpdateThing = "UpdateThing"
18319
18320// UpdateThingRequest generates a "aws/request.Request" representing the
18321// client's request for the UpdateThing operation. The "output" return
18322// value will be populated with the request's response once the request completes
18323// successfully.
18324//
18325// Use "Send" method on the returned Request to send the API call to the service.
18326// the "output" return value is not valid until after Send returns without error.
18327//
18328// See UpdateThing for more information on using the UpdateThing
18329// API call, and error handling.
18330//
18331// This method is useful when you want to inject custom logic or configuration
18332// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18333//
18334//
18335//    // Example sending a request using the UpdateThingRequest method.
18336//    req, resp := client.UpdateThingRequest(params)
18337//
18338//    err := req.Send()
18339//    if err == nil { // resp is now filled
18340//        fmt.Println(resp)
18341//    }
18342func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
18343	op := &request.Operation{
18344		Name:       opUpdateThing,
18345		HTTPMethod: "PATCH",
18346		HTTPPath:   "/things/{thingName}",
18347	}
18348
18349	if input == nil {
18350		input = &UpdateThingInput{}
18351	}
18352
18353	output = &UpdateThingOutput{}
18354	req = c.newRequest(op, input, output)
18355	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
18356	return
18357}
18358
18359// UpdateThing API operation for AWS IoT.
18360//
18361// Updates the data for a thing.
18362//
18363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18364// with awserr.Error's Code and Message methods to get detailed information about
18365// the error.
18366//
18367// See the AWS API reference guide for AWS IoT's
18368// API operation UpdateThing for usage and error information.
18369//
18370// Returned Error Types:
18371//   * InvalidRequestException
18372//   The request is not valid.
18373//
18374//   * VersionConflictException
18375//   An exception thrown when the version of an entity specified with the expectedVersion
18376//   parameter does not match the latest version in the system.
18377//
18378//   * ThrottlingException
18379//   The rate exceeds the limit.
18380//
18381//   * UnauthorizedException
18382//   You are not authorized to perform this operation.
18383//
18384//   * ServiceUnavailableException
18385//   The service is temporarily unavailable.
18386//
18387//   * InternalFailureException
18388//   An unexpected error has occurred.
18389//
18390//   * ResourceNotFoundException
18391//   The specified resource does not exist.
18392//
18393func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
18394	req, out := c.UpdateThingRequest(input)
18395	return out, req.Send()
18396}
18397
18398// UpdateThingWithContext is the same as UpdateThing with the addition of
18399// the ability to pass a context and additional request options.
18400//
18401// See UpdateThing for details on how to use this API operation.
18402//
18403// The context must be non-nil and will be used for request cancellation. If
18404// the context is nil a panic will occur. In the future the SDK may create
18405// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18406// for more information on using Contexts.
18407func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
18408	req, out := c.UpdateThingRequest(input)
18409	req.SetContext(ctx)
18410	req.ApplyOptions(opts...)
18411	return out, req.Send()
18412}
18413
18414const opUpdateThingGroup = "UpdateThingGroup"
18415
18416// UpdateThingGroupRequest generates a "aws/request.Request" representing the
18417// client's request for the UpdateThingGroup operation. The "output" return
18418// value will be populated with the request's response once the request completes
18419// successfully.
18420//
18421// Use "Send" method on the returned Request to send the API call to the service.
18422// the "output" return value is not valid until after Send returns without error.
18423//
18424// See UpdateThingGroup for more information on using the UpdateThingGroup
18425// API call, and error handling.
18426//
18427// This method is useful when you want to inject custom logic or configuration
18428// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18429//
18430//
18431//    // Example sending a request using the UpdateThingGroupRequest method.
18432//    req, resp := client.UpdateThingGroupRequest(params)
18433//
18434//    err := req.Send()
18435//    if err == nil { // resp is now filled
18436//        fmt.Println(resp)
18437//    }
18438func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
18439	op := &request.Operation{
18440		Name:       opUpdateThingGroup,
18441		HTTPMethod: "PATCH",
18442		HTTPPath:   "/thing-groups/{thingGroupName}",
18443	}
18444
18445	if input == nil {
18446		input = &UpdateThingGroupInput{}
18447	}
18448
18449	output = &UpdateThingGroupOutput{}
18450	req = c.newRequest(op, input, output)
18451	return
18452}
18453
18454// UpdateThingGroup API operation for AWS IoT.
18455//
18456// Update a thing group.
18457//
18458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18459// with awserr.Error's Code and Message methods to get detailed information about
18460// the error.
18461//
18462// See the AWS API reference guide for AWS IoT's
18463// API operation UpdateThingGroup for usage and error information.
18464//
18465// Returned Error Types:
18466//   * InvalidRequestException
18467//   The request is not valid.
18468//
18469//   * VersionConflictException
18470//   An exception thrown when the version of an entity specified with the expectedVersion
18471//   parameter does not match the latest version in the system.
18472//
18473//   * ThrottlingException
18474//   The rate exceeds the limit.
18475//
18476//   * InternalFailureException
18477//   An unexpected error has occurred.
18478//
18479//   * ResourceNotFoundException
18480//   The specified resource does not exist.
18481//
18482func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
18483	req, out := c.UpdateThingGroupRequest(input)
18484	return out, req.Send()
18485}
18486
18487// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
18488// the ability to pass a context and additional request options.
18489//
18490// See UpdateThingGroup for details on how to use this API operation.
18491//
18492// The context must be non-nil and will be used for request cancellation. If
18493// the context is nil a panic will occur. In the future the SDK may create
18494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18495// for more information on using Contexts.
18496func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
18497	req, out := c.UpdateThingGroupRequest(input)
18498	req.SetContext(ctx)
18499	req.ApplyOptions(opts...)
18500	return out, req.Send()
18501}
18502
18503const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
18504
18505// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
18506// client's request for the UpdateThingGroupsForThing operation. The "output" return
18507// value will be populated with the request's response once the request completes
18508// successfully.
18509//
18510// Use "Send" method on the returned Request to send the API call to the service.
18511// the "output" return value is not valid until after Send returns without error.
18512//
18513// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
18514// API call, and error handling.
18515//
18516// This method is useful when you want to inject custom logic or configuration
18517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18518//
18519//
18520//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
18521//    req, resp := client.UpdateThingGroupsForThingRequest(params)
18522//
18523//    err := req.Send()
18524//    if err == nil { // resp is now filled
18525//        fmt.Println(resp)
18526//    }
18527func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
18528	op := &request.Operation{
18529		Name:       opUpdateThingGroupsForThing,
18530		HTTPMethod: "PUT",
18531		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
18532	}
18533
18534	if input == nil {
18535		input = &UpdateThingGroupsForThingInput{}
18536	}
18537
18538	output = &UpdateThingGroupsForThingOutput{}
18539	req = c.newRequest(op, input, output)
18540	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
18541	return
18542}
18543
18544// UpdateThingGroupsForThing API operation for AWS IoT.
18545//
18546// Updates the groups to which the thing belongs.
18547//
18548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18549// with awserr.Error's Code and Message methods to get detailed information about
18550// the error.
18551//
18552// See the AWS API reference guide for AWS IoT's
18553// API operation UpdateThingGroupsForThing for usage and error information.
18554//
18555// Returned Error Types:
18556//   * InvalidRequestException
18557//   The request is not valid.
18558//
18559//   * ThrottlingException
18560//   The rate exceeds the limit.
18561//
18562//   * InternalFailureException
18563//   An unexpected error has occurred.
18564//
18565//   * ResourceNotFoundException
18566//   The specified resource does not exist.
18567//
18568func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
18569	req, out := c.UpdateThingGroupsForThingRequest(input)
18570	return out, req.Send()
18571}
18572
18573// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
18574// the ability to pass a context and additional request options.
18575//
18576// See UpdateThingGroupsForThing for details on how to use this API operation.
18577//
18578// The context must be non-nil and will be used for request cancellation. If
18579// the context is nil a panic will occur. In the future the SDK may create
18580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18581// for more information on using Contexts.
18582func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
18583	req, out := c.UpdateThingGroupsForThingRequest(input)
18584	req.SetContext(ctx)
18585	req.ApplyOptions(opts...)
18586	return out, req.Send()
18587}
18588
18589const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
18590
18591// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
18592// client's request for the UpdateTopicRuleDestination operation. The "output" return
18593// value will be populated with the request's response once the request completes
18594// successfully.
18595//
18596// Use "Send" method on the returned Request to send the API call to the service.
18597// the "output" return value is not valid until after Send returns without error.
18598//
18599// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
18600// API call, and error handling.
18601//
18602// This method is useful when you want to inject custom logic or configuration
18603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18604//
18605//
18606//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
18607//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
18608//
18609//    err := req.Send()
18610//    if err == nil { // resp is now filled
18611//        fmt.Println(resp)
18612//    }
18613func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
18614	op := &request.Operation{
18615		Name:       opUpdateTopicRuleDestination,
18616		HTTPMethod: "PATCH",
18617		HTTPPath:   "/destinations",
18618	}
18619
18620	if input == nil {
18621		input = &UpdateTopicRuleDestinationInput{}
18622	}
18623
18624	output = &UpdateTopicRuleDestinationOutput{}
18625	req = c.newRequest(op, input, output)
18626	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
18627	return
18628}
18629
18630// UpdateTopicRuleDestination API operation for AWS IoT.
18631//
18632// Updates a topic rule destination. You use this to change the status, endpoint
18633// URL, or confirmation URL of the destination.
18634//
18635// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18636// with awserr.Error's Code and Message methods to get detailed information about
18637// the error.
18638//
18639// See the AWS API reference guide for AWS IoT's
18640// API operation UpdateTopicRuleDestination for usage and error information.
18641//
18642// Returned Error Types:
18643//   * InternalException
18644//   An unexpected error has occurred.
18645//
18646//   * InvalidRequestException
18647//   The request is not valid.
18648//
18649//   * ServiceUnavailableException
18650//   The service is temporarily unavailable.
18651//
18652//   * UnauthorizedException
18653//   You are not authorized to perform this operation.
18654//
18655//   * ConflictingResourceUpdateException
18656//   A conflicting resource update exception. This exception is thrown when two
18657//   pending updates cause a conflict.
18658//
18659func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
18660	req, out := c.UpdateTopicRuleDestinationRequest(input)
18661	return out, req.Send()
18662}
18663
18664// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
18665// the ability to pass a context and additional request options.
18666//
18667// See UpdateTopicRuleDestination for details on how to use this API operation.
18668//
18669// The context must be non-nil and will be used for request cancellation. If
18670// the context is nil a panic will occur. In the future the SDK may create
18671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18672// for more information on using Contexts.
18673func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
18674	req, out := c.UpdateTopicRuleDestinationRequest(input)
18675	req.SetContext(ctx)
18676	req.ApplyOptions(opts...)
18677	return out, req.Send()
18678}
18679
18680const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
18681
18682// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
18683// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
18684// value will be populated with the request's response once the request completes
18685// successfully.
18686//
18687// Use "Send" method on the returned Request to send the API call to the service.
18688// the "output" return value is not valid until after Send returns without error.
18689//
18690// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
18691// API call, and error handling.
18692//
18693// This method is useful when you want to inject custom logic or configuration
18694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18695//
18696//
18697//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
18698//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
18699//
18700//    err := req.Send()
18701//    if err == nil { // resp is now filled
18702//        fmt.Println(resp)
18703//    }
18704func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
18705	op := &request.Operation{
18706		Name:       opValidateSecurityProfileBehaviors,
18707		HTTPMethod: "POST",
18708		HTTPPath:   "/security-profile-behaviors/validate",
18709	}
18710
18711	if input == nil {
18712		input = &ValidateSecurityProfileBehaviorsInput{}
18713	}
18714
18715	output = &ValidateSecurityProfileBehaviorsOutput{}
18716	req = c.newRequest(op, input, output)
18717	return
18718}
18719
18720// ValidateSecurityProfileBehaviors API operation for AWS IoT.
18721//
18722// Validates a Device Defender security profile behaviors specification.
18723//
18724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18725// with awserr.Error's Code and Message methods to get detailed information about
18726// the error.
18727//
18728// See the AWS API reference guide for AWS IoT's
18729// API operation ValidateSecurityProfileBehaviors for usage and error information.
18730//
18731// Returned Error Types:
18732//   * InvalidRequestException
18733//   The request is not valid.
18734//
18735//   * ThrottlingException
18736//   The rate exceeds the limit.
18737//
18738//   * InternalFailureException
18739//   An unexpected error has occurred.
18740//
18741func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
18742	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
18743	return out, req.Send()
18744}
18745
18746// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
18747// the ability to pass a context and additional request options.
18748//
18749// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
18750//
18751// The context must be non-nil and will be used for request cancellation. If
18752// the context is nil a panic will occur. In the future the SDK may create
18753// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18754// for more information on using Contexts.
18755func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
18756	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
18757	req.SetContext(ctx)
18758	req.ApplyOptions(opts...)
18759	return out, req.Send()
18760}
18761
18762// Details of abort criteria to abort the job.
18763type AbortConfig struct {
18764	_ struct{} `type:"structure"`
18765
18766	// The list of abort criteria to define rules to abort the job.
18767	//
18768	// CriteriaList is a required field
18769	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
18770}
18771
18772// String returns the string representation
18773func (s AbortConfig) String() string {
18774	return awsutil.Prettify(s)
18775}
18776
18777// GoString returns the string representation
18778func (s AbortConfig) GoString() string {
18779	return s.String()
18780}
18781
18782// Validate inspects the fields of the type to determine if they are valid.
18783func (s *AbortConfig) Validate() error {
18784	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
18785	if s.CriteriaList == nil {
18786		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
18787	}
18788	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
18789		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
18790	}
18791	if s.CriteriaList != nil {
18792		for i, v := range s.CriteriaList {
18793			if v == nil {
18794				continue
18795			}
18796			if err := v.Validate(); err != nil {
18797				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
18798			}
18799		}
18800	}
18801
18802	if invalidParams.Len() > 0 {
18803		return invalidParams
18804	}
18805	return nil
18806}
18807
18808// SetCriteriaList sets the CriteriaList field's value.
18809func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
18810	s.CriteriaList = v
18811	return s
18812}
18813
18814// Details of abort criteria to define rules to abort the job.
18815type AbortCriteria struct {
18816	_ struct{} `type:"structure"`
18817
18818	// The type of abort action to initiate a job abort.
18819	//
18820	// Action is a required field
18821	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
18822
18823	// The type of job execution failure to define a rule to initiate a job abort.
18824	//
18825	// FailureType is a required field
18826	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
18827
18828	// Minimum number of executed things before evaluating an abort rule.
18829	//
18830	// MinNumberOfExecutedThings is a required field
18831	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
18832
18833	// The threshold as a percentage of the total number of executed things that
18834	// will initiate a job abort.
18835	//
18836	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
18837	// 10.99, but not 10.999).
18838	//
18839	// ThresholdPercentage is a required field
18840	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
18841}
18842
18843// String returns the string representation
18844func (s AbortCriteria) String() string {
18845	return awsutil.Prettify(s)
18846}
18847
18848// GoString returns the string representation
18849func (s AbortCriteria) GoString() string {
18850	return s.String()
18851}
18852
18853// Validate inspects the fields of the type to determine if they are valid.
18854func (s *AbortCriteria) Validate() error {
18855	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
18856	if s.Action == nil {
18857		invalidParams.Add(request.NewErrParamRequired("Action"))
18858	}
18859	if s.FailureType == nil {
18860		invalidParams.Add(request.NewErrParamRequired("FailureType"))
18861	}
18862	if s.MinNumberOfExecutedThings == nil {
18863		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
18864	}
18865	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
18866		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
18867	}
18868	if s.ThresholdPercentage == nil {
18869		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
18870	}
18871
18872	if invalidParams.Len() > 0 {
18873		return invalidParams
18874	}
18875	return nil
18876}
18877
18878// SetAction sets the Action field's value.
18879func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
18880	s.Action = &v
18881	return s
18882}
18883
18884// SetFailureType sets the FailureType field's value.
18885func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
18886	s.FailureType = &v
18887	return s
18888}
18889
18890// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
18891func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
18892	s.MinNumberOfExecutedThings = &v
18893	return s
18894}
18895
18896// SetThresholdPercentage sets the ThresholdPercentage field's value.
18897func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
18898	s.ThresholdPercentage = &v
18899	return s
18900}
18901
18902// The input for the AcceptCertificateTransfer operation.
18903type AcceptCertificateTransferInput struct {
18904	_ struct{} `type:"structure"`
18905
18906	// The ID of the certificate. (The last part of the certificate ARN contains
18907	// the certificate ID.)
18908	//
18909	// CertificateId is a required field
18910	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
18911
18912	// Specifies whether the certificate is active.
18913	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
18914}
18915
18916// String returns the string representation
18917func (s AcceptCertificateTransferInput) String() string {
18918	return awsutil.Prettify(s)
18919}
18920
18921// GoString returns the string representation
18922func (s AcceptCertificateTransferInput) GoString() string {
18923	return s.String()
18924}
18925
18926// Validate inspects the fields of the type to determine if they are valid.
18927func (s *AcceptCertificateTransferInput) Validate() error {
18928	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
18929	if s.CertificateId == nil {
18930		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
18931	}
18932	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
18933		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
18934	}
18935
18936	if invalidParams.Len() > 0 {
18937		return invalidParams
18938	}
18939	return nil
18940}
18941
18942// SetCertificateId sets the CertificateId field's value.
18943func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
18944	s.CertificateId = &v
18945	return s
18946}
18947
18948// SetSetAsActive sets the SetAsActive field's value.
18949func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
18950	s.SetAsActive = &v
18951	return s
18952}
18953
18954type AcceptCertificateTransferOutput struct {
18955	_ struct{} `type:"structure"`
18956}
18957
18958// String returns the string representation
18959func (s AcceptCertificateTransferOutput) String() string {
18960	return awsutil.Prettify(s)
18961}
18962
18963// GoString returns the string representation
18964func (s AcceptCertificateTransferOutput) GoString() string {
18965	return s.String()
18966}
18967
18968// Describes the actions associated with a rule.
18969type Action struct {
18970	_ struct{} `type:"structure"`
18971
18972	// Change the state of a CloudWatch alarm.
18973	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
18974
18975	// Send data to CloudWatch Logs.
18976	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
18977
18978	// Capture a CloudWatch metric.
18979	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
18980
18981	// Write to a DynamoDB table.
18982	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
18983
18984	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
18985	// It allows you to write each attribute in an MQTT message payload into a separate
18986	// DynamoDB column.
18987	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
18988
18989	// Write data to an Amazon Elasticsearch Service domain.
18990	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
18991
18992	// Write to an Amazon Kinesis Firehose stream.
18993	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
18994
18995	// Send data to an HTTPS endpoint.
18996	Http *HttpAction `locationName:"http" type:"structure"`
18997
18998	// Sends message data to an AWS IoT Analytics channel.
18999	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
19000
19001	// Sends an input to an AWS IoT Events detector.
19002	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
19003
19004	// Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise
19005	// asset properties.
19006	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
19007
19008	// Write data to an Amazon Kinesis stream.
19009	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
19010
19011	// Invoke a Lambda function.
19012	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
19013
19014	// Publish to another MQTT topic.
19015	Republish *RepublishAction `locationName:"republish" type:"structure"`
19016
19017	// Write to an Amazon S3 bucket.
19018	S3 *S3Action `locationName:"s3" type:"structure"`
19019
19020	// Send a message to a Salesforce IoT Cloud Input Stream.
19021	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
19022
19023	// Publish to an Amazon SNS topic.
19024	Sns *SnsAction `locationName:"sns" type:"structure"`
19025
19026	// Publish to an Amazon SQS queue.
19027	Sqs *SqsAction `locationName:"sqs" type:"structure"`
19028
19029	// Starts execution of a Step Functions state machine.
19030	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
19031}
19032
19033// String returns the string representation
19034func (s Action) String() string {
19035	return awsutil.Prettify(s)
19036}
19037
19038// GoString returns the string representation
19039func (s Action) GoString() string {
19040	return s.String()
19041}
19042
19043// Validate inspects the fields of the type to determine if they are valid.
19044func (s *Action) Validate() error {
19045	invalidParams := request.ErrInvalidParams{Context: "Action"}
19046	if s.CloudwatchAlarm != nil {
19047		if err := s.CloudwatchAlarm.Validate(); err != nil {
19048			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
19049		}
19050	}
19051	if s.CloudwatchLogs != nil {
19052		if err := s.CloudwatchLogs.Validate(); err != nil {
19053			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
19054		}
19055	}
19056	if s.CloudwatchMetric != nil {
19057		if err := s.CloudwatchMetric.Validate(); err != nil {
19058			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
19059		}
19060	}
19061	if s.DynamoDB != nil {
19062		if err := s.DynamoDB.Validate(); err != nil {
19063			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
19064		}
19065	}
19066	if s.DynamoDBv2 != nil {
19067		if err := s.DynamoDBv2.Validate(); err != nil {
19068			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
19069		}
19070	}
19071	if s.Elasticsearch != nil {
19072		if err := s.Elasticsearch.Validate(); err != nil {
19073			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
19074		}
19075	}
19076	if s.Firehose != nil {
19077		if err := s.Firehose.Validate(); err != nil {
19078			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
19079		}
19080	}
19081	if s.Http != nil {
19082		if err := s.Http.Validate(); err != nil {
19083			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
19084		}
19085	}
19086	if s.IotEvents != nil {
19087		if err := s.IotEvents.Validate(); err != nil {
19088			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
19089		}
19090	}
19091	if s.IotSiteWise != nil {
19092		if err := s.IotSiteWise.Validate(); err != nil {
19093			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
19094		}
19095	}
19096	if s.Kinesis != nil {
19097		if err := s.Kinesis.Validate(); err != nil {
19098			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
19099		}
19100	}
19101	if s.Lambda != nil {
19102		if err := s.Lambda.Validate(); err != nil {
19103			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
19104		}
19105	}
19106	if s.Republish != nil {
19107		if err := s.Republish.Validate(); err != nil {
19108			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
19109		}
19110	}
19111	if s.S3 != nil {
19112		if err := s.S3.Validate(); err != nil {
19113			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
19114		}
19115	}
19116	if s.Salesforce != nil {
19117		if err := s.Salesforce.Validate(); err != nil {
19118			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
19119		}
19120	}
19121	if s.Sns != nil {
19122		if err := s.Sns.Validate(); err != nil {
19123			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
19124		}
19125	}
19126	if s.Sqs != nil {
19127		if err := s.Sqs.Validate(); err != nil {
19128			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
19129		}
19130	}
19131	if s.StepFunctions != nil {
19132		if err := s.StepFunctions.Validate(); err != nil {
19133			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
19134		}
19135	}
19136
19137	if invalidParams.Len() > 0 {
19138		return invalidParams
19139	}
19140	return nil
19141}
19142
19143// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
19144func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
19145	s.CloudwatchAlarm = v
19146	return s
19147}
19148
19149// SetCloudwatchLogs sets the CloudwatchLogs field's value.
19150func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
19151	s.CloudwatchLogs = v
19152	return s
19153}
19154
19155// SetCloudwatchMetric sets the CloudwatchMetric field's value.
19156func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
19157	s.CloudwatchMetric = v
19158	return s
19159}
19160
19161// SetDynamoDB sets the DynamoDB field's value.
19162func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
19163	s.DynamoDB = v
19164	return s
19165}
19166
19167// SetDynamoDBv2 sets the DynamoDBv2 field's value.
19168func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
19169	s.DynamoDBv2 = v
19170	return s
19171}
19172
19173// SetElasticsearch sets the Elasticsearch field's value.
19174func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
19175	s.Elasticsearch = v
19176	return s
19177}
19178
19179// SetFirehose sets the Firehose field's value.
19180func (s *Action) SetFirehose(v *FirehoseAction) *Action {
19181	s.Firehose = v
19182	return s
19183}
19184
19185// SetHttp sets the Http field's value.
19186func (s *Action) SetHttp(v *HttpAction) *Action {
19187	s.Http = v
19188	return s
19189}
19190
19191// SetIotAnalytics sets the IotAnalytics field's value.
19192func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
19193	s.IotAnalytics = v
19194	return s
19195}
19196
19197// SetIotEvents sets the IotEvents field's value.
19198func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
19199	s.IotEvents = v
19200	return s
19201}
19202
19203// SetIotSiteWise sets the IotSiteWise field's value.
19204func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
19205	s.IotSiteWise = v
19206	return s
19207}
19208
19209// SetKinesis sets the Kinesis field's value.
19210func (s *Action) SetKinesis(v *KinesisAction) *Action {
19211	s.Kinesis = v
19212	return s
19213}
19214
19215// SetLambda sets the Lambda field's value.
19216func (s *Action) SetLambda(v *LambdaAction) *Action {
19217	s.Lambda = v
19218	return s
19219}
19220
19221// SetRepublish sets the Republish field's value.
19222func (s *Action) SetRepublish(v *RepublishAction) *Action {
19223	s.Republish = v
19224	return s
19225}
19226
19227// SetS3 sets the S3 field's value.
19228func (s *Action) SetS3(v *S3Action) *Action {
19229	s.S3 = v
19230	return s
19231}
19232
19233// SetSalesforce sets the Salesforce field's value.
19234func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
19235	s.Salesforce = v
19236	return s
19237}
19238
19239// SetSns sets the Sns field's value.
19240func (s *Action) SetSns(v *SnsAction) *Action {
19241	s.Sns = v
19242	return s
19243}
19244
19245// SetSqs sets the Sqs field's value.
19246func (s *Action) SetSqs(v *SqsAction) *Action {
19247	s.Sqs = v
19248	return s
19249}
19250
19251// SetStepFunctions sets the StepFunctions field's value.
19252func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
19253	s.StepFunctions = v
19254	return s
19255}
19256
19257// Information about an active Device Defender security profile behavior violation.
19258type ActiveViolation struct {
19259	_ struct{} `type:"structure"`
19260
19261	// The behavior which is being violated.
19262	Behavior *Behavior `locationName:"behavior" type:"structure"`
19263
19264	// The time the most recent violation occurred.
19265	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
19266
19267	// The value of the metric (the measurement) which caused the most recent violation.
19268	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
19269
19270	// The security profile whose behavior is in violation.
19271	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
19272
19273	// The name of the thing responsible for the active violation.
19274	ThingName *string `locationName:"thingName" min:"1" type:"string"`
19275
19276	// The ID of the active violation.
19277	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
19278
19279	// The time the violation started.
19280	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
19281}
19282
19283// String returns the string representation
19284func (s ActiveViolation) String() string {
19285	return awsutil.Prettify(s)
19286}
19287
19288// GoString returns the string representation
19289func (s ActiveViolation) GoString() string {
19290	return s.String()
19291}
19292
19293// SetBehavior sets the Behavior field's value.
19294func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
19295	s.Behavior = v
19296	return s
19297}
19298
19299// SetLastViolationTime sets the LastViolationTime field's value.
19300func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
19301	s.LastViolationTime = &v
19302	return s
19303}
19304
19305// SetLastViolationValue sets the LastViolationValue field's value.
19306func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
19307	s.LastViolationValue = v
19308	return s
19309}
19310
19311// SetSecurityProfileName sets the SecurityProfileName field's value.
19312func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
19313	s.SecurityProfileName = &v
19314	return s
19315}
19316
19317// SetThingName sets the ThingName field's value.
19318func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
19319	s.ThingName = &v
19320	return s
19321}
19322
19323// SetViolationId sets the ViolationId field's value.
19324func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
19325	s.ViolationId = &v
19326	return s
19327}
19328
19329// SetViolationStartTime sets the ViolationStartTime field's value.
19330func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
19331	s.ViolationStartTime = &v
19332	return s
19333}
19334
19335type AddThingToBillingGroupInput struct {
19336	_ struct{} `type:"structure"`
19337
19338	// The ARN of the billing group.
19339	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
19340
19341	// The name of the billing group.
19342	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
19343
19344	// The ARN of the thing to be added to the billing group.
19345	ThingArn *string `locationName:"thingArn" type:"string"`
19346
19347	// The name of the thing to be added to the billing group.
19348	ThingName *string `locationName:"thingName" min:"1" type:"string"`
19349}
19350
19351// String returns the string representation
19352func (s AddThingToBillingGroupInput) String() string {
19353	return awsutil.Prettify(s)
19354}
19355
19356// GoString returns the string representation
19357func (s AddThingToBillingGroupInput) GoString() string {
19358	return s.String()
19359}
19360
19361// Validate inspects the fields of the type to determine if they are valid.
19362func (s *AddThingToBillingGroupInput) Validate() error {
19363	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
19364	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
19365		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
19366	}
19367	if s.ThingName != nil && len(*s.ThingName) < 1 {
19368		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
19369	}
19370
19371	if invalidParams.Len() > 0 {
19372		return invalidParams
19373	}
19374	return nil
19375}
19376
19377// SetBillingGroupArn sets the BillingGroupArn field's value.
19378func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
19379	s.BillingGroupArn = &v
19380	return s
19381}
19382
19383// SetBillingGroupName sets the BillingGroupName field's value.
19384func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
19385	s.BillingGroupName = &v
19386	return s
19387}
19388
19389// SetThingArn sets the ThingArn field's value.
19390func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
19391	s.ThingArn = &v
19392	return s
19393}
19394
19395// SetThingName sets the ThingName field's value.
19396func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
19397	s.ThingName = &v
19398	return s
19399}
19400
19401type AddThingToBillingGroupOutput struct {
19402	_ struct{} `type:"structure"`
19403}
19404
19405// String returns the string representation
19406func (s AddThingToBillingGroupOutput) String() string {
19407	return awsutil.Prettify(s)
19408}
19409
19410// GoString returns the string representation
19411func (s AddThingToBillingGroupOutput) GoString() string {
19412	return s.String()
19413}
19414
19415type AddThingToThingGroupInput struct {
19416	_ struct{} `type:"structure"`
19417
19418	// Override dynamic thing groups with static thing groups when 10-group limit
19419	// is reached. If a thing belongs to 10 thing groups, and one or more of those
19420	// groups are dynamic thing groups, adding a thing to a static group removes
19421	// the thing from the last dynamic group.
19422	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
19423
19424	// The ARN of the thing to add to a group.
19425	ThingArn *string `locationName:"thingArn" type:"string"`
19426
19427	// The ARN of the group to which you are adding a thing.
19428	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
19429
19430	// The name of the group to which you are adding a thing.
19431	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
19432
19433	// The name of the thing to add to a group.
19434	ThingName *string `locationName:"thingName" min:"1" type:"string"`
19435}
19436
19437// String returns the string representation
19438func (s AddThingToThingGroupInput) String() string {
19439	return awsutil.Prettify(s)
19440}
19441
19442// GoString returns the string representation
19443func (s AddThingToThingGroupInput) GoString() string {
19444	return s.String()
19445}
19446
19447// Validate inspects the fields of the type to determine if they are valid.
19448func (s *AddThingToThingGroupInput) Validate() error {
19449	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
19450	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
19451		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
19452	}
19453	if s.ThingName != nil && len(*s.ThingName) < 1 {
19454		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
19455	}
19456
19457	if invalidParams.Len() > 0 {
19458		return invalidParams
19459	}
19460	return nil
19461}
19462
19463// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
19464func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
19465	s.OverrideDynamicGroups = &v
19466	return s
19467}
19468
19469// SetThingArn sets the ThingArn field's value.
19470func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
19471	s.ThingArn = &v
19472	return s
19473}
19474
19475// SetThingGroupArn sets the ThingGroupArn field's value.
19476func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
19477	s.ThingGroupArn = &v
19478	return s
19479}
19480
19481// SetThingGroupName sets the ThingGroupName field's value.
19482func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
19483	s.ThingGroupName = &v
19484	return s
19485}
19486
19487// SetThingName sets the ThingName field's value.
19488func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
19489	s.ThingName = &v
19490	return s
19491}
19492
19493type AddThingToThingGroupOutput struct {
19494	_ struct{} `type:"structure"`
19495}
19496
19497// String returns the string representation
19498func (s AddThingToThingGroupOutput) String() string {
19499	return awsutil.Prettify(s)
19500}
19501
19502// GoString returns the string representation
19503func (s AddThingToThingGroupOutput) GoString() string {
19504	return s.String()
19505}
19506
19507// Parameters used when defining a mitigation action that move a set of things
19508// to a thing group.
19509type AddThingsToThingGroupParams struct {
19510	_ struct{} `type:"structure"`
19511
19512	// Specifies if this mitigation action can move the things that triggered the
19513	// mitigation action even if they are part of one or more dynamic things groups.
19514	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
19515
19516	// The list of groups to which you want to add the things that triggered the
19517	// mitigation action. You can add a thing to a maximum of 10 groups, but you
19518	// cannot add a thing to more than one group in the same hierarchy.
19519	//
19520	// ThingGroupNames is a required field
19521	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
19522}
19523
19524// String returns the string representation
19525func (s AddThingsToThingGroupParams) String() string {
19526	return awsutil.Prettify(s)
19527}
19528
19529// GoString returns the string representation
19530func (s AddThingsToThingGroupParams) GoString() string {
19531	return s.String()
19532}
19533
19534// Validate inspects the fields of the type to determine if they are valid.
19535func (s *AddThingsToThingGroupParams) Validate() error {
19536	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
19537	if s.ThingGroupNames == nil {
19538		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
19539	}
19540	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
19541		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
19542	}
19543
19544	if invalidParams.Len() > 0 {
19545		return invalidParams
19546	}
19547	return nil
19548}
19549
19550// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
19551func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
19552	s.OverrideDynamicGroups = &v
19553	return s
19554}
19555
19556// SetThingGroupNames sets the ThingGroupNames field's value.
19557func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
19558	s.ThingGroupNames = v
19559	return s
19560}
19561
19562// A structure containing the alert target ARN and the role ARN.
19563type AlertTarget struct {
19564	_ struct{} `type:"structure"`
19565
19566	// The ARN of the notification target to which alerts are sent.
19567	//
19568	// AlertTargetArn is a required field
19569	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
19570
19571	// The ARN of the role that grants permission to send alerts to the notification
19572	// target.
19573	//
19574	// RoleArn is a required field
19575	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
19576}
19577
19578// String returns the string representation
19579func (s AlertTarget) String() string {
19580	return awsutil.Prettify(s)
19581}
19582
19583// GoString returns the string representation
19584func (s AlertTarget) GoString() string {
19585	return s.String()
19586}
19587
19588// Validate inspects the fields of the type to determine if they are valid.
19589func (s *AlertTarget) Validate() error {
19590	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
19591	if s.AlertTargetArn == nil {
19592		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
19593	}
19594	if s.RoleArn == nil {
19595		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
19596	}
19597	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
19598		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
19599	}
19600
19601	if invalidParams.Len() > 0 {
19602		return invalidParams
19603	}
19604	return nil
19605}
19606
19607// SetAlertTargetArn sets the AlertTargetArn field's value.
19608func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
19609	s.AlertTargetArn = &v
19610	return s
19611}
19612
19613// SetRoleArn sets the RoleArn field's value.
19614func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
19615	s.RoleArn = &v
19616	return s
19617}
19618
19619// Contains information that allowed the authorization.
19620type Allowed struct {
19621	_ struct{} `type:"structure"`
19622
19623	// A list of policies that allowed the authentication.
19624	Policies []*Policy `locationName:"policies" type:"list"`
19625}
19626
19627// String returns the string representation
19628func (s Allowed) String() string {
19629	return awsutil.Prettify(s)
19630}
19631
19632// GoString returns the string representation
19633func (s Allowed) GoString() string {
19634	return s.String()
19635}
19636
19637// SetPolicies sets the Policies field's value.
19638func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
19639	s.Policies = v
19640	return s
19641}
19642
19643// An asset property timestamp entry containing the following information.
19644type AssetPropertyTimestamp struct {
19645	_ struct{} `type:"structure"`
19646
19647	// Optional. A string that contains the nanosecond time offset. Accepts substitution
19648	// templates.
19649	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
19650
19651	// A string that contains the time in seconds since epoch. Accepts substitution
19652	// templates.
19653	//
19654	// TimeInSeconds is a required field
19655	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
19656}
19657
19658// String returns the string representation
19659func (s AssetPropertyTimestamp) String() string {
19660	return awsutil.Prettify(s)
19661}
19662
19663// GoString returns the string representation
19664func (s AssetPropertyTimestamp) GoString() string {
19665	return s.String()
19666}
19667
19668// Validate inspects the fields of the type to determine if they are valid.
19669func (s *AssetPropertyTimestamp) Validate() error {
19670	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
19671	if s.TimeInSeconds == nil {
19672		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
19673	}
19674
19675	if invalidParams.Len() > 0 {
19676		return invalidParams
19677	}
19678	return nil
19679}
19680
19681// SetOffsetInNanos sets the OffsetInNanos field's value.
19682func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
19683	s.OffsetInNanos = &v
19684	return s
19685}
19686
19687// SetTimeInSeconds sets the TimeInSeconds field's value.
19688func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
19689	s.TimeInSeconds = &v
19690	return s
19691}
19692
19693// An asset property value entry containing the following information.
19694type AssetPropertyValue struct {
19695	_ struct{} `type:"structure"`
19696
19697	// Optional. A string that describes the quality of the value. Accepts substitution
19698	// templates. Must be GOOD, BAD, or UNCERTAIN.
19699	Quality *string `locationName:"quality" type:"string"`
19700
19701	// The asset property value timestamp.
19702	//
19703	// Timestamp is a required field
19704	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
19705
19706	// The value of the asset property.
19707	//
19708	// Value is a required field
19709	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
19710}
19711
19712// String returns the string representation
19713func (s AssetPropertyValue) String() string {
19714	return awsutil.Prettify(s)
19715}
19716
19717// GoString returns the string representation
19718func (s AssetPropertyValue) GoString() string {
19719	return s.String()
19720}
19721
19722// Validate inspects the fields of the type to determine if they are valid.
19723func (s *AssetPropertyValue) Validate() error {
19724	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
19725	if s.Timestamp == nil {
19726		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
19727	}
19728	if s.Value == nil {
19729		invalidParams.Add(request.NewErrParamRequired("Value"))
19730	}
19731	if s.Timestamp != nil {
19732		if err := s.Timestamp.Validate(); err != nil {
19733			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
19734		}
19735	}
19736	if s.Value != nil {
19737		if err := s.Value.Validate(); err != nil {
19738			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
19739		}
19740	}
19741
19742	if invalidParams.Len() > 0 {
19743		return invalidParams
19744	}
19745	return nil
19746}
19747
19748// SetQuality sets the Quality field's value.
19749func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
19750	s.Quality = &v
19751	return s
19752}
19753
19754// SetTimestamp sets the Timestamp field's value.
19755func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
19756	s.Timestamp = v
19757	return s
19758}
19759
19760// SetValue sets the Value field's value.
19761func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
19762	s.Value = v
19763	return s
19764}
19765
19766// Contains an asset property value (of a single type).
19767type AssetPropertyVariant struct {
19768	_ struct{} `type:"structure"`
19769
19770	// Optional. A string that contains the boolean value (true or false) of the
19771	// value entry. Accepts substitution templates.
19772	BooleanValue *string `locationName:"booleanValue" type:"string"`
19773
19774	// Optional. A string that contains the double value of the value entry. Accepts
19775	// substitution templates.
19776	DoubleValue *string `locationName:"doubleValue" type:"string"`
19777
19778	// Optional. A string that contains the integer value of the value entry. Accepts
19779	// substitution templates.
19780	IntegerValue *string `locationName:"integerValue" type:"string"`
19781
19782	// Optional. The string value of the value entry. Accepts substitution templates.
19783	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
19784}
19785
19786// String returns the string representation
19787func (s AssetPropertyVariant) String() string {
19788	return awsutil.Prettify(s)
19789}
19790
19791// GoString returns the string representation
19792func (s AssetPropertyVariant) GoString() string {
19793	return s.String()
19794}
19795
19796// Validate inspects the fields of the type to determine if they are valid.
19797func (s *AssetPropertyVariant) Validate() error {
19798	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
19799	if s.StringValue != nil && len(*s.StringValue) < 1 {
19800		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
19801	}
19802
19803	if invalidParams.Len() > 0 {
19804		return invalidParams
19805	}
19806	return nil
19807}
19808
19809// SetBooleanValue sets the BooleanValue field's value.
19810func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
19811	s.BooleanValue = &v
19812	return s
19813}
19814
19815// SetDoubleValue sets the DoubleValue field's value.
19816func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
19817	s.DoubleValue = &v
19818	return s
19819}
19820
19821// SetIntegerValue sets the IntegerValue field's value.
19822func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
19823	s.IntegerValue = &v
19824	return s
19825}
19826
19827// SetStringValue sets the StringValue field's value.
19828func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
19829	s.StringValue = &v
19830	return s
19831}
19832
19833type AssociateTargetsWithJobInput struct {
19834	_ struct{} `type:"structure"`
19835
19836	// An optional comment string describing why the job was associated with the
19837	// targets.
19838	Comment *string `locationName:"comment" type:"string"`
19839
19840	// The unique identifier you assigned to this job when it was created.
19841	//
19842	// JobId is a required field
19843	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
19844
19845	// A list of thing group ARNs that define the targets of the job.
19846	//
19847	// Targets is a required field
19848	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
19849}
19850
19851// String returns the string representation
19852func (s AssociateTargetsWithJobInput) String() string {
19853	return awsutil.Prettify(s)
19854}
19855
19856// GoString returns the string representation
19857func (s AssociateTargetsWithJobInput) GoString() string {
19858	return s.String()
19859}
19860
19861// Validate inspects the fields of the type to determine if they are valid.
19862func (s *AssociateTargetsWithJobInput) Validate() error {
19863	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
19864	if s.JobId == nil {
19865		invalidParams.Add(request.NewErrParamRequired("JobId"))
19866	}
19867	if s.JobId != nil && len(*s.JobId) < 1 {
19868		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
19869	}
19870	if s.Targets == nil {
19871		invalidParams.Add(request.NewErrParamRequired("Targets"))
19872	}
19873	if s.Targets != nil && len(s.Targets) < 1 {
19874		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
19875	}
19876
19877	if invalidParams.Len() > 0 {
19878		return invalidParams
19879	}
19880	return nil
19881}
19882
19883// SetComment sets the Comment field's value.
19884func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
19885	s.Comment = &v
19886	return s
19887}
19888
19889// SetJobId sets the JobId field's value.
19890func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
19891	s.JobId = &v
19892	return s
19893}
19894
19895// SetTargets sets the Targets field's value.
19896func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
19897	s.Targets = v
19898	return s
19899}
19900
19901type AssociateTargetsWithJobOutput struct {
19902	_ struct{} `type:"structure"`
19903
19904	// A short text description of the job.
19905	Description *string `locationName:"description" type:"string"`
19906
19907	// An ARN identifying the job.
19908	JobArn *string `locationName:"jobArn" type:"string"`
19909
19910	// The unique identifier you assigned to this job when it was created.
19911	JobId *string `locationName:"jobId" min:"1" type:"string"`
19912}
19913
19914// String returns the string representation
19915func (s AssociateTargetsWithJobOutput) String() string {
19916	return awsutil.Prettify(s)
19917}
19918
19919// GoString returns the string representation
19920func (s AssociateTargetsWithJobOutput) GoString() string {
19921	return s.String()
19922}
19923
19924// SetDescription sets the Description field's value.
19925func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
19926	s.Description = &v
19927	return s
19928}
19929
19930// SetJobArn sets the JobArn field's value.
19931func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
19932	s.JobArn = &v
19933	return s
19934}
19935
19936// SetJobId sets the JobId field's value.
19937func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
19938	s.JobId = &v
19939	return s
19940}
19941
19942type AttachPolicyInput struct {
19943	_ struct{} `type:"structure"`
19944
19945	// The name of the policy to attach.
19946	//
19947	// PolicyName is a required field
19948	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
19949
19950	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/iot-security-identity.html)
19951	// to which the policy is attached.
19952	//
19953	// Target is a required field
19954	Target *string `locationName:"target" type:"string" required:"true"`
19955}
19956
19957// String returns the string representation
19958func (s AttachPolicyInput) String() string {
19959	return awsutil.Prettify(s)
19960}
19961
19962// GoString returns the string representation
19963func (s AttachPolicyInput) GoString() string {
19964	return s.String()
19965}
19966
19967// Validate inspects the fields of the type to determine if they are valid.
19968func (s *AttachPolicyInput) Validate() error {
19969	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
19970	if s.PolicyName == nil {
19971		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
19972	}
19973	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
19974		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
19975	}
19976	if s.Target == nil {
19977		invalidParams.Add(request.NewErrParamRequired("Target"))
19978	}
19979
19980	if invalidParams.Len() > 0 {
19981		return invalidParams
19982	}
19983	return nil
19984}
19985
19986// SetPolicyName sets the PolicyName field's value.
19987func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
19988	s.PolicyName = &v
19989	return s
19990}
19991
19992// SetTarget sets the Target field's value.
19993func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
19994	s.Target = &v
19995	return s
19996}
19997
19998type AttachPolicyOutput struct {
19999	_ struct{} `type:"structure"`
20000}
20001
20002// String returns the string representation
20003func (s AttachPolicyOutput) String() string {
20004	return awsutil.Prettify(s)
20005}
20006
20007// GoString returns the string representation
20008func (s AttachPolicyOutput) GoString() string {
20009	return s.String()
20010}
20011
20012// The input for the AttachPrincipalPolicy operation.
20013type AttachPrincipalPolicyInput struct {
20014	_ struct{} `type:"structure"`
20015
20016	// The policy name.
20017	//
20018	// PolicyName is a required field
20019	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
20020
20021	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
20022	// operation) or an Amazon Cognito ID.
20023	//
20024	// Principal is a required field
20025	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
20026}
20027
20028// String returns the string representation
20029func (s AttachPrincipalPolicyInput) String() string {
20030	return awsutil.Prettify(s)
20031}
20032
20033// GoString returns the string representation
20034func (s AttachPrincipalPolicyInput) GoString() string {
20035	return s.String()
20036}
20037
20038// Validate inspects the fields of the type to determine if they are valid.
20039func (s *AttachPrincipalPolicyInput) Validate() error {
20040	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
20041	if s.PolicyName == nil {
20042		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
20043	}
20044	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
20045		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
20046	}
20047	if s.Principal == nil {
20048		invalidParams.Add(request.NewErrParamRequired("Principal"))
20049	}
20050
20051	if invalidParams.Len() > 0 {
20052		return invalidParams
20053	}
20054	return nil
20055}
20056
20057// SetPolicyName sets the PolicyName field's value.
20058func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
20059	s.PolicyName = &v
20060	return s
20061}
20062
20063// SetPrincipal sets the Principal field's value.
20064func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
20065	s.Principal = &v
20066	return s
20067}
20068
20069type AttachPrincipalPolicyOutput struct {
20070	_ struct{} `type:"structure"`
20071}
20072
20073// String returns the string representation
20074func (s AttachPrincipalPolicyOutput) String() string {
20075	return awsutil.Prettify(s)
20076}
20077
20078// GoString returns the string representation
20079func (s AttachPrincipalPolicyOutput) GoString() string {
20080	return s.String()
20081}
20082
20083type AttachSecurityProfileInput struct {
20084	_ struct{} `type:"structure"`
20085
20086	// The security profile that is attached.
20087	//
20088	// SecurityProfileName is a required field
20089	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
20090
20091	// The ARN of the target (thing group) to which the security profile is attached.
20092	//
20093	// SecurityProfileTargetArn is a required field
20094	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
20095}
20096
20097// String returns the string representation
20098func (s AttachSecurityProfileInput) String() string {
20099	return awsutil.Prettify(s)
20100}
20101
20102// GoString returns the string representation
20103func (s AttachSecurityProfileInput) GoString() string {
20104	return s.String()
20105}
20106
20107// Validate inspects the fields of the type to determine if they are valid.
20108func (s *AttachSecurityProfileInput) Validate() error {
20109	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
20110	if s.SecurityProfileName == nil {
20111		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
20112	}
20113	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
20114		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
20115	}
20116	if s.SecurityProfileTargetArn == nil {
20117		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
20118	}
20119
20120	if invalidParams.Len() > 0 {
20121		return invalidParams
20122	}
20123	return nil
20124}
20125
20126// SetSecurityProfileName sets the SecurityProfileName field's value.
20127func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
20128	s.SecurityProfileName = &v
20129	return s
20130}
20131
20132// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
20133func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
20134	s.SecurityProfileTargetArn = &v
20135	return s
20136}
20137
20138type AttachSecurityProfileOutput struct {
20139	_ struct{} `type:"structure"`
20140}
20141
20142// String returns the string representation
20143func (s AttachSecurityProfileOutput) String() string {
20144	return awsutil.Prettify(s)
20145}
20146
20147// GoString returns the string representation
20148func (s AttachSecurityProfileOutput) GoString() string {
20149	return s.String()
20150}
20151
20152// The input for the AttachThingPrincipal operation.
20153type AttachThingPrincipalInput struct {
20154	_ struct{} `type:"structure"`
20155
20156	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
20157	// operation) or an Amazon Cognito ID.
20158	//
20159	// Principal is a required field
20160	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
20161
20162	// The name of the thing.
20163	//
20164	// ThingName is a required field
20165	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
20166}
20167
20168// String returns the string representation
20169func (s AttachThingPrincipalInput) String() string {
20170	return awsutil.Prettify(s)
20171}
20172
20173// GoString returns the string representation
20174func (s AttachThingPrincipalInput) GoString() string {
20175	return s.String()
20176}
20177
20178// Validate inspects the fields of the type to determine if they are valid.
20179func (s *AttachThingPrincipalInput) Validate() error {
20180	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
20181	if s.Principal == nil {
20182		invalidParams.Add(request.NewErrParamRequired("Principal"))
20183	}
20184	if s.ThingName == nil {
20185		invalidParams.Add(request.NewErrParamRequired("ThingName"))
20186	}
20187	if s.ThingName != nil && len(*s.ThingName) < 1 {
20188		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
20189	}
20190
20191	if invalidParams.Len() > 0 {
20192		return invalidParams
20193	}
20194	return nil
20195}
20196
20197// SetPrincipal sets the Principal field's value.
20198func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
20199	s.Principal = &v
20200	return s
20201}
20202
20203// SetThingName sets the ThingName field's value.
20204func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
20205	s.ThingName = &v
20206	return s
20207}
20208
20209// The output from the AttachThingPrincipal operation.
20210type AttachThingPrincipalOutput struct {
20211	_ struct{} `type:"structure"`
20212}
20213
20214// String returns the string representation
20215func (s AttachThingPrincipalOutput) String() string {
20216	return awsutil.Prettify(s)
20217}
20218
20219// GoString returns the string representation
20220func (s AttachThingPrincipalOutput) GoString() string {
20221	return s.String()
20222}
20223
20224// The attribute payload.
20225type AttributePayload struct {
20226	_ struct{} `type:"structure"`
20227
20228	// A JSON string containing up to three key-value pair in JSON format. For example:
20229	//
20230	// {\"attributes\":{\"string1\":\"string2\"}}
20231	Attributes map[string]*string `locationName:"attributes" type:"map"`
20232
20233	// Specifies whether the list of attributes provided in the AttributePayload
20234	// is merged with the attributes stored in the registry, instead of overwriting
20235	// them.
20236	//
20237	// To remove an attribute, call UpdateThing with an empty attribute value.
20238	//
20239	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
20240	Merge *bool `locationName:"merge" type:"boolean"`
20241}
20242
20243// String returns the string representation
20244func (s AttributePayload) String() string {
20245	return awsutil.Prettify(s)
20246}
20247
20248// GoString returns the string representation
20249func (s AttributePayload) GoString() string {
20250	return s.String()
20251}
20252
20253// SetAttributes sets the Attributes field's value.
20254func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
20255	s.Attributes = v
20256	return s
20257}
20258
20259// SetMerge sets the Merge field's value.
20260func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
20261	s.Merge = &v
20262	return s
20263}
20264
20265// Which audit checks are enabled and disabled for this account.
20266type AuditCheckConfiguration struct {
20267	_ struct{} `type:"structure"`
20268
20269	// True if this audit check is enabled for this account.
20270	Enabled *bool `locationName:"enabled" type:"boolean"`
20271}
20272
20273// String returns the string representation
20274func (s AuditCheckConfiguration) String() string {
20275	return awsutil.Prettify(s)
20276}
20277
20278// GoString returns the string representation
20279func (s AuditCheckConfiguration) GoString() string {
20280	return s.String()
20281}
20282
20283// SetEnabled sets the Enabled field's value.
20284func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
20285	s.Enabled = &v
20286	return s
20287}
20288
20289// Information about the audit check.
20290type AuditCheckDetails struct {
20291	_ struct{} `type:"structure"`
20292
20293	// True if the check is complete and found all resources compliant.
20294	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
20295
20296	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
20297	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
20298	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
20299
20300	// The code of any error encountered when this check is performed during this
20301	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
20302	ErrorCode *string `locationName:"errorCode" type:"string"`
20303
20304	// The message associated with any error encountered when this check is performed
20305	// during this audit.
20306	Message *string `locationName:"message" type:"string"`
20307
20308	// The number of resources that were found noncompliant during the check.
20309	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
20310
20311	// The number of resources on which the check was performed.
20312	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
20313}
20314
20315// String returns the string representation
20316func (s AuditCheckDetails) String() string {
20317	return awsutil.Prettify(s)
20318}
20319
20320// GoString returns the string representation
20321func (s AuditCheckDetails) GoString() string {
20322	return s.String()
20323}
20324
20325// SetCheckCompliant sets the CheckCompliant field's value.
20326func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
20327	s.CheckCompliant = &v
20328	return s
20329}
20330
20331// SetCheckRunStatus sets the CheckRunStatus field's value.
20332func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
20333	s.CheckRunStatus = &v
20334	return s
20335}
20336
20337// SetErrorCode sets the ErrorCode field's value.
20338func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
20339	s.ErrorCode = &v
20340	return s
20341}
20342
20343// SetMessage sets the Message field's value.
20344func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
20345	s.Message = &v
20346	return s
20347}
20348
20349// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
20350func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
20351	s.NonCompliantResourcesCount = &v
20352	return s
20353}
20354
20355// SetTotalResourcesCount sets the TotalResourcesCount field's value.
20356func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
20357	s.TotalResourcesCount = &v
20358	return s
20359}
20360
20361// The findings (results) of the audit.
20362type AuditFinding struct {
20363	_ struct{} `type:"structure"`
20364
20365	// The audit check that generated this result.
20366	CheckName *string `locationName:"checkName" type:"string"`
20367
20368	// A unique identifier for this set of audit findings. This identifier is used
20369	// to apply mitigation tasks to one or more sets of findings.
20370	FindingId *string `locationName:"findingId" min:"1" type:"string"`
20371
20372	// The time the result (finding) was discovered.
20373	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
20374
20375	// The resource that was found to be noncompliant with the audit check.
20376	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
20377
20378	// The reason the resource was noncompliant.
20379	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
20380
20381	// A code that indicates the reason that the resource was noncompliant.
20382	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
20383
20384	// The list of related resources.
20385	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
20386
20387	// The severity of the result (finding).
20388	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
20389
20390	// The ID of the audit that generated this result (finding).
20391	TaskId *string `locationName:"taskId" min:"1" type:"string"`
20392
20393	// The time the audit started.
20394	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
20395}
20396
20397// String returns the string representation
20398func (s AuditFinding) String() string {
20399	return awsutil.Prettify(s)
20400}
20401
20402// GoString returns the string representation
20403func (s AuditFinding) GoString() string {
20404	return s.String()
20405}
20406
20407// SetCheckName sets the CheckName field's value.
20408func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
20409	s.CheckName = &v
20410	return s
20411}
20412
20413// SetFindingId sets the FindingId field's value.
20414func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
20415	s.FindingId = &v
20416	return s
20417}
20418
20419// SetFindingTime sets the FindingTime field's value.
20420func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
20421	s.FindingTime = &v
20422	return s
20423}
20424
20425// SetNonCompliantResource sets the NonCompliantResource field's value.
20426func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
20427	s.NonCompliantResource = v
20428	return s
20429}
20430
20431// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
20432func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
20433	s.ReasonForNonCompliance = &v
20434	return s
20435}
20436
20437// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
20438func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
20439	s.ReasonForNonComplianceCode = &v
20440	return s
20441}
20442
20443// SetRelatedResources sets the RelatedResources field's value.
20444func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
20445	s.RelatedResources = v
20446	return s
20447}
20448
20449// SetSeverity sets the Severity field's value.
20450func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
20451	s.Severity = &v
20452	return s
20453}
20454
20455// SetTaskId sets the TaskId field's value.
20456func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
20457	s.TaskId = &v
20458	return s
20459}
20460
20461// SetTaskStartTime sets the TaskStartTime field's value.
20462func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
20463	s.TaskStartTime = &v
20464	return s
20465}
20466
20467// Returned by ListAuditMitigationActionsTask, this object contains information
20468// that describes a mitigation action that has been started.
20469type AuditMitigationActionExecutionMetadata struct {
20470	_ struct{} `type:"structure"`
20471
20472	// The unique identifier for the mitigation action being applied by the task.
20473	ActionId *string `locationName:"actionId" type:"string"`
20474
20475	// The friendly name of the mitigation action being applied by the task.
20476	ActionName *string `locationName:"actionName" type:"string"`
20477
20478	// The date and time when the task was completed or canceled. Blank if the task
20479	// is still running.
20480	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
20481
20482	// If an error occurred, the code that indicates which type of error occurred.
20483	ErrorCode *string `locationName:"errorCode" type:"string"`
20484
20485	// The unique identifier for the findings to which the task and associated mitigation
20486	// action are applied.
20487	FindingId *string `locationName:"findingId" min:"1" type:"string"`
20488
20489	// If an error occurred, a message that describes the error.
20490	Message *string `locationName:"message" type:"string"`
20491
20492	// The date and time when the task was started.
20493	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
20494
20495	// The current status of the task being executed.
20496	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
20497
20498	// The unique identifier for the task that applies the mitigation action.
20499	TaskId *string `locationName:"taskId" min:"1" type:"string"`
20500}
20501
20502// String returns the string representation
20503func (s AuditMitigationActionExecutionMetadata) String() string {
20504	return awsutil.Prettify(s)
20505}
20506
20507// GoString returns the string representation
20508func (s AuditMitigationActionExecutionMetadata) GoString() string {
20509	return s.String()
20510}
20511
20512// SetActionId sets the ActionId field's value.
20513func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
20514	s.ActionId = &v
20515	return s
20516}
20517
20518// SetActionName sets the ActionName field's value.
20519func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
20520	s.ActionName = &v
20521	return s
20522}
20523
20524// SetEndTime sets the EndTime field's value.
20525func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
20526	s.EndTime = &v
20527	return s
20528}
20529
20530// SetErrorCode sets the ErrorCode field's value.
20531func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
20532	s.ErrorCode = &v
20533	return s
20534}
20535
20536// SetFindingId sets the FindingId field's value.
20537func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
20538	s.FindingId = &v
20539	return s
20540}
20541
20542// SetMessage sets the Message field's value.
20543func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
20544	s.Message = &v
20545	return s
20546}
20547
20548// SetStartTime sets the StartTime field's value.
20549func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
20550	s.StartTime = &v
20551	return s
20552}
20553
20554// SetStatus sets the Status field's value.
20555func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
20556	s.Status = &v
20557	return s
20558}
20559
20560// SetTaskId sets the TaskId field's value.
20561func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
20562	s.TaskId = &v
20563	return s
20564}
20565
20566// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
20567type AuditMitigationActionsTaskMetadata struct {
20568	_ struct{} `type:"structure"`
20569
20570	// The time at which the audit mitigation actions task was started.
20571	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
20572
20573	// The unique identifier for the task.
20574	TaskId *string `locationName:"taskId" min:"1" type:"string"`
20575
20576	// The current state of the audit mitigation actions task.
20577	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
20578}
20579
20580// String returns the string representation
20581func (s AuditMitigationActionsTaskMetadata) String() string {
20582	return awsutil.Prettify(s)
20583}
20584
20585// GoString returns the string representation
20586func (s AuditMitigationActionsTaskMetadata) GoString() string {
20587	return s.String()
20588}
20589
20590// SetStartTime sets the StartTime field's value.
20591func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
20592	s.StartTime = &v
20593	return s
20594}
20595
20596// SetTaskId sets the TaskId field's value.
20597func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
20598	s.TaskId = &v
20599	return s
20600}
20601
20602// SetTaskStatus sets the TaskStatus field's value.
20603func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
20604	s.TaskStatus = &v
20605	return s
20606}
20607
20608// Used in MitigationActionParams, this information identifies the target findings
20609// to which the mitigation actions are applied. Only one entry appears.
20610type AuditMitigationActionsTaskTarget struct {
20611	_ struct{} `type:"structure"`
20612
20613	// Specifies a filter in the form of an audit check and set of reason codes
20614	// that identify the findings from the audit to which the audit mitigation actions
20615	// task apply.
20616	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
20617
20618	// If the task will apply a mitigation action to findings from a specific audit,
20619	// this value uniquely identifies the audit.
20620	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
20621
20622	// If the task will apply a mitigation action to one or more listed findings,
20623	// this value uniquely identifies those findings.
20624	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
20625}
20626
20627// String returns the string representation
20628func (s AuditMitigationActionsTaskTarget) String() string {
20629	return awsutil.Prettify(s)
20630}
20631
20632// GoString returns the string representation
20633func (s AuditMitigationActionsTaskTarget) GoString() string {
20634	return s.String()
20635}
20636
20637// Validate inspects the fields of the type to determine if they are valid.
20638func (s *AuditMitigationActionsTaskTarget) Validate() error {
20639	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
20640	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
20641		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
20642	}
20643	if s.FindingIds != nil && len(s.FindingIds) < 1 {
20644		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
20645	}
20646
20647	if invalidParams.Len() > 0 {
20648		return invalidParams
20649	}
20650	return nil
20651}
20652
20653// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
20654func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
20655	s.AuditCheckToReasonCodeFilter = v
20656	return s
20657}
20658
20659// SetAuditTaskId sets the AuditTaskId field's value.
20660func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
20661	s.AuditTaskId = &v
20662	return s
20663}
20664
20665// SetFindingIds sets the FindingIds field's value.
20666func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
20667	s.FindingIds = v
20668	return s
20669}
20670
20671// Information about the targets to which audit notifications are sent.
20672type AuditNotificationTarget struct {
20673	_ struct{} `type:"structure"`
20674
20675	// True if notifications to the target are enabled.
20676	Enabled *bool `locationName:"enabled" type:"boolean"`
20677
20678	// The ARN of the role that grants permission to send notifications to the target.
20679	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
20680
20681	// The ARN of the target (SNS topic) to which audit notifications are sent.
20682	TargetArn *string `locationName:"targetArn" type:"string"`
20683}
20684
20685// String returns the string representation
20686func (s AuditNotificationTarget) String() string {
20687	return awsutil.Prettify(s)
20688}
20689
20690// GoString returns the string representation
20691func (s AuditNotificationTarget) GoString() string {
20692	return s.String()
20693}
20694
20695// Validate inspects the fields of the type to determine if they are valid.
20696func (s *AuditNotificationTarget) Validate() error {
20697	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
20698	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
20699		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
20700	}
20701
20702	if invalidParams.Len() > 0 {
20703		return invalidParams
20704	}
20705	return nil
20706}
20707
20708// SetEnabled sets the Enabled field's value.
20709func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
20710	s.Enabled = &v
20711	return s
20712}
20713
20714// SetRoleArn sets the RoleArn field's value.
20715func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
20716	s.RoleArn = &v
20717	return s
20718}
20719
20720// SetTargetArn sets the TargetArn field's value.
20721func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
20722	s.TargetArn = &v
20723	return s
20724}
20725
20726// The audits that were performed.
20727type AuditTaskMetadata struct {
20728	_ struct{} `type:"structure"`
20729
20730	// The ID of this audit.
20731	TaskId *string `locationName:"taskId" min:"1" type:"string"`
20732
20733	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
20734	// "CANCELED".
20735	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
20736
20737	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
20738	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
20739}
20740
20741// String returns the string representation
20742func (s AuditTaskMetadata) String() string {
20743	return awsutil.Prettify(s)
20744}
20745
20746// GoString returns the string representation
20747func (s AuditTaskMetadata) GoString() string {
20748	return s.String()
20749}
20750
20751// SetTaskId sets the TaskId field's value.
20752func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
20753	s.TaskId = &v
20754	return s
20755}
20756
20757// SetTaskStatus sets the TaskStatus field's value.
20758func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
20759	s.TaskStatus = &v
20760	return s
20761}
20762
20763// SetTaskType sets the TaskType field's value.
20764func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
20765	s.TaskType = &v
20766	return s
20767}
20768
20769// A collection of authorization information.
20770type AuthInfo struct {
20771	_ struct{} `type:"structure"`
20772
20773	// The type of action for which the principal is being authorized.
20774	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
20775
20776	// The resources for which the principal is being authorized to perform the
20777	// specified action.
20778	//
20779	// Resources is a required field
20780	Resources []*string `locationName:"resources" type:"list" required:"true"`
20781}
20782
20783// String returns the string representation
20784func (s AuthInfo) String() string {
20785	return awsutil.Prettify(s)
20786}
20787
20788// GoString returns the string representation
20789func (s AuthInfo) GoString() string {
20790	return s.String()
20791}
20792
20793// Validate inspects the fields of the type to determine if they are valid.
20794func (s *AuthInfo) Validate() error {
20795	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
20796	if s.Resources == nil {
20797		invalidParams.Add(request.NewErrParamRequired("Resources"))
20798	}
20799
20800	if invalidParams.Len() > 0 {
20801		return invalidParams
20802	}
20803	return nil
20804}
20805
20806// SetActionType sets the ActionType field's value.
20807func (s *AuthInfo) SetActionType(v string) *AuthInfo {
20808	s.ActionType = &v
20809	return s
20810}
20811
20812// SetResources sets the Resources field's value.
20813func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
20814	s.Resources = v
20815	return s
20816}
20817
20818// The authorizer result.
20819type AuthResult struct {
20820	_ struct{} `type:"structure"`
20821
20822	// The policies and statements that allowed the specified action.
20823	Allowed *Allowed `locationName:"allowed" type:"structure"`
20824
20825	// The final authorization decision of this scenario. Multiple statements are
20826	// taken into account when determining the authorization decision. An explicit
20827	// deny statement can override multiple allow statements.
20828	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
20829
20830	// Authorization information.
20831	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
20832
20833	// The policies and statements that denied the specified action.
20834	Denied *Denied `locationName:"denied" type:"structure"`
20835
20836	// Contains any missing context values found while evaluating policy.
20837	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
20838}
20839
20840// String returns the string representation
20841func (s AuthResult) String() string {
20842	return awsutil.Prettify(s)
20843}
20844
20845// GoString returns the string representation
20846func (s AuthResult) GoString() string {
20847	return s.String()
20848}
20849
20850// SetAllowed sets the Allowed field's value.
20851func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
20852	s.Allowed = v
20853	return s
20854}
20855
20856// SetAuthDecision sets the AuthDecision field's value.
20857func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
20858	s.AuthDecision = &v
20859	return s
20860}
20861
20862// SetAuthInfo sets the AuthInfo field's value.
20863func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
20864	s.AuthInfo = v
20865	return s
20866}
20867
20868// SetDenied sets the Denied field's value.
20869func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
20870	s.Denied = v
20871	return s
20872}
20873
20874// SetMissingContextValues sets the MissingContextValues field's value.
20875func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
20876	s.MissingContextValues = v
20877	return s
20878}
20879
20880// An object that specifies the authorization service for a domain.
20881type AuthorizerConfig struct {
20882	_ struct{} `type:"structure"`
20883
20884	// A Boolean that specifies whether the domain configuration's authorization
20885	// service can be overridden.
20886	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
20887
20888	// The name of the authorization service for a domain configuration.
20889	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
20890}
20891
20892// String returns the string representation
20893func (s AuthorizerConfig) String() string {
20894	return awsutil.Prettify(s)
20895}
20896
20897// GoString returns the string representation
20898func (s AuthorizerConfig) GoString() string {
20899	return s.String()
20900}
20901
20902// Validate inspects the fields of the type to determine if they are valid.
20903func (s *AuthorizerConfig) Validate() error {
20904	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
20905	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
20906		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
20907	}
20908
20909	if invalidParams.Len() > 0 {
20910		return invalidParams
20911	}
20912	return nil
20913}
20914
20915// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
20916func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
20917	s.AllowAuthorizerOverride = &v
20918	return s
20919}
20920
20921// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
20922func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
20923	s.DefaultAuthorizerName = &v
20924	return s
20925}
20926
20927// The authorizer description.
20928type AuthorizerDescription struct {
20929	_ struct{} `type:"structure"`
20930
20931	// The authorizer ARN.
20932	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
20933
20934	// The authorizer's Lambda function ARN.
20935	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
20936
20937	// The authorizer name.
20938	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
20939
20940	// The UNIX timestamp of when the authorizer was created.
20941	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
20942
20943	// The UNIX timestamp of when the authorizer was last updated.
20944	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
20945
20946	// Specifies whether AWS IoT validates the token signature in an authorization
20947	// request.
20948	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
20949
20950	// The status of the authorizer.
20951	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
20952
20953	// The key used to extract the token from the HTTP headers.
20954	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
20955
20956	// The public keys used to validate the token signature returned by your custom
20957	// authentication service.
20958	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
20959}
20960
20961// String returns the string representation
20962func (s AuthorizerDescription) String() string {
20963	return awsutil.Prettify(s)
20964}
20965
20966// GoString returns the string representation
20967func (s AuthorizerDescription) GoString() string {
20968	return s.String()
20969}
20970
20971// SetAuthorizerArn sets the AuthorizerArn field's value.
20972func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
20973	s.AuthorizerArn = &v
20974	return s
20975}
20976
20977// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
20978func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
20979	s.AuthorizerFunctionArn = &v
20980	return s
20981}
20982
20983// SetAuthorizerName sets the AuthorizerName field's value.
20984func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
20985	s.AuthorizerName = &v
20986	return s
20987}
20988
20989// SetCreationDate sets the CreationDate field's value.
20990func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
20991	s.CreationDate = &v
20992	return s
20993}
20994
20995// SetLastModifiedDate sets the LastModifiedDate field's value.
20996func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
20997	s.LastModifiedDate = &v
20998	return s
20999}
21000
21001// SetSigningDisabled sets the SigningDisabled field's value.
21002func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
21003	s.SigningDisabled = &v
21004	return s
21005}
21006
21007// SetStatus sets the Status field's value.
21008func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
21009	s.Status = &v
21010	return s
21011}
21012
21013// SetTokenKeyName sets the TokenKeyName field's value.
21014func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
21015	s.TokenKeyName = &v
21016	return s
21017}
21018
21019// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
21020func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
21021	s.TokenSigningPublicKeys = v
21022	return s
21023}
21024
21025// The authorizer summary.
21026type AuthorizerSummary struct {
21027	_ struct{} `type:"structure"`
21028
21029	// The authorizer ARN.
21030	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
21031
21032	// The authorizer name.
21033	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
21034}
21035
21036// String returns the string representation
21037func (s AuthorizerSummary) String() string {
21038	return awsutil.Prettify(s)
21039}
21040
21041// GoString returns the string representation
21042func (s AuthorizerSummary) GoString() string {
21043	return s.String()
21044}
21045
21046// SetAuthorizerArn sets the AuthorizerArn field's value.
21047func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
21048	s.AuthorizerArn = &v
21049	return s
21050}
21051
21052// SetAuthorizerName sets the AuthorizerName field's value.
21053func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
21054	s.AuthorizerName = &v
21055	return s
21056}
21057
21058// Configuration for the rollout of OTA updates.
21059type AwsJobExecutionsRolloutConfig struct {
21060	_ struct{} `type:"structure"`
21061
21062	// The maximum number of OTA update job executions started per minute.
21063	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
21064}
21065
21066// String returns the string representation
21067func (s AwsJobExecutionsRolloutConfig) String() string {
21068	return awsutil.Prettify(s)
21069}
21070
21071// GoString returns the string representation
21072func (s AwsJobExecutionsRolloutConfig) GoString() string {
21073	return s.String()
21074}
21075
21076// Validate inspects the fields of the type to determine if they are valid.
21077func (s *AwsJobExecutionsRolloutConfig) Validate() error {
21078	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
21079	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
21080		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
21081	}
21082
21083	if invalidParams.Len() > 0 {
21084		return invalidParams
21085	}
21086	return nil
21087}
21088
21089// SetMaximumPerMinute sets the MaximumPerMinute field's value.
21090func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
21091	s.MaximumPerMinute = &v
21092	return s
21093}
21094
21095// Configuration information for pre-signed URLs. Valid when protocols contains
21096// HTTP.
21097type AwsJobPresignedUrlConfig struct {
21098	_ struct{} `type:"structure"`
21099
21100	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
21101	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
21102	// for the job document is received.
21103	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
21104}
21105
21106// String returns the string representation
21107func (s AwsJobPresignedUrlConfig) String() string {
21108	return awsutil.Prettify(s)
21109}
21110
21111// GoString returns the string representation
21112func (s AwsJobPresignedUrlConfig) GoString() string {
21113	return s.String()
21114}
21115
21116// SetExpiresInSec sets the ExpiresInSec field's value.
21117func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
21118	s.ExpiresInSec = &v
21119	return s
21120}
21121
21122// A Device Defender security profile behavior.
21123type Behavior struct {
21124	_ struct{} `type:"structure"`
21125
21126	// The criteria that determine if a device is behaving normally in regard to
21127	// the metric.
21128	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
21129
21130	// What is measured by the behavior.
21131	Metric *string `locationName:"metric" type:"string"`
21132
21133	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
21134	// dimension, you can narrow down the scope of the metric only to MQTT topics
21135	// whose name match the pattern specified in the dimension.
21136	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
21137
21138	// The name you have given to the behavior.
21139	//
21140	// Name is a required field
21141	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
21142}
21143
21144// String returns the string representation
21145func (s Behavior) String() string {
21146	return awsutil.Prettify(s)
21147}
21148
21149// GoString returns the string representation
21150func (s Behavior) GoString() string {
21151	return s.String()
21152}
21153
21154// Validate inspects the fields of the type to determine if they are valid.
21155func (s *Behavior) Validate() error {
21156	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
21157	if s.Name == nil {
21158		invalidParams.Add(request.NewErrParamRequired("Name"))
21159	}
21160	if s.Name != nil && len(*s.Name) < 1 {
21161		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
21162	}
21163	if s.Criteria != nil {
21164		if err := s.Criteria.Validate(); err != nil {
21165			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
21166		}
21167	}
21168	if s.MetricDimension != nil {
21169		if err := s.MetricDimension.Validate(); err != nil {
21170			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
21171		}
21172	}
21173
21174	if invalidParams.Len() > 0 {
21175		return invalidParams
21176	}
21177	return nil
21178}
21179
21180// SetCriteria sets the Criteria field's value.
21181func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
21182	s.Criteria = v
21183	return s
21184}
21185
21186// SetMetric sets the Metric field's value.
21187func (s *Behavior) SetMetric(v string) *Behavior {
21188	s.Metric = &v
21189	return s
21190}
21191
21192// SetMetricDimension sets the MetricDimension field's value.
21193func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
21194	s.MetricDimension = v
21195	return s
21196}
21197
21198// SetName sets the Name field's value.
21199func (s *Behavior) SetName(v string) *Behavior {
21200	s.Name = &v
21201	return s
21202}
21203
21204// The criteria by which the behavior is determined to be normal.
21205type BehaviorCriteria struct {
21206	_ struct{} `type:"structure"`
21207
21208	// The operator that relates the thing measured (metric) to the criteria (containing
21209	// a value or statisticalThreshold).
21210	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
21211
21212	// If a device is in violation of the behavior for the specified number of consecutive
21213	// datapoints, an alarm occurs. If not specified, the default is 1.
21214	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
21215
21216	// If an alarm has occurred and the offending device is no longer in violation
21217	// of the behavior for the specified number of consecutive datapoints, the alarm
21218	// is cleared. If not specified, the default is 1.
21219	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
21220
21221	// Use this to specify the time duration over which the behavior is evaluated,
21222	// for those criteria which have a time dimension (for example, NUM_MESSAGES_SENT).
21223	// For a statisticalThreshhold metric comparison, measurements from all devices
21224	// are accumulated over this time duration before being used to calculate percentiles,
21225	// and later, measurements from an individual device are also accumulated over
21226	// this time duration before being given a percentile rank.
21227	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
21228
21229	// A statistical ranking (percentile) which indicates a threshold value by which
21230	// a behavior is determined to be in compliance or in violation of the behavior.
21231	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
21232
21233	// The value to be compared with the metric.
21234	Value *MetricValue `locationName:"value" type:"structure"`
21235}
21236
21237// String returns the string representation
21238func (s BehaviorCriteria) String() string {
21239	return awsutil.Prettify(s)
21240}
21241
21242// GoString returns the string representation
21243func (s BehaviorCriteria) GoString() string {
21244	return s.String()
21245}
21246
21247// Validate inspects the fields of the type to determine if they are valid.
21248func (s *BehaviorCriteria) Validate() error {
21249	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
21250	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
21251		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
21252	}
21253	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
21254		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
21255	}
21256
21257	if invalidParams.Len() > 0 {
21258		return invalidParams
21259	}
21260	return nil
21261}
21262
21263// SetComparisonOperator sets the ComparisonOperator field's value.
21264func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
21265	s.ComparisonOperator = &v
21266	return s
21267}
21268
21269// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
21270func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
21271	s.ConsecutiveDatapointsToAlarm = &v
21272	return s
21273}
21274
21275// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
21276func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
21277	s.ConsecutiveDatapointsToClear = &v
21278	return s
21279}
21280
21281// SetDurationSeconds sets the DurationSeconds field's value.
21282func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
21283	s.DurationSeconds = &v
21284	return s
21285}
21286
21287// SetStatisticalThreshold sets the StatisticalThreshold field's value.
21288func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
21289	s.StatisticalThreshold = v
21290	return s
21291}
21292
21293// SetValue sets the Value field's value.
21294func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
21295	s.Value = v
21296	return s
21297}
21298
21299// Additional information about the billing group.
21300type BillingGroupMetadata struct {
21301	_ struct{} `type:"structure"`
21302
21303	// The date the billing group was created.
21304	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
21305}
21306
21307// String returns the string representation
21308func (s BillingGroupMetadata) String() string {
21309	return awsutil.Prettify(s)
21310}
21311
21312// GoString returns the string representation
21313func (s BillingGroupMetadata) GoString() string {
21314	return s.String()
21315}
21316
21317// SetCreationDate sets the CreationDate field's value.
21318func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
21319	s.CreationDate = &v
21320	return s
21321}
21322
21323// The properties of a billing group.
21324type BillingGroupProperties struct {
21325	_ struct{} `type:"structure"`
21326
21327	// The description of the billing group.
21328	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
21329}
21330
21331// String returns the string representation
21332func (s BillingGroupProperties) String() string {
21333	return awsutil.Prettify(s)
21334}
21335
21336// GoString returns the string representation
21337func (s BillingGroupProperties) GoString() string {
21338	return s.String()
21339}
21340
21341// SetBillingGroupDescription sets the BillingGroupDescription field's value.
21342func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
21343	s.BillingGroupDescription = &v
21344	return s
21345}
21346
21347// A CA certificate.
21348type CACertificate struct {
21349	_ struct{} `type:"structure"`
21350
21351	// The ARN of the CA certificate.
21352	CertificateArn *string `locationName:"certificateArn" type:"string"`
21353
21354	// The ID of the CA certificate.
21355	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
21356
21357	// The date the CA certificate was created.
21358	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
21359
21360	// The status of the CA certificate.
21361	//
21362	// The status value REGISTER_INACTIVE is deprecated and should not be used.
21363	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
21364}
21365
21366// String returns the string representation
21367func (s CACertificate) String() string {
21368	return awsutil.Prettify(s)
21369}
21370
21371// GoString returns the string representation
21372func (s CACertificate) GoString() string {
21373	return s.String()
21374}
21375
21376// SetCertificateArn sets the CertificateArn field's value.
21377func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
21378	s.CertificateArn = &v
21379	return s
21380}
21381
21382// SetCertificateId sets the CertificateId field's value.
21383func (s *CACertificate) SetCertificateId(v string) *CACertificate {
21384	s.CertificateId = &v
21385	return s
21386}
21387
21388// SetCreationDate sets the CreationDate field's value.
21389func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
21390	s.CreationDate = &v
21391	return s
21392}
21393
21394// SetStatus sets the Status field's value.
21395func (s *CACertificate) SetStatus(v string) *CACertificate {
21396	s.Status = &v
21397	return s
21398}
21399
21400// Describes a CA certificate.
21401type CACertificateDescription struct {
21402	_ struct{} `type:"structure"`
21403
21404	// Whether the CA certificate configured for auto registration of device certificates.
21405	// Valid values are "ENABLE" and "DISABLE"
21406	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
21407
21408	// The CA certificate ARN.
21409	CertificateArn *string `locationName:"certificateArn" type:"string"`
21410
21411	// The CA certificate ID.
21412	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
21413
21414	// The CA certificate data, in PEM format.
21415	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
21416
21417	// The date the CA certificate was created.
21418	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
21419
21420	// The customer version of the CA certificate.
21421	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
21422
21423	// The generation ID of the CA certificate.
21424	GenerationId *string `locationName:"generationId" type:"string"`
21425
21426	// The date the CA certificate was last modified.
21427	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
21428
21429	// The owner of the CA certificate.
21430	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
21431
21432	// The status of a CA certificate.
21433	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
21434
21435	// When the CA certificate is valid.
21436	Validity *CertificateValidity `locationName:"validity" type:"structure"`
21437}
21438
21439// String returns the string representation
21440func (s CACertificateDescription) String() string {
21441	return awsutil.Prettify(s)
21442}
21443
21444// GoString returns the string representation
21445func (s CACertificateDescription) GoString() string {
21446	return s.String()
21447}
21448
21449// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
21450func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
21451	s.AutoRegistrationStatus = &v
21452	return s
21453}
21454
21455// SetCertificateArn sets the CertificateArn field's value.
21456func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
21457	s.CertificateArn = &v
21458	return s
21459}
21460
21461// SetCertificateId sets the CertificateId field's value.
21462func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
21463	s.CertificateId = &v
21464	return s
21465}
21466
21467// SetCertificatePem sets the CertificatePem field's value.
21468func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
21469	s.CertificatePem = &v
21470	return s
21471}
21472
21473// SetCreationDate sets the CreationDate field's value.
21474func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
21475	s.CreationDate = &v
21476	return s
21477}
21478
21479// SetCustomerVersion sets the CustomerVersion field's value.
21480func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
21481	s.CustomerVersion = &v
21482	return s
21483}
21484
21485// SetGenerationId sets the GenerationId field's value.
21486func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
21487	s.GenerationId = &v
21488	return s
21489}
21490
21491// SetLastModifiedDate sets the LastModifiedDate field's value.
21492func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
21493	s.LastModifiedDate = &v
21494	return s
21495}
21496
21497// SetOwnedBy sets the OwnedBy field's value.
21498func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
21499	s.OwnedBy = &v
21500	return s
21501}
21502
21503// SetStatus sets the Status field's value.
21504func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
21505	s.Status = &v
21506	return s
21507}
21508
21509// SetValidity sets the Validity field's value.
21510func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
21511	s.Validity = v
21512	return s
21513}
21514
21515type CancelAuditMitigationActionsTaskInput struct {
21516	_ struct{} `type:"structure"`
21517
21518	// The unique identifier for the task that you want to cancel.
21519	//
21520	// TaskId is a required field
21521	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
21522}
21523
21524// String returns the string representation
21525func (s CancelAuditMitigationActionsTaskInput) String() string {
21526	return awsutil.Prettify(s)
21527}
21528
21529// GoString returns the string representation
21530func (s CancelAuditMitigationActionsTaskInput) GoString() string {
21531	return s.String()
21532}
21533
21534// Validate inspects the fields of the type to determine if they are valid.
21535func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
21536	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
21537	if s.TaskId == nil {
21538		invalidParams.Add(request.NewErrParamRequired("TaskId"))
21539	}
21540	if s.TaskId != nil && len(*s.TaskId) < 1 {
21541		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
21542	}
21543
21544	if invalidParams.Len() > 0 {
21545		return invalidParams
21546	}
21547	return nil
21548}
21549
21550// SetTaskId sets the TaskId field's value.
21551func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
21552	s.TaskId = &v
21553	return s
21554}
21555
21556type CancelAuditMitigationActionsTaskOutput struct {
21557	_ struct{} `type:"structure"`
21558}
21559
21560// String returns the string representation
21561func (s CancelAuditMitigationActionsTaskOutput) String() string {
21562	return awsutil.Prettify(s)
21563}
21564
21565// GoString returns the string representation
21566func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
21567	return s.String()
21568}
21569
21570type CancelAuditTaskInput struct {
21571	_ struct{} `type:"structure"`
21572
21573	// The ID of the audit you want to cancel. You can only cancel an audit that
21574	// is "IN_PROGRESS".
21575	//
21576	// TaskId is a required field
21577	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
21578}
21579
21580// String returns the string representation
21581func (s CancelAuditTaskInput) String() string {
21582	return awsutil.Prettify(s)
21583}
21584
21585// GoString returns the string representation
21586func (s CancelAuditTaskInput) GoString() string {
21587	return s.String()
21588}
21589
21590// Validate inspects the fields of the type to determine if they are valid.
21591func (s *CancelAuditTaskInput) Validate() error {
21592	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
21593	if s.TaskId == nil {
21594		invalidParams.Add(request.NewErrParamRequired("TaskId"))
21595	}
21596	if s.TaskId != nil && len(*s.TaskId) < 1 {
21597		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
21598	}
21599
21600	if invalidParams.Len() > 0 {
21601		return invalidParams
21602	}
21603	return nil
21604}
21605
21606// SetTaskId sets the TaskId field's value.
21607func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
21608	s.TaskId = &v
21609	return s
21610}
21611
21612type CancelAuditTaskOutput struct {
21613	_ struct{} `type:"structure"`
21614}
21615
21616// String returns the string representation
21617func (s CancelAuditTaskOutput) String() string {
21618	return awsutil.Prettify(s)
21619}
21620
21621// GoString returns the string representation
21622func (s CancelAuditTaskOutput) GoString() string {
21623	return s.String()
21624}
21625
21626// The input for the CancelCertificateTransfer operation.
21627type CancelCertificateTransferInput struct {
21628	_ struct{} `type:"structure"`
21629
21630	// The ID of the certificate. (The last part of the certificate ARN contains
21631	// the certificate ID.)
21632	//
21633	// CertificateId is a required field
21634	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
21635}
21636
21637// String returns the string representation
21638func (s CancelCertificateTransferInput) String() string {
21639	return awsutil.Prettify(s)
21640}
21641
21642// GoString returns the string representation
21643func (s CancelCertificateTransferInput) GoString() string {
21644	return s.String()
21645}
21646
21647// Validate inspects the fields of the type to determine if they are valid.
21648func (s *CancelCertificateTransferInput) Validate() error {
21649	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
21650	if s.CertificateId == nil {
21651		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
21652	}
21653	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
21654		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
21655	}
21656
21657	if invalidParams.Len() > 0 {
21658		return invalidParams
21659	}
21660	return nil
21661}
21662
21663// SetCertificateId sets the CertificateId field's value.
21664func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
21665	s.CertificateId = &v
21666	return s
21667}
21668
21669type CancelCertificateTransferOutput struct {
21670	_ struct{} `type:"structure"`
21671}
21672
21673// String returns the string representation
21674func (s CancelCertificateTransferOutput) String() string {
21675	return awsutil.Prettify(s)
21676}
21677
21678// GoString returns the string representation
21679func (s CancelCertificateTransferOutput) GoString() string {
21680	return s.String()
21681}
21682
21683type CancelJobExecutionInput struct {
21684	_ struct{} `type:"structure"`
21685
21686	// (Optional) The expected current version of the job execution. Each time you
21687	// update the job execution, its version is incremented. If the version of the
21688	// job execution stored in Jobs does not match, the update is rejected with
21689	// a VersionMismatch error, and an ErrorResponse that contains the current job
21690	// execution status data is returned. (This makes it unnecessary to perform
21691	// a separate DescribeJobExecution request in order to obtain the job execution
21692	// status data.)
21693	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
21694
21695	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
21696	// or QUEUED, otherwise the job execution will be canceled only if it has status
21697	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
21698	// you do not set force to true, then an InvalidStateTransitionException will
21699	// be thrown. The default is false.
21700	//
21701	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
21702	// be unable to update the job execution status. Use caution and ensure that
21703	// the device is able to recover to a valid state.
21704	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
21705
21706	// The ID of the job to be canceled.
21707	//
21708	// JobId is a required field
21709	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
21710
21711	// A collection of name/value pairs that describe the status of the job execution.
21712	// If not specified, the statusDetails are unchanged. You can specify at most
21713	// 10 name/value pairs.
21714	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
21715
21716	// The name of the thing whose execution of the job will be canceled.
21717	//
21718	// ThingName is a required field
21719	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
21720}
21721
21722// String returns the string representation
21723func (s CancelJobExecutionInput) String() string {
21724	return awsutil.Prettify(s)
21725}
21726
21727// GoString returns the string representation
21728func (s CancelJobExecutionInput) GoString() string {
21729	return s.String()
21730}
21731
21732// Validate inspects the fields of the type to determine if they are valid.
21733func (s *CancelJobExecutionInput) Validate() error {
21734	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
21735	if s.JobId == nil {
21736		invalidParams.Add(request.NewErrParamRequired("JobId"))
21737	}
21738	if s.JobId != nil && len(*s.JobId) < 1 {
21739		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
21740	}
21741	if s.ThingName == nil {
21742		invalidParams.Add(request.NewErrParamRequired("ThingName"))
21743	}
21744	if s.ThingName != nil && len(*s.ThingName) < 1 {
21745		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
21746	}
21747
21748	if invalidParams.Len() > 0 {
21749		return invalidParams
21750	}
21751	return nil
21752}
21753
21754// SetExpectedVersion sets the ExpectedVersion field's value.
21755func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
21756	s.ExpectedVersion = &v
21757	return s
21758}
21759
21760// SetForce sets the Force field's value.
21761func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
21762	s.Force = &v
21763	return s
21764}
21765
21766// SetJobId sets the JobId field's value.
21767func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
21768	s.JobId = &v
21769	return s
21770}
21771
21772// SetStatusDetails sets the StatusDetails field's value.
21773func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
21774	s.StatusDetails = v
21775	return s
21776}
21777
21778// SetThingName sets the ThingName field's value.
21779func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
21780	s.ThingName = &v
21781	return s
21782}
21783
21784type CancelJobExecutionOutput struct {
21785	_ struct{} `type:"structure"`
21786}
21787
21788// String returns the string representation
21789func (s CancelJobExecutionOutput) String() string {
21790	return awsutil.Prettify(s)
21791}
21792
21793// GoString returns the string representation
21794func (s CancelJobExecutionOutput) GoString() string {
21795	return s.String()
21796}
21797
21798type CancelJobInput struct {
21799	_ struct{} `type:"structure"`
21800
21801	// An optional comment string describing why the job was canceled.
21802	Comment *string `locationName:"comment" type:"string"`
21803
21804	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
21805	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
21806	// The default is false.
21807	//
21808	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
21809	// the job to be unable to update the job execution status. Use caution and
21810	// ensure that each device executing a job which is canceled is able to recover
21811	// to a valid state.
21812	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
21813
21814	// The unique identifier you assigned to this job when it was created.
21815	//
21816	// JobId is a required field
21817	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
21818
21819	// (Optional)A reason code string that explains why the job was canceled.
21820	ReasonCode *string `locationName:"reasonCode" type:"string"`
21821}
21822
21823// String returns the string representation
21824func (s CancelJobInput) String() string {
21825	return awsutil.Prettify(s)
21826}
21827
21828// GoString returns the string representation
21829func (s CancelJobInput) GoString() string {
21830	return s.String()
21831}
21832
21833// Validate inspects the fields of the type to determine if they are valid.
21834func (s *CancelJobInput) Validate() error {
21835	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
21836	if s.JobId == nil {
21837		invalidParams.Add(request.NewErrParamRequired("JobId"))
21838	}
21839	if s.JobId != nil && len(*s.JobId) < 1 {
21840		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
21841	}
21842
21843	if invalidParams.Len() > 0 {
21844		return invalidParams
21845	}
21846	return nil
21847}
21848
21849// SetComment sets the Comment field's value.
21850func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
21851	s.Comment = &v
21852	return s
21853}
21854
21855// SetForce sets the Force field's value.
21856func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
21857	s.Force = &v
21858	return s
21859}
21860
21861// SetJobId sets the JobId field's value.
21862func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
21863	s.JobId = &v
21864	return s
21865}
21866
21867// SetReasonCode sets the ReasonCode field's value.
21868func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
21869	s.ReasonCode = &v
21870	return s
21871}
21872
21873type CancelJobOutput struct {
21874	_ struct{} `type:"structure"`
21875
21876	// A short text description of the job.
21877	Description *string `locationName:"description" type:"string"`
21878
21879	// The job ARN.
21880	JobArn *string `locationName:"jobArn" type:"string"`
21881
21882	// The unique identifier you assigned to this job when it was created.
21883	JobId *string `locationName:"jobId" min:"1" type:"string"`
21884}
21885
21886// String returns the string representation
21887func (s CancelJobOutput) String() string {
21888	return awsutil.Prettify(s)
21889}
21890
21891// GoString returns the string representation
21892func (s CancelJobOutput) GoString() string {
21893	return s.String()
21894}
21895
21896// SetDescription sets the Description field's value.
21897func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
21898	s.Description = &v
21899	return s
21900}
21901
21902// SetJobArn sets the JobArn field's value.
21903func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
21904	s.JobArn = &v
21905	return s
21906}
21907
21908// SetJobId sets the JobId field's value.
21909func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
21910	s.JobId = &v
21911	return s
21912}
21913
21914// Information about a certificate.
21915type Certificate struct {
21916	_ struct{} `type:"structure"`
21917
21918	// The ARN of the certificate.
21919	CertificateArn *string `locationName:"certificateArn" type:"string"`
21920
21921	// The ID of the certificate. (The last part of the certificate ARN contains
21922	// the certificate ID.)
21923	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
21924
21925	// The mode of the certificate.
21926	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
21927
21928	// The date and time the certificate was created.
21929	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
21930
21931	// The status of the certificate.
21932	//
21933	// The status value REGISTER_INACTIVE is deprecated and should not be used.
21934	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
21935}
21936
21937// String returns the string representation
21938func (s Certificate) String() string {
21939	return awsutil.Prettify(s)
21940}
21941
21942// GoString returns the string representation
21943func (s Certificate) GoString() string {
21944	return s.String()
21945}
21946
21947// SetCertificateArn sets the CertificateArn field's value.
21948func (s *Certificate) SetCertificateArn(v string) *Certificate {
21949	s.CertificateArn = &v
21950	return s
21951}
21952
21953// SetCertificateId sets the CertificateId field's value.
21954func (s *Certificate) SetCertificateId(v string) *Certificate {
21955	s.CertificateId = &v
21956	return s
21957}
21958
21959// SetCertificateMode sets the CertificateMode field's value.
21960func (s *Certificate) SetCertificateMode(v string) *Certificate {
21961	s.CertificateMode = &v
21962	return s
21963}
21964
21965// SetCreationDate sets the CreationDate field's value.
21966func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
21967	s.CreationDate = &v
21968	return s
21969}
21970
21971// SetStatus sets the Status field's value.
21972func (s *Certificate) SetStatus(v string) *Certificate {
21973	s.Status = &v
21974	return s
21975}
21976
21977// Unable to verify the CA certificate used to sign the device certificate you
21978// are attempting to register. This is happens when you have registered more
21979// than one CA certificate that has the same subject field and public key.
21980type CertificateConflictException struct {
21981	_            struct{}                  `type:"structure"`
21982	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
21983
21984	// The message for the exception.
21985	Message_ *string `locationName:"message" type:"string"`
21986}
21987
21988// String returns the string representation
21989func (s CertificateConflictException) String() string {
21990	return awsutil.Prettify(s)
21991}
21992
21993// GoString returns the string representation
21994func (s CertificateConflictException) GoString() string {
21995	return s.String()
21996}
21997
21998func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
21999	return &CertificateConflictException{
22000		RespMetadata: v,
22001	}
22002}
22003
22004// Code returns the exception type name.
22005func (s *CertificateConflictException) Code() string {
22006	return "CertificateConflictException"
22007}
22008
22009// Message returns the exception's message.
22010func (s *CertificateConflictException) Message() string {
22011	if s.Message_ != nil {
22012		return *s.Message_
22013	}
22014	return ""
22015}
22016
22017// OrigErr always returns nil, satisfies awserr.Error interface.
22018func (s *CertificateConflictException) OrigErr() error {
22019	return nil
22020}
22021
22022func (s *CertificateConflictException) Error() string {
22023	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22024}
22025
22026// Status code returns the HTTP status code for the request's response error.
22027func (s *CertificateConflictException) StatusCode() int {
22028	return s.RespMetadata.StatusCode
22029}
22030
22031// RequestID returns the service's response RequestID for request.
22032func (s *CertificateConflictException) RequestID() string {
22033	return s.RespMetadata.RequestID
22034}
22035
22036// Describes a certificate.
22037type CertificateDescription struct {
22038	_ struct{} `type:"structure"`
22039
22040	// The certificate ID of the CA certificate used to sign this certificate.
22041	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
22042
22043	// The ARN of the certificate.
22044	CertificateArn *string `locationName:"certificateArn" type:"string"`
22045
22046	// The ID of the certificate.
22047	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
22048
22049	// The mode of the certificate.
22050	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
22051
22052	// The certificate data, in PEM format.
22053	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
22054
22055	// The date and time the certificate was created.
22056	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
22057
22058	// The customer version of the certificate.
22059	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
22060
22061	// The generation ID of the certificate.
22062	GenerationId *string `locationName:"generationId" type:"string"`
22063
22064	// The date and time the certificate was last modified.
22065	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
22066
22067	// The ID of the AWS account that owns the certificate.
22068	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
22069
22070	// The ID of the AWS account of the previous owner of the certificate.
22071	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
22072
22073	// The status of the certificate.
22074	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
22075
22076	// The transfer data.
22077	TransferData *TransferData `locationName:"transferData" type:"structure"`
22078
22079	// When the certificate is valid.
22080	Validity *CertificateValidity `locationName:"validity" type:"structure"`
22081}
22082
22083// String returns the string representation
22084func (s CertificateDescription) String() string {
22085	return awsutil.Prettify(s)
22086}
22087
22088// GoString returns the string representation
22089func (s CertificateDescription) GoString() string {
22090	return s.String()
22091}
22092
22093// SetCaCertificateId sets the CaCertificateId field's value.
22094func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
22095	s.CaCertificateId = &v
22096	return s
22097}
22098
22099// SetCertificateArn sets the CertificateArn field's value.
22100func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
22101	s.CertificateArn = &v
22102	return s
22103}
22104
22105// SetCertificateId sets the CertificateId field's value.
22106func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
22107	s.CertificateId = &v
22108	return s
22109}
22110
22111// SetCertificateMode sets the CertificateMode field's value.
22112func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
22113	s.CertificateMode = &v
22114	return s
22115}
22116
22117// SetCertificatePem sets the CertificatePem field's value.
22118func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
22119	s.CertificatePem = &v
22120	return s
22121}
22122
22123// SetCreationDate sets the CreationDate field's value.
22124func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
22125	s.CreationDate = &v
22126	return s
22127}
22128
22129// SetCustomerVersion sets the CustomerVersion field's value.
22130func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
22131	s.CustomerVersion = &v
22132	return s
22133}
22134
22135// SetGenerationId sets the GenerationId field's value.
22136func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
22137	s.GenerationId = &v
22138	return s
22139}
22140
22141// SetLastModifiedDate sets the LastModifiedDate field's value.
22142func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
22143	s.LastModifiedDate = &v
22144	return s
22145}
22146
22147// SetOwnedBy sets the OwnedBy field's value.
22148func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
22149	s.OwnedBy = &v
22150	return s
22151}
22152
22153// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
22154func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
22155	s.PreviousOwnedBy = &v
22156	return s
22157}
22158
22159// SetStatus sets the Status field's value.
22160func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
22161	s.Status = &v
22162	return s
22163}
22164
22165// SetTransferData sets the TransferData field's value.
22166func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
22167	s.TransferData = v
22168	return s
22169}
22170
22171// SetValidity sets the Validity field's value.
22172func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
22173	s.Validity = v
22174	return s
22175}
22176
22177// The certificate operation is not allowed.
22178type CertificateStateException struct {
22179	_            struct{}                  `type:"structure"`
22180	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22181
22182	// The message for the exception.
22183	Message_ *string `locationName:"message" type:"string"`
22184}
22185
22186// String returns the string representation
22187func (s CertificateStateException) String() string {
22188	return awsutil.Prettify(s)
22189}
22190
22191// GoString returns the string representation
22192func (s CertificateStateException) GoString() string {
22193	return s.String()
22194}
22195
22196func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
22197	return &CertificateStateException{
22198		RespMetadata: v,
22199	}
22200}
22201
22202// Code returns the exception type name.
22203func (s *CertificateStateException) Code() string {
22204	return "CertificateStateException"
22205}
22206
22207// Message returns the exception's message.
22208func (s *CertificateStateException) Message() string {
22209	if s.Message_ != nil {
22210		return *s.Message_
22211	}
22212	return ""
22213}
22214
22215// OrigErr always returns nil, satisfies awserr.Error interface.
22216func (s *CertificateStateException) OrigErr() error {
22217	return nil
22218}
22219
22220func (s *CertificateStateException) Error() string {
22221	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22222}
22223
22224// Status code returns the HTTP status code for the request's response error.
22225func (s *CertificateStateException) StatusCode() int {
22226	return s.RespMetadata.StatusCode
22227}
22228
22229// RequestID returns the service's response RequestID for request.
22230func (s *CertificateStateException) RequestID() string {
22231	return s.RespMetadata.RequestID
22232}
22233
22234// The certificate is invalid.
22235type CertificateValidationException struct {
22236	_            struct{}                  `type:"structure"`
22237	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22238
22239	// Additional information about the exception.
22240	Message_ *string `locationName:"message" type:"string"`
22241}
22242
22243// String returns the string representation
22244func (s CertificateValidationException) String() string {
22245	return awsutil.Prettify(s)
22246}
22247
22248// GoString returns the string representation
22249func (s CertificateValidationException) GoString() string {
22250	return s.String()
22251}
22252
22253func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
22254	return &CertificateValidationException{
22255		RespMetadata: v,
22256	}
22257}
22258
22259// Code returns the exception type name.
22260func (s *CertificateValidationException) Code() string {
22261	return "CertificateValidationException"
22262}
22263
22264// Message returns the exception's message.
22265func (s *CertificateValidationException) Message() string {
22266	if s.Message_ != nil {
22267		return *s.Message_
22268	}
22269	return ""
22270}
22271
22272// OrigErr always returns nil, satisfies awserr.Error interface.
22273func (s *CertificateValidationException) OrigErr() error {
22274	return nil
22275}
22276
22277func (s *CertificateValidationException) Error() string {
22278	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22279}
22280
22281// Status code returns the HTTP status code for the request's response error.
22282func (s *CertificateValidationException) StatusCode() int {
22283	return s.RespMetadata.StatusCode
22284}
22285
22286// RequestID returns the service's response RequestID for request.
22287func (s *CertificateValidationException) RequestID() string {
22288	return s.RespMetadata.RequestID
22289}
22290
22291// When the certificate is valid.
22292type CertificateValidity struct {
22293	_ struct{} `type:"structure"`
22294
22295	// The certificate is not valid after this date.
22296	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
22297
22298	// The certificate is not valid before this date.
22299	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
22300}
22301
22302// String returns the string representation
22303func (s CertificateValidity) String() string {
22304	return awsutil.Prettify(s)
22305}
22306
22307// GoString returns the string representation
22308func (s CertificateValidity) GoString() string {
22309	return s.String()
22310}
22311
22312// SetNotAfter sets the NotAfter field's value.
22313func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
22314	s.NotAfter = &v
22315	return s
22316}
22317
22318// SetNotBefore sets the NotBefore field's value.
22319func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
22320	s.NotBefore = &v
22321	return s
22322}
22323
22324type ClearDefaultAuthorizerInput struct {
22325	_ struct{} `type:"structure"`
22326}
22327
22328// String returns the string representation
22329func (s ClearDefaultAuthorizerInput) String() string {
22330	return awsutil.Prettify(s)
22331}
22332
22333// GoString returns the string representation
22334func (s ClearDefaultAuthorizerInput) GoString() string {
22335	return s.String()
22336}
22337
22338type ClearDefaultAuthorizerOutput struct {
22339	_ struct{} `type:"structure"`
22340}
22341
22342// String returns the string representation
22343func (s ClearDefaultAuthorizerOutput) String() string {
22344	return awsutil.Prettify(s)
22345}
22346
22347// GoString returns the string representation
22348func (s ClearDefaultAuthorizerOutput) GoString() string {
22349	return s.String()
22350}
22351
22352// Describes an action that updates a CloudWatch alarm.
22353type CloudwatchAlarmAction struct {
22354	_ struct{} `type:"structure"`
22355
22356	// The CloudWatch alarm name.
22357	//
22358	// AlarmName is a required field
22359	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
22360
22361	// The IAM role that allows access to the CloudWatch alarm.
22362	//
22363	// RoleArn is a required field
22364	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
22365
22366	// The reason for the alarm change.
22367	//
22368	// StateReason is a required field
22369	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
22370
22371	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
22372	//
22373	// StateValue is a required field
22374	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
22375}
22376
22377// String returns the string representation
22378func (s CloudwatchAlarmAction) String() string {
22379	return awsutil.Prettify(s)
22380}
22381
22382// GoString returns the string representation
22383func (s CloudwatchAlarmAction) GoString() string {
22384	return s.String()
22385}
22386
22387// Validate inspects the fields of the type to determine if they are valid.
22388func (s *CloudwatchAlarmAction) Validate() error {
22389	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
22390	if s.AlarmName == nil {
22391		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
22392	}
22393	if s.RoleArn == nil {
22394		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
22395	}
22396	if s.StateReason == nil {
22397		invalidParams.Add(request.NewErrParamRequired("StateReason"))
22398	}
22399	if s.StateValue == nil {
22400		invalidParams.Add(request.NewErrParamRequired("StateValue"))
22401	}
22402
22403	if invalidParams.Len() > 0 {
22404		return invalidParams
22405	}
22406	return nil
22407}
22408
22409// SetAlarmName sets the AlarmName field's value.
22410func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
22411	s.AlarmName = &v
22412	return s
22413}
22414
22415// SetRoleArn sets the RoleArn field's value.
22416func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
22417	s.RoleArn = &v
22418	return s
22419}
22420
22421// SetStateReason sets the StateReason field's value.
22422func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
22423	s.StateReason = &v
22424	return s
22425}
22426
22427// SetStateValue sets the StateValue field's value.
22428func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
22429	s.StateValue = &v
22430	return s
22431}
22432
22433// Describes an action that sends data to CloudWatch Logs.
22434type CloudwatchLogsAction struct {
22435	_ struct{} `type:"structure"`
22436
22437	// The CloudWatch log group to which the action sends data.
22438	//
22439	// LogGroupName is a required field
22440	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
22441
22442	// The IAM role that allows access to the CloudWatch log.
22443	//
22444	// RoleArn is a required field
22445	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
22446}
22447
22448// String returns the string representation
22449func (s CloudwatchLogsAction) String() string {
22450	return awsutil.Prettify(s)
22451}
22452
22453// GoString returns the string representation
22454func (s CloudwatchLogsAction) GoString() string {
22455	return s.String()
22456}
22457
22458// Validate inspects the fields of the type to determine if they are valid.
22459func (s *CloudwatchLogsAction) Validate() error {
22460	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
22461	if s.LogGroupName == nil {
22462		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
22463	}
22464	if s.RoleArn == nil {
22465		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
22466	}
22467
22468	if invalidParams.Len() > 0 {
22469		return invalidParams
22470	}
22471	return nil
22472}
22473
22474// SetLogGroupName sets the LogGroupName field's value.
22475func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
22476	s.LogGroupName = &v
22477	return s
22478}
22479
22480// SetRoleArn sets the RoleArn field's value.
22481func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
22482	s.RoleArn = &v
22483	return s
22484}
22485
22486// Describes an action that captures a CloudWatch metric.
22487type CloudwatchMetricAction struct {
22488	_ struct{} `type:"structure"`
22489
22490	// The CloudWatch metric name.
22491	//
22492	// MetricName is a required field
22493	MetricName *string `locationName:"metricName" type:"string" required:"true"`
22494
22495	// The CloudWatch metric namespace name.
22496	//
22497	// MetricNamespace is a required field
22498	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
22499
22500	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
22501	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
22502
22503	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
22504	// supported by CloudWatch.
22505	//
22506	// MetricUnit is a required field
22507	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
22508
22509	// The CloudWatch metric value.
22510	//
22511	// MetricValue is a required field
22512	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
22513
22514	// The IAM role that allows access to the CloudWatch metric.
22515	//
22516	// RoleArn is a required field
22517	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
22518}
22519
22520// String returns the string representation
22521func (s CloudwatchMetricAction) String() string {
22522	return awsutil.Prettify(s)
22523}
22524
22525// GoString returns the string representation
22526func (s CloudwatchMetricAction) GoString() string {
22527	return s.String()
22528}
22529
22530// Validate inspects the fields of the type to determine if they are valid.
22531func (s *CloudwatchMetricAction) Validate() error {
22532	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
22533	if s.MetricName == nil {
22534		invalidParams.Add(request.NewErrParamRequired("MetricName"))
22535	}
22536	if s.MetricNamespace == nil {
22537		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
22538	}
22539	if s.MetricUnit == nil {
22540		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
22541	}
22542	if s.MetricValue == nil {
22543		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
22544	}
22545	if s.RoleArn == nil {
22546		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
22547	}
22548
22549	if invalidParams.Len() > 0 {
22550		return invalidParams
22551	}
22552	return nil
22553}
22554
22555// SetMetricName sets the MetricName field's value.
22556func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
22557	s.MetricName = &v
22558	return s
22559}
22560
22561// SetMetricNamespace sets the MetricNamespace field's value.
22562func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
22563	s.MetricNamespace = &v
22564	return s
22565}
22566
22567// SetMetricTimestamp sets the MetricTimestamp field's value.
22568func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
22569	s.MetricTimestamp = &v
22570	return s
22571}
22572
22573// SetMetricUnit sets the MetricUnit field's value.
22574func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
22575	s.MetricUnit = &v
22576	return s
22577}
22578
22579// SetMetricValue sets the MetricValue field's value.
22580func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
22581	s.MetricValue = &v
22582	return s
22583}
22584
22585// SetRoleArn sets the RoleArn field's value.
22586func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
22587	s.RoleArn = &v
22588	return s
22589}
22590
22591// Describes the method to use when code signing a file.
22592type CodeSigning struct {
22593	_ struct{} `type:"structure"`
22594
22595	// The ID of the AWSSignerJob which was created to sign the file.
22596	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
22597
22598	// A custom method for code signing a file.
22599	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
22600
22601	// Describes the code-signing job.
22602	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
22603}
22604
22605// String returns the string representation
22606func (s CodeSigning) String() string {
22607	return awsutil.Prettify(s)
22608}
22609
22610// GoString returns the string representation
22611func (s CodeSigning) GoString() string {
22612	return s.String()
22613}
22614
22615// Validate inspects the fields of the type to determine if they are valid.
22616func (s *CodeSigning) Validate() error {
22617	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
22618	if s.StartSigningJobParameter != nil {
22619		if err := s.StartSigningJobParameter.Validate(); err != nil {
22620			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
22621		}
22622	}
22623
22624	if invalidParams.Len() > 0 {
22625		return invalidParams
22626	}
22627	return nil
22628}
22629
22630// SetAwsSignerJobId sets the AwsSignerJobId field's value.
22631func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
22632	s.AwsSignerJobId = &v
22633	return s
22634}
22635
22636// SetCustomCodeSigning sets the CustomCodeSigning field's value.
22637func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
22638	s.CustomCodeSigning = v
22639	return s
22640}
22641
22642// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
22643func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
22644	s.StartSigningJobParameter = v
22645	return s
22646}
22647
22648// Describes the certificate chain being used when code signing a file.
22649type CodeSigningCertificateChain struct {
22650	_ struct{} `type:"structure"`
22651
22652	// The name of the certificate.
22653	CertificateName *string `locationName:"certificateName" type:"string"`
22654
22655	// A base64 encoded binary representation of the code signing certificate chain.
22656	InlineDocument *string `locationName:"inlineDocument" type:"string"`
22657}
22658
22659// String returns the string representation
22660func (s CodeSigningCertificateChain) String() string {
22661	return awsutil.Prettify(s)
22662}
22663
22664// GoString returns the string representation
22665func (s CodeSigningCertificateChain) GoString() string {
22666	return s.String()
22667}
22668
22669// SetCertificateName sets the CertificateName field's value.
22670func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
22671	s.CertificateName = &v
22672	return s
22673}
22674
22675// SetInlineDocument sets the InlineDocument field's value.
22676func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
22677	s.InlineDocument = &v
22678	return s
22679}
22680
22681// Describes the signature for a file.
22682type CodeSigningSignature struct {
22683	_ struct{} `type:"structure"`
22684
22685	// A base64 encoded binary representation of the code signing signature.
22686	//
22687	// InlineDocument is automatically base64 encoded/decoded by the SDK.
22688	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
22689}
22690
22691// String returns the string representation
22692func (s CodeSigningSignature) String() string {
22693	return awsutil.Prettify(s)
22694}
22695
22696// GoString returns the string representation
22697func (s CodeSigningSignature) GoString() string {
22698	return s.String()
22699}
22700
22701// SetInlineDocument sets the InlineDocument field's value.
22702func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
22703	s.InlineDocument = v
22704	return s
22705}
22706
22707// Configuration.
22708type Configuration struct {
22709	_ struct{} `type:"structure"`
22710
22711	// True to enable the configuration.
22712	Enabled *bool `type:"boolean"`
22713}
22714
22715// String returns the string representation
22716func (s Configuration) String() string {
22717	return awsutil.Prettify(s)
22718}
22719
22720// GoString returns the string representation
22721func (s Configuration) GoString() string {
22722	return s.String()
22723}
22724
22725// SetEnabled sets the Enabled field's value.
22726func (s *Configuration) SetEnabled(v bool) *Configuration {
22727	s.Enabled = &v
22728	return s
22729}
22730
22731type ConfirmTopicRuleDestinationInput struct {
22732	_ struct{} `type:"structure"`
22733
22734	// The token used to confirm ownership or access to the topic rule confirmation
22735	// URL.
22736	//
22737	// ConfirmationToken is a required field
22738	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
22739}
22740
22741// String returns the string representation
22742func (s ConfirmTopicRuleDestinationInput) String() string {
22743	return awsutil.Prettify(s)
22744}
22745
22746// GoString returns the string representation
22747func (s ConfirmTopicRuleDestinationInput) GoString() string {
22748	return s.String()
22749}
22750
22751// Validate inspects the fields of the type to determine if they are valid.
22752func (s *ConfirmTopicRuleDestinationInput) Validate() error {
22753	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
22754	if s.ConfirmationToken == nil {
22755		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
22756	}
22757	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
22758		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
22759	}
22760
22761	if invalidParams.Len() > 0 {
22762		return invalidParams
22763	}
22764	return nil
22765}
22766
22767// SetConfirmationToken sets the ConfirmationToken field's value.
22768func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
22769	s.ConfirmationToken = &v
22770	return s
22771}
22772
22773type ConfirmTopicRuleDestinationOutput struct {
22774	_ struct{} `type:"structure"`
22775}
22776
22777// String returns the string representation
22778func (s ConfirmTopicRuleDestinationOutput) String() string {
22779	return awsutil.Prettify(s)
22780}
22781
22782// GoString returns the string representation
22783func (s ConfirmTopicRuleDestinationOutput) GoString() string {
22784	return s.String()
22785}
22786
22787// A conflicting resource update exception. This exception is thrown when two
22788// pending updates cause a conflict.
22789type ConflictingResourceUpdateException struct {
22790	_            struct{}                  `type:"structure"`
22791	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
22792
22793	// The message for the exception.
22794	Message_ *string `locationName:"message" type:"string"`
22795}
22796
22797// String returns the string representation
22798func (s ConflictingResourceUpdateException) String() string {
22799	return awsutil.Prettify(s)
22800}
22801
22802// GoString returns the string representation
22803func (s ConflictingResourceUpdateException) GoString() string {
22804	return s.String()
22805}
22806
22807func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
22808	return &ConflictingResourceUpdateException{
22809		RespMetadata: v,
22810	}
22811}
22812
22813// Code returns the exception type name.
22814func (s *ConflictingResourceUpdateException) Code() string {
22815	return "ConflictingResourceUpdateException"
22816}
22817
22818// Message returns the exception's message.
22819func (s *ConflictingResourceUpdateException) Message() string {
22820	if s.Message_ != nil {
22821		return *s.Message_
22822	}
22823	return ""
22824}
22825
22826// OrigErr always returns nil, satisfies awserr.Error interface.
22827func (s *ConflictingResourceUpdateException) OrigErr() error {
22828	return nil
22829}
22830
22831func (s *ConflictingResourceUpdateException) Error() string {
22832	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
22833}
22834
22835// Status code returns the HTTP status code for the request's response error.
22836func (s *ConflictingResourceUpdateException) StatusCode() int {
22837	return s.RespMetadata.StatusCode
22838}
22839
22840// RequestID returns the service's response RequestID for request.
22841func (s *ConflictingResourceUpdateException) RequestID() string {
22842	return s.RespMetadata.RequestID
22843}
22844
22845type CreateAuthorizerInput struct {
22846	_ struct{} `type:"structure"`
22847
22848	// The ARN of the authorizer's Lambda function.
22849	//
22850	// AuthorizerFunctionArn is a required field
22851	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
22852
22853	// The authorizer name.
22854	//
22855	// AuthorizerName is a required field
22856	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
22857
22858	// Specifies whether AWS IoT validates the token signature in an authorization
22859	// request.
22860	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
22861
22862	// The status of the create authorizer request.
22863	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
22864
22865	// Metadata which can be used to manage the custom authorizer.
22866	//
22867	// For URI Request parameters use format: ...key1=value1&key2=value2...
22868	//
22869	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
22870	//
22871	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
22872	Tags []*Tag `locationName:"tags" type:"list"`
22873
22874	// The name of the token key used to extract the token from the HTTP headers.
22875	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
22876
22877	// The public keys used to verify the digital signature returned by your custom
22878	// authentication service.
22879	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
22880}
22881
22882// String returns the string representation
22883func (s CreateAuthorizerInput) String() string {
22884	return awsutil.Prettify(s)
22885}
22886
22887// GoString returns the string representation
22888func (s CreateAuthorizerInput) GoString() string {
22889	return s.String()
22890}
22891
22892// Validate inspects the fields of the type to determine if they are valid.
22893func (s *CreateAuthorizerInput) Validate() error {
22894	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
22895	if s.AuthorizerFunctionArn == nil {
22896		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
22897	}
22898	if s.AuthorizerName == nil {
22899		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
22900	}
22901	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
22902		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
22903	}
22904	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
22905		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
22906	}
22907	if s.Tags != nil {
22908		for i, v := range s.Tags {
22909			if v == nil {
22910				continue
22911			}
22912			if err := v.Validate(); err != nil {
22913				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
22914			}
22915		}
22916	}
22917
22918	if invalidParams.Len() > 0 {
22919		return invalidParams
22920	}
22921	return nil
22922}
22923
22924// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
22925func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
22926	s.AuthorizerFunctionArn = &v
22927	return s
22928}
22929
22930// SetAuthorizerName sets the AuthorizerName field's value.
22931func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
22932	s.AuthorizerName = &v
22933	return s
22934}
22935
22936// SetSigningDisabled sets the SigningDisabled field's value.
22937func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
22938	s.SigningDisabled = &v
22939	return s
22940}
22941
22942// SetStatus sets the Status field's value.
22943func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
22944	s.Status = &v
22945	return s
22946}
22947
22948// SetTags sets the Tags field's value.
22949func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
22950	s.Tags = v
22951	return s
22952}
22953
22954// SetTokenKeyName sets the TokenKeyName field's value.
22955func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
22956	s.TokenKeyName = &v
22957	return s
22958}
22959
22960// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
22961func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
22962	s.TokenSigningPublicKeys = v
22963	return s
22964}
22965
22966type CreateAuthorizerOutput struct {
22967	_ struct{} `type:"structure"`
22968
22969	// The authorizer ARN.
22970	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
22971
22972	// The authorizer's name.
22973	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
22974}
22975
22976// String returns the string representation
22977func (s CreateAuthorizerOutput) String() string {
22978	return awsutil.Prettify(s)
22979}
22980
22981// GoString returns the string representation
22982func (s CreateAuthorizerOutput) GoString() string {
22983	return s.String()
22984}
22985
22986// SetAuthorizerArn sets the AuthorizerArn field's value.
22987func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
22988	s.AuthorizerArn = &v
22989	return s
22990}
22991
22992// SetAuthorizerName sets the AuthorizerName field's value.
22993func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
22994	s.AuthorizerName = &v
22995	return s
22996}
22997
22998type CreateBillingGroupInput struct {
22999	_ struct{} `type:"structure"`
23000
23001	// The name you wish to give to the billing group.
23002	//
23003	// BillingGroupName is a required field
23004	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
23005
23006	// The properties of the billing group.
23007	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
23008
23009	// Metadata which can be used to manage the billing group.
23010	Tags []*Tag `locationName:"tags" type:"list"`
23011}
23012
23013// String returns the string representation
23014func (s CreateBillingGroupInput) String() string {
23015	return awsutil.Prettify(s)
23016}
23017
23018// GoString returns the string representation
23019func (s CreateBillingGroupInput) GoString() string {
23020	return s.String()
23021}
23022
23023// Validate inspects the fields of the type to determine if they are valid.
23024func (s *CreateBillingGroupInput) Validate() error {
23025	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
23026	if s.BillingGroupName == nil {
23027		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
23028	}
23029	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
23030		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
23031	}
23032	if s.Tags != nil {
23033		for i, v := range s.Tags {
23034			if v == nil {
23035				continue
23036			}
23037			if err := v.Validate(); err != nil {
23038				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
23039			}
23040		}
23041	}
23042
23043	if invalidParams.Len() > 0 {
23044		return invalidParams
23045	}
23046	return nil
23047}
23048
23049// SetBillingGroupName sets the BillingGroupName field's value.
23050func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
23051	s.BillingGroupName = &v
23052	return s
23053}
23054
23055// SetBillingGroupProperties sets the BillingGroupProperties field's value.
23056func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
23057	s.BillingGroupProperties = v
23058	return s
23059}
23060
23061// SetTags sets the Tags field's value.
23062func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
23063	s.Tags = v
23064	return s
23065}
23066
23067type CreateBillingGroupOutput struct {
23068	_ struct{} `type:"structure"`
23069
23070	// The ARN of the billing group.
23071	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
23072
23073	// The ID of the billing group.
23074	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
23075
23076	// The name you gave to the billing group.
23077	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
23078}
23079
23080// String returns the string representation
23081func (s CreateBillingGroupOutput) String() string {
23082	return awsutil.Prettify(s)
23083}
23084
23085// GoString returns the string representation
23086func (s CreateBillingGroupOutput) GoString() string {
23087	return s.String()
23088}
23089
23090// SetBillingGroupArn sets the BillingGroupArn field's value.
23091func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
23092	s.BillingGroupArn = &v
23093	return s
23094}
23095
23096// SetBillingGroupId sets the BillingGroupId field's value.
23097func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
23098	s.BillingGroupId = &v
23099	return s
23100}
23101
23102// SetBillingGroupName sets the BillingGroupName field's value.
23103func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
23104	s.BillingGroupName = &v
23105	return s
23106}
23107
23108// The input for the CreateCertificateFromCsr operation.
23109type CreateCertificateFromCsrInput struct {
23110	_ struct{} `type:"structure"`
23111
23112	// The certificate signing request (CSR).
23113	//
23114	// CertificateSigningRequest is a required field
23115	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
23116
23117	// Specifies whether the certificate is active.
23118	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
23119}
23120
23121// String returns the string representation
23122func (s CreateCertificateFromCsrInput) String() string {
23123	return awsutil.Prettify(s)
23124}
23125
23126// GoString returns the string representation
23127func (s CreateCertificateFromCsrInput) GoString() string {
23128	return s.String()
23129}
23130
23131// Validate inspects the fields of the type to determine if they are valid.
23132func (s *CreateCertificateFromCsrInput) Validate() error {
23133	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
23134	if s.CertificateSigningRequest == nil {
23135		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
23136	}
23137	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
23138		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
23139	}
23140
23141	if invalidParams.Len() > 0 {
23142		return invalidParams
23143	}
23144	return nil
23145}
23146
23147// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
23148func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
23149	s.CertificateSigningRequest = &v
23150	return s
23151}
23152
23153// SetSetAsActive sets the SetAsActive field's value.
23154func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
23155	s.SetAsActive = &v
23156	return s
23157}
23158
23159// The output from the CreateCertificateFromCsr operation.
23160type CreateCertificateFromCsrOutput struct {
23161	_ struct{} `type:"structure"`
23162
23163	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
23164	// a principal for policy operations.
23165	CertificateArn *string `locationName:"certificateArn" type:"string"`
23166
23167	// The ID of the certificate. Certificate management operations only take a
23168	// certificateId.
23169	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
23170
23171	// The certificate data, in PEM format.
23172	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
23173}
23174
23175// String returns the string representation
23176func (s CreateCertificateFromCsrOutput) String() string {
23177	return awsutil.Prettify(s)
23178}
23179
23180// GoString returns the string representation
23181func (s CreateCertificateFromCsrOutput) GoString() string {
23182	return s.String()
23183}
23184
23185// SetCertificateArn sets the CertificateArn field's value.
23186func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
23187	s.CertificateArn = &v
23188	return s
23189}
23190
23191// SetCertificateId sets the CertificateId field's value.
23192func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
23193	s.CertificateId = &v
23194	return s
23195}
23196
23197// SetCertificatePem sets the CertificatePem field's value.
23198func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
23199	s.CertificatePem = &v
23200	return s
23201}
23202
23203type CreateDimensionInput struct {
23204	_ struct{} `type:"structure"`
23205
23206	// Each dimension must have a unique client request token. If you try to create
23207	// a new dimension with the same token as a dimension that already exists, an
23208	// exception occurs. If you omit this value, AWS SDKs will automatically generate
23209	// a unique client request.
23210	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
23211
23212	// A unique identifier for the dimension. Choose something that describes the
23213	// type and value to make it easy to remember what it does.
23214	//
23215	// Name is a required field
23216	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
23217
23218	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
23219	// dimensions, this is a pattern used to match the MQTT topic (for example,
23220	// "admin/#").
23221	//
23222	// StringValues is a required field
23223	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
23224
23225	// Metadata that can be used to manage the dimension.
23226	Tags []*Tag `locationName:"tags" type:"list"`
23227
23228	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
23229	//
23230	// Type is a required field
23231	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
23232}
23233
23234// String returns the string representation
23235func (s CreateDimensionInput) String() string {
23236	return awsutil.Prettify(s)
23237}
23238
23239// GoString returns the string representation
23240func (s CreateDimensionInput) GoString() string {
23241	return s.String()
23242}
23243
23244// Validate inspects the fields of the type to determine if they are valid.
23245func (s *CreateDimensionInput) Validate() error {
23246	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
23247	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
23248		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
23249	}
23250	if s.Name == nil {
23251		invalidParams.Add(request.NewErrParamRequired("Name"))
23252	}
23253	if s.Name != nil && len(*s.Name) < 1 {
23254		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
23255	}
23256	if s.StringValues == nil {
23257		invalidParams.Add(request.NewErrParamRequired("StringValues"))
23258	}
23259	if s.StringValues != nil && len(s.StringValues) < 1 {
23260		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
23261	}
23262	if s.Type == nil {
23263		invalidParams.Add(request.NewErrParamRequired("Type"))
23264	}
23265	if s.Tags != nil {
23266		for i, v := range s.Tags {
23267			if v == nil {
23268				continue
23269			}
23270			if err := v.Validate(); err != nil {
23271				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
23272			}
23273		}
23274	}
23275
23276	if invalidParams.Len() > 0 {
23277		return invalidParams
23278	}
23279	return nil
23280}
23281
23282// SetClientRequestToken sets the ClientRequestToken field's value.
23283func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
23284	s.ClientRequestToken = &v
23285	return s
23286}
23287
23288// SetName sets the Name field's value.
23289func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
23290	s.Name = &v
23291	return s
23292}
23293
23294// SetStringValues sets the StringValues field's value.
23295func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
23296	s.StringValues = v
23297	return s
23298}
23299
23300// SetTags sets the Tags field's value.
23301func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
23302	s.Tags = v
23303	return s
23304}
23305
23306// SetType sets the Type field's value.
23307func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
23308	s.Type = &v
23309	return s
23310}
23311
23312type CreateDimensionOutput struct {
23313	_ struct{} `type:"structure"`
23314
23315	// The ARN (Amazon resource name) of the created dimension.
23316	Arn *string `locationName:"arn" type:"string"`
23317
23318	// A unique identifier for the dimension.
23319	Name *string `locationName:"name" min:"1" type:"string"`
23320}
23321
23322// String returns the string representation
23323func (s CreateDimensionOutput) String() string {
23324	return awsutil.Prettify(s)
23325}
23326
23327// GoString returns the string representation
23328func (s CreateDimensionOutput) GoString() string {
23329	return s.String()
23330}
23331
23332// SetArn sets the Arn field's value.
23333func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
23334	s.Arn = &v
23335	return s
23336}
23337
23338// SetName sets the Name field's value.
23339func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
23340	s.Name = &v
23341	return s
23342}
23343
23344type CreateDomainConfigurationInput struct {
23345	_ struct{} `type:"structure"`
23346
23347	// An object that specifies the authorization service for a domain.
23348	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
23349
23350	// The name of the domain configuration. This value must be unique to a region.
23351	//
23352	// DomainConfigurationName is a required field
23353	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
23354
23355	// The name of the domain.
23356	DomainName *string `locationName:"domainName" min:"1" type:"string"`
23357
23358	// The ARNs of the certificates that AWS IoT passes to the device during the
23359	// TLS handshake. Currently you can specify only one certificate ARN. This value
23360	// is not required for AWS-managed domains.
23361	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
23362
23363	// The type of service delivered by the endpoint.
23364	//
23365	// AWS IoT Core currently supports only the DATA service type.
23366	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
23367
23368	// Metadata which can be used to manage the domain configuration.
23369	//
23370	// For URI Request parameters use format: ...key1=value1&key2=value2...
23371	//
23372	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
23373	//
23374	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
23375	Tags []*Tag `locationName:"tags" type:"list"`
23376
23377	// The certificate used to validate the server certificate and prove domain
23378	// name ownership. This certificate must be signed by a public certificate authority.
23379	// This value is not required for AWS-managed domains.
23380	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
23381}
23382
23383// String returns the string representation
23384func (s CreateDomainConfigurationInput) String() string {
23385	return awsutil.Prettify(s)
23386}
23387
23388// GoString returns the string representation
23389func (s CreateDomainConfigurationInput) GoString() string {
23390	return s.String()
23391}
23392
23393// Validate inspects the fields of the type to determine if they are valid.
23394func (s *CreateDomainConfigurationInput) Validate() error {
23395	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
23396	if s.DomainConfigurationName == nil {
23397		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
23398	}
23399	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
23400		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
23401	}
23402	if s.DomainName != nil && len(*s.DomainName) < 1 {
23403		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
23404	}
23405	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
23406		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
23407	}
23408	if s.AuthorizerConfig != nil {
23409		if err := s.AuthorizerConfig.Validate(); err != nil {
23410			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
23411		}
23412	}
23413	if s.Tags != nil {
23414		for i, v := range s.Tags {
23415			if v == nil {
23416				continue
23417			}
23418			if err := v.Validate(); err != nil {
23419				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
23420			}
23421		}
23422	}
23423
23424	if invalidParams.Len() > 0 {
23425		return invalidParams
23426	}
23427	return nil
23428}
23429
23430// SetAuthorizerConfig sets the AuthorizerConfig field's value.
23431func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
23432	s.AuthorizerConfig = v
23433	return s
23434}
23435
23436// SetDomainConfigurationName sets the DomainConfigurationName field's value.
23437func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
23438	s.DomainConfigurationName = &v
23439	return s
23440}
23441
23442// SetDomainName sets the DomainName field's value.
23443func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
23444	s.DomainName = &v
23445	return s
23446}
23447
23448// SetServerCertificateArns sets the ServerCertificateArns field's value.
23449func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
23450	s.ServerCertificateArns = v
23451	return s
23452}
23453
23454// SetServiceType sets the ServiceType field's value.
23455func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
23456	s.ServiceType = &v
23457	return s
23458}
23459
23460// SetTags sets the Tags field's value.
23461func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
23462	s.Tags = v
23463	return s
23464}
23465
23466// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
23467func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
23468	s.ValidationCertificateArn = &v
23469	return s
23470}
23471
23472type CreateDomainConfigurationOutput struct {
23473	_ struct{} `type:"structure"`
23474
23475	// The ARN of the domain configuration.
23476	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
23477
23478	// The name of the domain configuration.
23479	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
23480}
23481
23482// String returns the string representation
23483func (s CreateDomainConfigurationOutput) String() string {
23484	return awsutil.Prettify(s)
23485}
23486
23487// GoString returns the string representation
23488func (s CreateDomainConfigurationOutput) GoString() string {
23489	return s.String()
23490}
23491
23492// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
23493func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
23494	s.DomainConfigurationArn = &v
23495	return s
23496}
23497
23498// SetDomainConfigurationName sets the DomainConfigurationName field's value.
23499func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
23500	s.DomainConfigurationName = &v
23501	return s
23502}
23503
23504type CreateDynamicThingGroupInput struct {
23505	_ struct{} `type:"structure"`
23506
23507	// The dynamic thing group index name.
23508	//
23509	// Currently one index is supported: "AWS_Things".
23510	IndexName *string `locationName:"indexName" min:"1" type:"string"`
23511
23512	// The dynamic thing group search query string.
23513	//
23514	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
23515	// for information about query string syntax.
23516	//
23517	// QueryString is a required field
23518	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
23519
23520	// The dynamic thing group query version.
23521	//
23522	// Currently one query version is supported: "2017-09-30". If not specified,
23523	// the query version defaults to this value.
23524	QueryVersion *string `locationName:"queryVersion" type:"string"`
23525
23526	// Metadata which can be used to manage the dynamic thing group.
23527	Tags []*Tag `locationName:"tags" type:"list"`
23528
23529	// The dynamic thing group name to create.
23530	//
23531	// ThingGroupName is a required field
23532	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
23533
23534	// The dynamic thing group properties.
23535	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
23536}
23537
23538// String returns the string representation
23539func (s CreateDynamicThingGroupInput) String() string {
23540	return awsutil.Prettify(s)
23541}
23542
23543// GoString returns the string representation
23544func (s CreateDynamicThingGroupInput) GoString() string {
23545	return s.String()
23546}
23547
23548// Validate inspects the fields of the type to determine if they are valid.
23549func (s *CreateDynamicThingGroupInput) Validate() error {
23550	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
23551	if s.IndexName != nil && len(*s.IndexName) < 1 {
23552		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
23553	}
23554	if s.QueryString == nil {
23555		invalidParams.Add(request.NewErrParamRequired("QueryString"))
23556	}
23557	if s.QueryString != nil && len(*s.QueryString) < 1 {
23558		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
23559	}
23560	if s.ThingGroupName == nil {
23561		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
23562	}
23563	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
23564		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
23565	}
23566	if s.Tags != nil {
23567		for i, v := range s.Tags {
23568			if v == nil {
23569				continue
23570			}
23571			if err := v.Validate(); err != nil {
23572				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
23573			}
23574		}
23575	}
23576
23577	if invalidParams.Len() > 0 {
23578		return invalidParams
23579	}
23580	return nil
23581}
23582
23583// SetIndexName sets the IndexName field's value.
23584func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
23585	s.IndexName = &v
23586	return s
23587}
23588
23589// SetQueryString sets the QueryString field's value.
23590func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
23591	s.QueryString = &v
23592	return s
23593}
23594
23595// SetQueryVersion sets the QueryVersion field's value.
23596func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
23597	s.QueryVersion = &v
23598	return s
23599}
23600
23601// SetTags sets the Tags field's value.
23602func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
23603	s.Tags = v
23604	return s
23605}
23606
23607// SetThingGroupName sets the ThingGroupName field's value.
23608func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
23609	s.ThingGroupName = &v
23610	return s
23611}
23612
23613// SetThingGroupProperties sets the ThingGroupProperties field's value.
23614func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
23615	s.ThingGroupProperties = v
23616	return s
23617}
23618
23619type CreateDynamicThingGroupOutput struct {
23620	_ struct{} `type:"structure"`
23621
23622	// The dynamic thing group index name.
23623	IndexName *string `locationName:"indexName" min:"1" type:"string"`
23624
23625	// The dynamic thing group search query string.
23626	QueryString *string `locationName:"queryString" min:"1" type:"string"`
23627
23628	// The dynamic thing group query version.
23629	QueryVersion *string `locationName:"queryVersion" type:"string"`
23630
23631	// The dynamic thing group ARN.
23632	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
23633
23634	// The dynamic thing group ID.
23635	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
23636
23637	// The dynamic thing group name.
23638	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
23639}
23640
23641// String returns the string representation
23642func (s CreateDynamicThingGroupOutput) String() string {
23643	return awsutil.Prettify(s)
23644}
23645
23646// GoString returns the string representation
23647func (s CreateDynamicThingGroupOutput) GoString() string {
23648	return s.String()
23649}
23650
23651// SetIndexName sets the IndexName field's value.
23652func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
23653	s.IndexName = &v
23654	return s
23655}
23656
23657// SetQueryString sets the QueryString field's value.
23658func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
23659	s.QueryString = &v
23660	return s
23661}
23662
23663// SetQueryVersion sets the QueryVersion field's value.
23664func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
23665	s.QueryVersion = &v
23666	return s
23667}
23668
23669// SetThingGroupArn sets the ThingGroupArn field's value.
23670func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
23671	s.ThingGroupArn = &v
23672	return s
23673}
23674
23675// SetThingGroupId sets the ThingGroupId field's value.
23676func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
23677	s.ThingGroupId = &v
23678	return s
23679}
23680
23681// SetThingGroupName sets the ThingGroupName field's value.
23682func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
23683	s.ThingGroupName = &v
23684	return s
23685}
23686
23687type CreateJobInput struct {
23688	_ struct{} `type:"structure"`
23689
23690	// Allows you to create criteria to abort a job.
23691	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
23692
23693	// A short text description of the job.
23694	Description *string `locationName:"description" type:"string"`
23695
23696	// The job document.
23697	//
23698	// If the job document resides in an S3 bucket, you must use a placeholder link
23699	// when specifying the document.
23700	//
23701	// The placeholder link is of the following form:
23702	//
23703	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
23704	//
23705	// where bucket is your bucket name and key is the object in the bucket to which
23706	// you are linking.
23707	Document *string `locationName:"document" type:"string"`
23708
23709	// An S3 link to the job document.
23710	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
23711
23712	// Allows you to create a staged rollout of the job.
23713	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
23714
23715	// A job identifier which must be unique for your AWS account. We recommend
23716	// using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.
23717	//
23718	// JobId is a required field
23719	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
23720
23721	// Configuration information for pre-signed S3 URLs.
23722	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
23723
23724	// Metadata which can be used to manage the job.
23725	Tags []*Tag `locationName:"tags" type:"list"`
23726
23727	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
23728	// after all those things specified as targets have completed the job (SNAPSHOT).
23729	// If continuous, the job may also be run on a thing when a change is detected
23730	// in a target. For example, a job will run on a thing when the thing is added
23731	// to a target group, even after the job was completed by all things originally
23732	// in the group.
23733	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
23734
23735	// A list of things and thing groups to which the job should be sent.
23736	//
23737	// Targets is a required field
23738	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
23739
23740	// Specifies the amount of time each device has to finish its execution of the
23741	// job. The timer is started when the job execution status is set to IN_PROGRESS.
23742	// If the job execution status is not set to another terminal state before the
23743	// time expires, it will be automatically set to TIMED_OUT.
23744	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
23745}
23746
23747// String returns the string representation
23748func (s CreateJobInput) String() string {
23749	return awsutil.Prettify(s)
23750}
23751
23752// GoString returns the string representation
23753func (s CreateJobInput) GoString() string {
23754	return s.String()
23755}
23756
23757// Validate inspects the fields of the type to determine if they are valid.
23758func (s *CreateJobInput) Validate() error {
23759	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
23760	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
23761		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
23762	}
23763	if s.JobId == nil {
23764		invalidParams.Add(request.NewErrParamRequired("JobId"))
23765	}
23766	if s.JobId != nil && len(*s.JobId) < 1 {
23767		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
23768	}
23769	if s.Targets == nil {
23770		invalidParams.Add(request.NewErrParamRequired("Targets"))
23771	}
23772	if s.Targets != nil && len(s.Targets) < 1 {
23773		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
23774	}
23775	if s.AbortConfig != nil {
23776		if err := s.AbortConfig.Validate(); err != nil {
23777			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
23778		}
23779	}
23780	if s.JobExecutionsRolloutConfig != nil {
23781		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
23782			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
23783		}
23784	}
23785	if s.PresignedUrlConfig != nil {
23786		if err := s.PresignedUrlConfig.Validate(); err != nil {
23787			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
23788		}
23789	}
23790	if s.Tags != nil {
23791		for i, v := range s.Tags {
23792			if v == nil {
23793				continue
23794			}
23795			if err := v.Validate(); err != nil {
23796				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
23797			}
23798		}
23799	}
23800
23801	if invalidParams.Len() > 0 {
23802		return invalidParams
23803	}
23804	return nil
23805}
23806
23807// SetAbortConfig sets the AbortConfig field's value.
23808func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
23809	s.AbortConfig = v
23810	return s
23811}
23812
23813// SetDescription sets the Description field's value.
23814func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
23815	s.Description = &v
23816	return s
23817}
23818
23819// SetDocument sets the Document field's value.
23820func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
23821	s.Document = &v
23822	return s
23823}
23824
23825// SetDocumentSource sets the DocumentSource field's value.
23826func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
23827	s.DocumentSource = &v
23828	return s
23829}
23830
23831// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
23832func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
23833	s.JobExecutionsRolloutConfig = v
23834	return s
23835}
23836
23837// SetJobId sets the JobId field's value.
23838func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
23839	s.JobId = &v
23840	return s
23841}
23842
23843// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
23844func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
23845	s.PresignedUrlConfig = v
23846	return s
23847}
23848
23849// SetTags sets the Tags field's value.
23850func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
23851	s.Tags = v
23852	return s
23853}
23854
23855// SetTargetSelection sets the TargetSelection field's value.
23856func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
23857	s.TargetSelection = &v
23858	return s
23859}
23860
23861// SetTargets sets the Targets field's value.
23862func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
23863	s.Targets = v
23864	return s
23865}
23866
23867// SetTimeoutConfig sets the TimeoutConfig field's value.
23868func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
23869	s.TimeoutConfig = v
23870	return s
23871}
23872
23873type CreateJobOutput struct {
23874	_ struct{} `type:"structure"`
23875
23876	// The job description.
23877	Description *string `locationName:"description" type:"string"`
23878
23879	// The job ARN.
23880	JobArn *string `locationName:"jobArn" type:"string"`
23881
23882	// The unique identifier you assigned to this job.
23883	JobId *string `locationName:"jobId" min:"1" type:"string"`
23884}
23885
23886// String returns the string representation
23887func (s CreateJobOutput) String() string {
23888	return awsutil.Prettify(s)
23889}
23890
23891// GoString returns the string representation
23892func (s CreateJobOutput) GoString() string {
23893	return s.String()
23894}
23895
23896// SetDescription sets the Description field's value.
23897func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
23898	s.Description = &v
23899	return s
23900}
23901
23902// SetJobArn sets the JobArn field's value.
23903func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
23904	s.JobArn = &v
23905	return s
23906}
23907
23908// SetJobId sets the JobId field's value.
23909func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
23910	s.JobId = &v
23911	return s
23912}
23913
23914// The input for the CreateKeysAndCertificate operation.
23915type CreateKeysAndCertificateInput struct {
23916	_ struct{} `type:"structure"`
23917
23918	// Specifies whether the certificate is active.
23919	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
23920}
23921
23922// String returns the string representation
23923func (s CreateKeysAndCertificateInput) String() string {
23924	return awsutil.Prettify(s)
23925}
23926
23927// GoString returns the string representation
23928func (s CreateKeysAndCertificateInput) GoString() string {
23929	return s.String()
23930}
23931
23932// SetSetAsActive sets the SetAsActive field's value.
23933func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
23934	s.SetAsActive = &v
23935	return s
23936}
23937
23938// The output of the CreateKeysAndCertificate operation.
23939type CreateKeysAndCertificateOutput struct {
23940	_ struct{} `type:"structure"`
23941
23942	// The ARN of the certificate.
23943	CertificateArn *string `locationName:"certificateArn" type:"string"`
23944
23945	// The ID of the certificate. AWS IoT issues a default subject name for the
23946	// certificate (for example, AWS IoT Certificate).
23947	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
23948
23949	// The certificate data, in PEM format.
23950	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
23951
23952	// The generated key pair.
23953	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
23954}
23955
23956// String returns the string representation
23957func (s CreateKeysAndCertificateOutput) String() string {
23958	return awsutil.Prettify(s)
23959}
23960
23961// GoString returns the string representation
23962func (s CreateKeysAndCertificateOutput) GoString() string {
23963	return s.String()
23964}
23965
23966// SetCertificateArn sets the CertificateArn field's value.
23967func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
23968	s.CertificateArn = &v
23969	return s
23970}
23971
23972// SetCertificateId sets the CertificateId field's value.
23973func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
23974	s.CertificateId = &v
23975	return s
23976}
23977
23978// SetCertificatePem sets the CertificatePem field's value.
23979func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
23980	s.CertificatePem = &v
23981	return s
23982}
23983
23984// SetKeyPair sets the KeyPair field's value.
23985func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
23986	s.KeyPair = v
23987	return s
23988}
23989
23990type CreateMitigationActionInput struct {
23991	_ struct{} `type:"structure"`
23992
23993	// A friendly name for the action. Choose a friendly name that accurately describes
23994	// the action (for example, EnableLoggingAction).
23995	//
23996	// ActionName is a required field
23997	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
23998
23999	// Defines the type of action and the parameters for that action.
24000	//
24001	// ActionParams is a required field
24002	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
24003
24004	// The ARN of the IAM role that is used to apply the mitigation action.
24005	//
24006	// RoleArn is a required field
24007	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
24008
24009	// Metadata that can be used to manage the mitigation action.
24010	Tags []*Tag `locationName:"tags" type:"list"`
24011}
24012
24013// String returns the string representation
24014func (s CreateMitigationActionInput) String() string {
24015	return awsutil.Prettify(s)
24016}
24017
24018// GoString returns the string representation
24019func (s CreateMitigationActionInput) GoString() string {
24020	return s.String()
24021}
24022
24023// Validate inspects the fields of the type to determine if they are valid.
24024func (s *CreateMitigationActionInput) Validate() error {
24025	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
24026	if s.ActionName == nil {
24027		invalidParams.Add(request.NewErrParamRequired("ActionName"))
24028	}
24029	if s.ActionName != nil && len(*s.ActionName) < 1 {
24030		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
24031	}
24032	if s.ActionParams == nil {
24033		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
24034	}
24035	if s.RoleArn == nil {
24036		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
24037	}
24038	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
24039		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
24040	}
24041	if s.ActionParams != nil {
24042		if err := s.ActionParams.Validate(); err != nil {
24043			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
24044		}
24045	}
24046	if s.Tags != nil {
24047		for i, v := range s.Tags {
24048			if v == nil {
24049				continue
24050			}
24051			if err := v.Validate(); err != nil {
24052				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
24053			}
24054		}
24055	}
24056
24057	if invalidParams.Len() > 0 {
24058		return invalidParams
24059	}
24060	return nil
24061}
24062
24063// SetActionName sets the ActionName field's value.
24064func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
24065	s.ActionName = &v
24066	return s
24067}
24068
24069// SetActionParams sets the ActionParams field's value.
24070func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
24071	s.ActionParams = v
24072	return s
24073}
24074
24075// SetRoleArn sets the RoleArn field's value.
24076func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
24077	s.RoleArn = &v
24078	return s
24079}
24080
24081// SetTags sets the Tags field's value.
24082func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
24083	s.Tags = v
24084	return s
24085}
24086
24087type CreateMitigationActionOutput struct {
24088	_ struct{} `type:"structure"`
24089
24090	// The ARN for the new mitigation action.
24091	ActionArn *string `locationName:"actionArn" type:"string"`
24092
24093	// A unique identifier for the new mitigation action.
24094	ActionId *string `locationName:"actionId" type:"string"`
24095}
24096
24097// String returns the string representation
24098func (s CreateMitigationActionOutput) String() string {
24099	return awsutil.Prettify(s)
24100}
24101
24102// GoString returns the string representation
24103func (s CreateMitigationActionOutput) GoString() string {
24104	return s.String()
24105}
24106
24107// SetActionArn sets the ActionArn field's value.
24108func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
24109	s.ActionArn = &v
24110	return s
24111}
24112
24113// SetActionId sets the ActionId field's value.
24114func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
24115	s.ActionId = &v
24116	return s
24117}
24118
24119type CreateOTAUpdateInput struct {
24120	_ struct{} `type:"structure"`
24121
24122	// A list of additional OTA update parameters which are name-value pairs.
24123	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
24124
24125	// Configuration for the rollout of OTA updates.
24126	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
24127
24128	// Configuration information for pre-signed URLs.
24129	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
24130
24131	// The description of the OTA update.
24132	Description *string `locationName:"description" type:"string"`
24133
24134	// The files to be streamed by the OTA update.
24135	//
24136	// Files is a required field
24137	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
24138
24139	// The ID of the OTA update to be created.
24140	//
24141	// OtaUpdateId is a required field
24142	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
24143
24144	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
24145	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
24146	// can choose the protocol.
24147	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
24148
24149	// The IAM role that allows access to the AWS IoT Jobs service.
24150	//
24151	// RoleArn is a required field
24152	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
24153
24154	// Metadata which can be used to manage updates.
24155	Tags []*Tag `locationName:"tags" type:"list"`
24156
24157	// Specifies whether the update will continue to run (CONTINUOUS), or will be
24158	// complete after all the things specified as targets have completed the update
24159	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
24160	// is detected in a target. For example, an update will run on a thing when
24161	// the thing is added to a target group, even after the update was completed
24162	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
24163	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
24164
24165	// The targeted devices to receive OTA updates.
24166	//
24167	// Targets is a required field
24168	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
24169}
24170
24171// String returns the string representation
24172func (s CreateOTAUpdateInput) String() string {
24173	return awsutil.Prettify(s)
24174}
24175
24176// GoString returns the string representation
24177func (s CreateOTAUpdateInput) GoString() string {
24178	return s.String()
24179}
24180
24181// Validate inspects the fields of the type to determine if they are valid.
24182func (s *CreateOTAUpdateInput) Validate() error {
24183	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
24184	if s.Files == nil {
24185		invalidParams.Add(request.NewErrParamRequired("Files"))
24186	}
24187	if s.Files != nil && len(s.Files) < 1 {
24188		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
24189	}
24190	if s.OtaUpdateId == nil {
24191		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
24192	}
24193	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
24194		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
24195	}
24196	if s.Protocols != nil && len(s.Protocols) < 1 {
24197		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
24198	}
24199	if s.RoleArn == nil {
24200		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
24201	}
24202	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
24203		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
24204	}
24205	if s.Targets == nil {
24206		invalidParams.Add(request.NewErrParamRequired("Targets"))
24207	}
24208	if s.Targets != nil && len(s.Targets) < 1 {
24209		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
24210	}
24211	if s.AwsJobExecutionsRolloutConfig != nil {
24212		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
24213			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
24214		}
24215	}
24216	if s.Files != nil {
24217		for i, v := range s.Files {
24218			if v == nil {
24219				continue
24220			}
24221			if err := v.Validate(); err != nil {
24222				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
24223			}
24224		}
24225	}
24226	if s.Tags != nil {
24227		for i, v := range s.Tags {
24228			if v == nil {
24229				continue
24230			}
24231			if err := v.Validate(); err != nil {
24232				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
24233			}
24234		}
24235	}
24236
24237	if invalidParams.Len() > 0 {
24238		return invalidParams
24239	}
24240	return nil
24241}
24242
24243// SetAdditionalParameters sets the AdditionalParameters field's value.
24244func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
24245	s.AdditionalParameters = v
24246	return s
24247}
24248
24249// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
24250func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
24251	s.AwsJobExecutionsRolloutConfig = v
24252	return s
24253}
24254
24255// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
24256func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
24257	s.AwsJobPresignedUrlConfig = v
24258	return s
24259}
24260
24261// SetDescription sets the Description field's value.
24262func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
24263	s.Description = &v
24264	return s
24265}
24266
24267// SetFiles sets the Files field's value.
24268func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
24269	s.Files = v
24270	return s
24271}
24272
24273// SetOtaUpdateId sets the OtaUpdateId field's value.
24274func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
24275	s.OtaUpdateId = &v
24276	return s
24277}
24278
24279// SetProtocols sets the Protocols field's value.
24280func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
24281	s.Protocols = v
24282	return s
24283}
24284
24285// SetRoleArn sets the RoleArn field's value.
24286func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
24287	s.RoleArn = &v
24288	return s
24289}
24290
24291// SetTags sets the Tags field's value.
24292func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
24293	s.Tags = v
24294	return s
24295}
24296
24297// SetTargetSelection sets the TargetSelection field's value.
24298func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
24299	s.TargetSelection = &v
24300	return s
24301}
24302
24303// SetTargets sets the Targets field's value.
24304func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
24305	s.Targets = v
24306	return s
24307}
24308
24309type CreateOTAUpdateOutput struct {
24310	_ struct{} `type:"structure"`
24311
24312	// The AWS IoT job ARN associated with the OTA update.
24313	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
24314
24315	// The AWS IoT job ID associated with the OTA update.
24316	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
24317
24318	// The OTA update ARN.
24319	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
24320
24321	// The OTA update ID.
24322	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
24323
24324	// The OTA update status.
24325	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
24326}
24327
24328// String returns the string representation
24329func (s CreateOTAUpdateOutput) String() string {
24330	return awsutil.Prettify(s)
24331}
24332
24333// GoString returns the string representation
24334func (s CreateOTAUpdateOutput) GoString() string {
24335	return s.String()
24336}
24337
24338// SetAwsIotJobArn sets the AwsIotJobArn field's value.
24339func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
24340	s.AwsIotJobArn = &v
24341	return s
24342}
24343
24344// SetAwsIotJobId sets the AwsIotJobId field's value.
24345func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
24346	s.AwsIotJobId = &v
24347	return s
24348}
24349
24350// SetOtaUpdateArn sets the OtaUpdateArn field's value.
24351func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
24352	s.OtaUpdateArn = &v
24353	return s
24354}
24355
24356// SetOtaUpdateId sets the OtaUpdateId field's value.
24357func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
24358	s.OtaUpdateId = &v
24359	return s
24360}
24361
24362// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
24363func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
24364	s.OtaUpdateStatus = &v
24365	return s
24366}
24367
24368// The input for the CreatePolicy operation.
24369type CreatePolicyInput struct {
24370	_ struct{} `type:"structure"`
24371
24372	// The JSON document that describes the policy. policyDocument must have a minimum
24373	// length of 1, with a maximum length of 2048, excluding whitespace.
24374	//
24375	// PolicyDocument is a required field
24376	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
24377
24378	// The policy name.
24379	//
24380	// PolicyName is a required field
24381	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24382
24383	// Metadata which can be used to manage the policy.
24384	//
24385	// For URI Request parameters use format: ...key1=value1&key2=value2...
24386	//
24387	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
24388	//
24389	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
24390	Tags []*Tag `locationName:"tags" type:"list"`
24391}
24392
24393// String returns the string representation
24394func (s CreatePolicyInput) String() string {
24395	return awsutil.Prettify(s)
24396}
24397
24398// GoString returns the string representation
24399func (s CreatePolicyInput) GoString() string {
24400	return s.String()
24401}
24402
24403// Validate inspects the fields of the type to determine if they are valid.
24404func (s *CreatePolicyInput) Validate() error {
24405	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
24406	if s.PolicyDocument == nil {
24407		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
24408	}
24409	if s.PolicyName == nil {
24410		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24411	}
24412	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24413		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24414	}
24415	if s.Tags != nil {
24416		for i, v := range s.Tags {
24417			if v == nil {
24418				continue
24419			}
24420			if err := v.Validate(); err != nil {
24421				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
24422			}
24423		}
24424	}
24425
24426	if invalidParams.Len() > 0 {
24427		return invalidParams
24428	}
24429	return nil
24430}
24431
24432// SetPolicyDocument sets the PolicyDocument field's value.
24433func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
24434	s.PolicyDocument = &v
24435	return s
24436}
24437
24438// SetPolicyName sets the PolicyName field's value.
24439func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
24440	s.PolicyName = &v
24441	return s
24442}
24443
24444// SetTags sets the Tags field's value.
24445func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
24446	s.Tags = v
24447	return s
24448}
24449
24450// The output from the CreatePolicy operation.
24451type CreatePolicyOutput struct {
24452	_ struct{} `type:"structure"`
24453
24454	// The policy ARN.
24455	PolicyArn *string `locationName:"policyArn" type:"string"`
24456
24457	// The JSON document that describes the policy.
24458	PolicyDocument *string `locationName:"policyDocument" type:"string"`
24459
24460	// The policy name.
24461	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
24462
24463	// The policy version ID.
24464	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
24465}
24466
24467// String returns the string representation
24468func (s CreatePolicyOutput) String() string {
24469	return awsutil.Prettify(s)
24470}
24471
24472// GoString returns the string representation
24473func (s CreatePolicyOutput) GoString() string {
24474	return s.String()
24475}
24476
24477// SetPolicyArn sets the PolicyArn field's value.
24478func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
24479	s.PolicyArn = &v
24480	return s
24481}
24482
24483// SetPolicyDocument sets the PolicyDocument field's value.
24484func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
24485	s.PolicyDocument = &v
24486	return s
24487}
24488
24489// SetPolicyName sets the PolicyName field's value.
24490func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
24491	s.PolicyName = &v
24492	return s
24493}
24494
24495// SetPolicyVersionId sets the PolicyVersionId field's value.
24496func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
24497	s.PolicyVersionId = &v
24498	return s
24499}
24500
24501// The input for the CreatePolicyVersion operation.
24502type CreatePolicyVersionInput struct {
24503	_ struct{} `type:"structure"`
24504
24505	// The JSON document that describes the policy. Minimum length of 1. Maximum
24506	// length of 2048, excluding whitespace.
24507	//
24508	// PolicyDocument is a required field
24509	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
24510
24511	// The policy name.
24512	//
24513	// PolicyName is a required field
24514	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24515
24516	// Specifies whether the policy version is set as the default. When this parameter
24517	// is true, the new policy version becomes the operative version (that is, the
24518	// version that is in effect for the certificates to which the policy is attached).
24519	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
24520}
24521
24522// String returns the string representation
24523func (s CreatePolicyVersionInput) String() string {
24524	return awsutil.Prettify(s)
24525}
24526
24527// GoString returns the string representation
24528func (s CreatePolicyVersionInput) GoString() string {
24529	return s.String()
24530}
24531
24532// Validate inspects the fields of the type to determine if they are valid.
24533func (s *CreatePolicyVersionInput) Validate() error {
24534	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
24535	if s.PolicyDocument == nil {
24536		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
24537	}
24538	if s.PolicyName == nil {
24539		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24540	}
24541	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24542		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24543	}
24544
24545	if invalidParams.Len() > 0 {
24546		return invalidParams
24547	}
24548	return nil
24549}
24550
24551// SetPolicyDocument sets the PolicyDocument field's value.
24552func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
24553	s.PolicyDocument = &v
24554	return s
24555}
24556
24557// SetPolicyName sets the PolicyName field's value.
24558func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
24559	s.PolicyName = &v
24560	return s
24561}
24562
24563// SetSetAsDefault sets the SetAsDefault field's value.
24564func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
24565	s.SetAsDefault = &v
24566	return s
24567}
24568
24569// The output of the CreatePolicyVersion operation.
24570type CreatePolicyVersionOutput struct {
24571	_ struct{} `type:"structure"`
24572
24573	// Specifies whether the policy version is the default.
24574	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
24575
24576	// The policy ARN.
24577	PolicyArn *string `locationName:"policyArn" type:"string"`
24578
24579	// The JSON document that describes the policy.
24580	PolicyDocument *string `locationName:"policyDocument" type:"string"`
24581
24582	// The policy version ID.
24583	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
24584}
24585
24586// String returns the string representation
24587func (s CreatePolicyVersionOutput) String() string {
24588	return awsutil.Prettify(s)
24589}
24590
24591// GoString returns the string representation
24592func (s CreatePolicyVersionOutput) GoString() string {
24593	return s.String()
24594}
24595
24596// SetIsDefaultVersion sets the IsDefaultVersion field's value.
24597func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
24598	s.IsDefaultVersion = &v
24599	return s
24600}
24601
24602// SetPolicyArn sets the PolicyArn field's value.
24603func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
24604	s.PolicyArn = &v
24605	return s
24606}
24607
24608// SetPolicyDocument sets the PolicyDocument field's value.
24609func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
24610	s.PolicyDocument = &v
24611	return s
24612}
24613
24614// SetPolicyVersionId sets the PolicyVersionId field's value.
24615func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
24616	s.PolicyVersionId = &v
24617	return s
24618}
24619
24620type CreateProvisioningClaimInput struct {
24621	_ struct{} `type:"structure"`
24622
24623	// The name of the provisioning template to use.
24624	//
24625	// TemplateName is a required field
24626	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
24627}
24628
24629// String returns the string representation
24630func (s CreateProvisioningClaimInput) String() string {
24631	return awsutil.Prettify(s)
24632}
24633
24634// GoString returns the string representation
24635func (s CreateProvisioningClaimInput) GoString() string {
24636	return s.String()
24637}
24638
24639// Validate inspects the fields of the type to determine if they are valid.
24640func (s *CreateProvisioningClaimInput) Validate() error {
24641	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
24642	if s.TemplateName == nil {
24643		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
24644	}
24645	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
24646		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
24647	}
24648
24649	if invalidParams.Len() > 0 {
24650		return invalidParams
24651	}
24652	return nil
24653}
24654
24655// SetTemplateName sets the TemplateName field's value.
24656func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
24657	s.TemplateName = &v
24658	return s
24659}
24660
24661type CreateProvisioningClaimOutput struct {
24662	_ struct{} `type:"structure"`
24663
24664	// The ID of the certificate.
24665	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
24666
24667	// The provisioning claim certificate.
24668	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
24669
24670	// The provisioning claim expiration time.
24671	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
24672
24673	// The provisioning claim key pair.
24674	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
24675}
24676
24677// String returns the string representation
24678func (s CreateProvisioningClaimOutput) String() string {
24679	return awsutil.Prettify(s)
24680}
24681
24682// GoString returns the string representation
24683func (s CreateProvisioningClaimOutput) GoString() string {
24684	return s.String()
24685}
24686
24687// SetCertificateId sets the CertificateId field's value.
24688func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
24689	s.CertificateId = &v
24690	return s
24691}
24692
24693// SetCertificatePem sets the CertificatePem field's value.
24694func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
24695	s.CertificatePem = &v
24696	return s
24697}
24698
24699// SetExpiration sets the Expiration field's value.
24700func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
24701	s.Expiration = &v
24702	return s
24703}
24704
24705// SetKeyPair sets the KeyPair field's value.
24706func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
24707	s.KeyPair = v
24708	return s
24709}
24710
24711type CreateProvisioningTemplateInput struct {
24712	_ struct{} `type:"structure"`
24713
24714	// The description of the fleet provisioning template.
24715	Description *string `locationName:"description" type:"string"`
24716
24717	// True to enable the fleet provisioning template, otherwise false.
24718	Enabled *bool `locationName:"enabled" type:"boolean"`
24719
24720	// Creates a pre-provisioning hook template.
24721	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
24722
24723	// The role ARN for the role associated with the fleet provisioning template.
24724	// This IoT role grants permission to provision a device.
24725	//
24726	// ProvisioningRoleArn is a required field
24727	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
24728
24729	// Metadata which can be used to manage the fleet provisioning template.
24730	//
24731	// For URI Request parameters use format: ...key1=value1&key2=value2...
24732	//
24733	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
24734	//
24735	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
24736	Tags []*Tag `locationName:"tags" type:"list"`
24737
24738	// The JSON formatted contents of the fleet provisioning template.
24739	//
24740	// TemplateBody is a required field
24741	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
24742
24743	// The name of the fleet provisioning template.
24744	//
24745	// TemplateName is a required field
24746	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
24747}
24748
24749// String returns the string representation
24750func (s CreateProvisioningTemplateInput) String() string {
24751	return awsutil.Prettify(s)
24752}
24753
24754// GoString returns the string representation
24755func (s CreateProvisioningTemplateInput) GoString() string {
24756	return s.String()
24757}
24758
24759// Validate inspects the fields of the type to determine if they are valid.
24760func (s *CreateProvisioningTemplateInput) Validate() error {
24761	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
24762	if s.ProvisioningRoleArn == nil {
24763		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
24764	}
24765	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
24766		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
24767	}
24768	if s.TemplateBody == nil {
24769		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
24770	}
24771	if s.TemplateName == nil {
24772		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
24773	}
24774	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
24775		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
24776	}
24777	if s.PreProvisioningHook != nil {
24778		if err := s.PreProvisioningHook.Validate(); err != nil {
24779			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
24780		}
24781	}
24782	if s.Tags != nil {
24783		for i, v := range s.Tags {
24784			if v == nil {
24785				continue
24786			}
24787			if err := v.Validate(); err != nil {
24788				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
24789			}
24790		}
24791	}
24792
24793	if invalidParams.Len() > 0 {
24794		return invalidParams
24795	}
24796	return nil
24797}
24798
24799// SetDescription sets the Description field's value.
24800func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
24801	s.Description = &v
24802	return s
24803}
24804
24805// SetEnabled sets the Enabled field's value.
24806func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
24807	s.Enabled = &v
24808	return s
24809}
24810
24811// SetPreProvisioningHook sets the PreProvisioningHook field's value.
24812func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
24813	s.PreProvisioningHook = v
24814	return s
24815}
24816
24817// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
24818func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
24819	s.ProvisioningRoleArn = &v
24820	return s
24821}
24822
24823// SetTags sets the Tags field's value.
24824func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
24825	s.Tags = v
24826	return s
24827}
24828
24829// SetTemplateBody sets the TemplateBody field's value.
24830func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
24831	s.TemplateBody = &v
24832	return s
24833}
24834
24835// SetTemplateName sets the TemplateName field's value.
24836func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
24837	s.TemplateName = &v
24838	return s
24839}
24840
24841type CreateProvisioningTemplateOutput struct {
24842	_ struct{} `type:"structure"`
24843
24844	// The default version of the fleet provisioning template.
24845	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
24846
24847	// The ARN that identifies the provisioning template.
24848	TemplateArn *string `locationName:"templateArn" type:"string"`
24849
24850	// The name of the fleet provisioning template.
24851	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
24852}
24853
24854// String returns the string representation
24855func (s CreateProvisioningTemplateOutput) String() string {
24856	return awsutil.Prettify(s)
24857}
24858
24859// GoString returns the string representation
24860func (s CreateProvisioningTemplateOutput) GoString() string {
24861	return s.String()
24862}
24863
24864// SetDefaultVersionId sets the DefaultVersionId field's value.
24865func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
24866	s.DefaultVersionId = &v
24867	return s
24868}
24869
24870// SetTemplateArn sets the TemplateArn field's value.
24871func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
24872	s.TemplateArn = &v
24873	return s
24874}
24875
24876// SetTemplateName sets the TemplateName field's value.
24877func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
24878	s.TemplateName = &v
24879	return s
24880}
24881
24882type CreateProvisioningTemplateVersionInput struct {
24883	_ struct{} `type:"structure"`
24884
24885	// Sets a fleet provision template version as the default version.
24886	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
24887
24888	// The JSON formatted contents of the fleet provisioning template.
24889	//
24890	// TemplateBody is a required field
24891	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
24892
24893	// The name of the fleet provisioning template.
24894	//
24895	// TemplateName is a required field
24896	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
24897}
24898
24899// String returns the string representation
24900func (s CreateProvisioningTemplateVersionInput) String() string {
24901	return awsutil.Prettify(s)
24902}
24903
24904// GoString returns the string representation
24905func (s CreateProvisioningTemplateVersionInput) GoString() string {
24906	return s.String()
24907}
24908
24909// Validate inspects the fields of the type to determine if they are valid.
24910func (s *CreateProvisioningTemplateVersionInput) Validate() error {
24911	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
24912	if s.TemplateBody == nil {
24913		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
24914	}
24915	if s.TemplateName == nil {
24916		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
24917	}
24918	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
24919		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
24920	}
24921
24922	if invalidParams.Len() > 0 {
24923		return invalidParams
24924	}
24925	return nil
24926}
24927
24928// SetSetAsDefault sets the SetAsDefault field's value.
24929func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
24930	s.SetAsDefault = &v
24931	return s
24932}
24933
24934// SetTemplateBody sets the TemplateBody field's value.
24935func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
24936	s.TemplateBody = &v
24937	return s
24938}
24939
24940// SetTemplateName sets the TemplateName field's value.
24941func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
24942	s.TemplateName = &v
24943	return s
24944}
24945
24946type CreateProvisioningTemplateVersionOutput struct {
24947	_ struct{} `type:"structure"`
24948
24949	// True if the fleet provisioning template version is the default version, otherwise
24950	// false.
24951	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
24952
24953	// The ARN that identifies the provisioning template.
24954	TemplateArn *string `locationName:"templateArn" type:"string"`
24955
24956	// The name of the fleet provisioning template.
24957	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
24958
24959	// The version of the fleet provisioning template.
24960	VersionId *int64 `locationName:"versionId" type:"integer"`
24961}
24962
24963// String returns the string representation
24964func (s CreateProvisioningTemplateVersionOutput) String() string {
24965	return awsutil.Prettify(s)
24966}
24967
24968// GoString returns the string representation
24969func (s CreateProvisioningTemplateVersionOutput) GoString() string {
24970	return s.String()
24971}
24972
24973// SetIsDefaultVersion sets the IsDefaultVersion field's value.
24974func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
24975	s.IsDefaultVersion = &v
24976	return s
24977}
24978
24979// SetTemplateArn sets the TemplateArn field's value.
24980func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
24981	s.TemplateArn = &v
24982	return s
24983}
24984
24985// SetTemplateName sets the TemplateName field's value.
24986func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
24987	s.TemplateName = &v
24988	return s
24989}
24990
24991// SetVersionId sets the VersionId field's value.
24992func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
24993	s.VersionId = &v
24994	return s
24995}
24996
24997type CreateRoleAliasInput struct {
24998	_ struct{} `type:"structure"`
24999
25000	// How long (in seconds) the credentials will be valid.
25001	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
25002
25003	// The role alias that points to a role ARN. This allows you to change the role
25004	// without having to update the device.
25005	//
25006	// RoleAlias is a required field
25007	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
25008
25009	// The role ARN.
25010	//
25011	// RoleArn is a required field
25012	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
25013
25014	// Metadata which can be used to manage the role alias.
25015	//
25016	// For URI Request parameters use format: ...key1=value1&key2=value2...
25017	//
25018	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
25019	//
25020	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
25021	Tags []*Tag `locationName:"tags" type:"list"`
25022}
25023
25024// String returns the string representation
25025func (s CreateRoleAliasInput) String() string {
25026	return awsutil.Prettify(s)
25027}
25028
25029// GoString returns the string representation
25030func (s CreateRoleAliasInput) GoString() string {
25031	return s.String()
25032}
25033
25034// Validate inspects the fields of the type to determine if they are valid.
25035func (s *CreateRoleAliasInput) Validate() error {
25036	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
25037	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
25038		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
25039	}
25040	if s.RoleAlias == nil {
25041		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
25042	}
25043	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
25044		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
25045	}
25046	if s.RoleArn == nil {
25047		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
25048	}
25049	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25050		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25051	}
25052	if s.Tags != nil {
25053		for i, v := range s.Tags {
25054			if v == nil {
25055				continue
25056			}
25057			if err := v.Validate(); err != nil {
25058				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25059			}
25060		}
25061	}
25062
25063	if invalidParams.Len() > 0 {
25064		return invalidParams
25065	}
25066	return nil
25067}
25068
25069// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
25070func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
25071	s.CredentialDurationSeconds = &v
25072	return s
25073}
25074
25075// SetRoleAlias sets the RoleAlias field's value.
25076func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
25077	s.RoleAlias = &v
25078	return s
25079}
25080
25081// SetRoleArn sets the RoleArn field's value.
25082func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
25083	s.RoleArn = &v
25084	return s
25085}
25086
25087// SetTags sets the Tags field's value.
25088func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
25089	s.Tags = v
25090	return s
25091}
25092
25093type CreateRoleAliasOutput struct {
25094	_ struct{} `type:"structure"`
25095
25096	// The role alias.
25097	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
25098
25099	// The role alias ARN.
25100	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
25101}
25102
25103// String returns the string representation
25104func (s CreateRoleAliasOutput) String() string {
25105	return awsutil.Prettify(s)
25106}
25107
25108// GoString returns the string representation
25109func (s CreateRoleAliasOutput) GoString() string {
25110	return s.String()
25111}
25112
25113// SetRoleAlias sets the RoleAlias field's value.
25114func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
25115	s.RoleAlias = &v
25116	return s
25117}
25118
25119// SetRoleAliasArn sets the RoleAliasArn field's value.
25120func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
25121	s.RoleAliasArn = &v
25122	return s
25123}
25124
25125type CreateScheduledAuditInput struct {
25126	_ struct{} `type:"structure"`
25127
25128	// The day of the month on which the scheduled audit takes place. Can be "1"
25129	// through "31" or "LAST". This field is required if the "frequency" parameter
25130	// is set to "MONTHLY". If days 29-31 are specified, and the month does not
25131	// have that many days, the audit takes place on the "LAST" day of the month.
25132	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
25133
25134	// The day of the week on which the scheduled audit takes place. Can be one
25135	// of "SUN", "MON", "TUE", "WED", "THU", "FRI", or "SAT". This field is required
25136	// if the "frequency" parameter is set to "WEEKLY" or "BIWEEKLY".
25137	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
25138
25139	// How often the scheduled audit takes place. Can be one of "DAILY", "WEEKLY",
25140	// "BIWEEKLY" or "MONTHLY". The start time of each audit is determined by the
25141	// system.
25142	//
25143	// Frequency is a required field
25144	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
25145
25146	// The name you want to give to the scheduled audit. (Max. 128 chars)
25147	//
25148	// ScheduledAuditName is a required field
25149	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
25150
25151	// Metadata that can be used to manage the scheduled audit.
25152	Tags []*Tag `locationName:"tags" type:"list"`
25153
25154	// Which checks are performed during the scheduled audit. Checks must be enabled
25155	// for your account. (Use DescribeAccountAuditConfiguration to see the list
25156	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
25157	// to select which checks are enabled.)
25158	//
25159	// TargetCheckNames is a required field
25160	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
25161}
25162
25163// String returns the string representation
25164func (s CreateScheduledAuditInput) String() string {
25165	return awsutil.Prettify(s)
25166}
25167
25168// GoString returns the string representation
25169func (s CreateScheduledAuditInput) GoString() string {
25170	return s.String()
25171}
25172
25173// Validate inspects the fields of the type to determine if they are valid.
25174func (s *CreateScheduledAuditInput) Validate() error {
25175	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
25176	if s.Frequency == nil {
25177		invalidParams.Add(request.NewErrParamRequired("Frequency"))
25178	}
25179	if s.ScheduledAuditName == nil {
25180		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
25181	}
25182	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
25183		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
25184	}
25185	if s.TargetCheckNames == nil {
25186		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
25187	}
25188	if s.Tags != nil {
25189		for i, v := range s.Tags {
25190			if v == nil {
25191				continue
25192			}
25193			if err := v.Validate(); err != nil {
25194				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25195			}
25196		}
25197	}
25198
25199	if invalidParams.Len() > 0 {
25200		return invalidParams
25201	}
25202	return nil
25203}
25204
25205// SetDayOfMonth sets the DayOfMonth field's value.
25206func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
25207	s.DayOfMonth = &v
25208	return s
25209}
25210
25211// SetDayOfWeek sets the DayOfWeek field's value.
25212func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
25213	s.DayOfWeek = &v
25214	return s
25215}
25216
25217// SetFrequency sets the Frequency field's value.
25218func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
25219	s.Frequency = &v
25220	return s
25221}
25222
25223// SetScheduledAuditName sets the ScheduledAuditName field's value.
25224func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
25225	s.ScheduledAuditName = &v
25226	return s
25227}
25228
25229// SetTags sets the Tags field's value.
25230func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
25231	s.Tags = v
25232	return s
25233}
25234
25235// SetTargetCheckNames sets the TargetCheckNames field's value.
25236func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
25237	s.TargetCheckNames = v
25238	return s
25239}
25240
25241type CreateScheduledAuditOutput struct {
25242	_ struct{} `type:"structure"`
25243
25244	// The ARN of the scheduled audit.
25245	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
25246}
25247
25248// String returns the string representation
25249func (s CreateScheduledAuditOutput) String() string {
25250	return awsutil.Prettify(s)
25251}
25252
25253// GoString returns the string representation
25254func (s CreateScheduledAuditOutput) GoString() string {
25255	return s.String()
25256}
25257
25258// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
25259func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
25260	s.ScheduledAuditArn = &v
25261	return s
25262}
25263
25264type CreateSecurityProfileInput struct {
25265	_ struct{} `type:"structure"`
25266
25267	// A list of metrics whose data is retained (stored). By default, data is retained
25268	// for any metric used in the profile's behaviors, but it is also retained for
25269	// any metric specified here.
25270	//
25271	// Note: This API field is deprecated. Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2
25272	// instead.
25273	//
25274	// Deprecated: Use additionalMetricsToRetainV2.
25275	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
25276
25277	// A list of metrics whose data is retained (stored). By default, data is retained
25278	// for any metric used in the profile's behaviors, but it is also retained for
25279	// any metric specified here.
25280	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
25281
25282	// Specifies the destinations to which alerts are sent. (Alerts are always sent
25283	// to the console.) Alerts are generated when a device (thing) violates a behavior.
25284	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
25285
25286	// Specifies the behaviors that, when violated by a device (thing), cause an
25287	// alert.
25288	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
25289
25290	// A description of the security profile.
25291	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
25292
25293	// The name you are giving to the security profile.
25294	//
25295	// SecurityProfileName is a required field
25296	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
25297
25298	// Metadata that can be used to manage the security profile.
25299	Tags []*Tag `locationName:"tags" type:"list"`
25300}
25301
25302// String returns the string representation
25303func (s CreateSecurityProfileInput) String() string {
25304	return awsutil.Prettify(s)
25305}
25306
25307// GoString returns the string representation
25308func (s CreateSecurityProfileInput) GoString() string {
25309	return s.String()
25310}
25311
25312// Validate inspects the fields of the type to determine if they are valid.
25313func (s *CreateSecurityProfileInput) Validate() error {
25314	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
25315	if s.SecurityProfileName == nil {
25316		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
25317	}
25318	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
25319		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
25320	}
25321	if s.AdditionalMetricsToRetainV2 != nil {
25322		for i, v := range s.AdditionalMetricsToRetainV2 {
25323			if v == nil {
25324				continue
25325			}
25326			if err := v.Validate(); err != nil {
25327				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
25328			}
25329		}
25330	}
25331	if s.AlertTargets != nil {
25332		for i, v := range s.AlertTargets {
25333			if v == nil {
25334				continue
25335			}
25336			if err := v.Validate(); err != nil {
25337				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
25338			}
25339		}
25340	}
25341	if s.Behaviors != nil {
25342		for i, v := range s.Behaviors {
25343			if v == nil {
25344				continue
25345			}
25346			if err := v.Validate(); err != nil {
25347				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
25348			}
25349		}
25350	}
25351	if s.Tags != nil {
25352		for i, v := range s.Tags {
25353			if v == nil {
25354				continue
25355			}
25356			if err := v.Validate(); err != nil {
25357				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25358			}
25359		}
25360	}
25361
25362	if invalidParams.Len() > 0 {
25363		return invalidParams
25364	}
25365	return nil
25366}
25367
25368// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
25369func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
25370	s.AdditionalMetricsToRetain = v
25371	return s
25372}
25373
25374// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
25375func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
25376	s.AdditionalMetricsToRetainV2 = v
25377	return s
25378}
25379
25380// SetAlertTargets sets the AlertTargets field's value.
25381func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
25382	s.AlertTargets = v
25383	return s
25384}
25385
25386// SetBehaviors sets the Behaviors field's value.
25387func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
25388	s.Behaviors = v
25389	return s
25390}
25391
25392// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
25393func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
25394	s.SecurityProfileDescription = &v
25395	return s
25396}
25397
25398// SetSecurityProfileName sets the SecurityProfileName field's value.
25399func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
25400	s.SecurityProfileName = &v
25401	return s
25402}
25403
25404// SetTags sets the Tags field's value.
25405func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
25406	s.Tags = v
25407	return s
25408}
25409
25410type CreateSecurityProfileOutput struct {
25411	_ struct{} `type:"structure"`
25412
25413	// The ARN of the security profile.
25414	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
25415
25416	// The name you gave to the security profile.
25417	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
25418}
25419
25420// String returns the string representation
25421func (s CreateSecurityProfileOutput) String() string {
25422	return awsutil.Prettify(s)
25423}
25424
25425// GoString returns the string representation
25426func (s CreateSecurityProfileOutput) GoString() string {
25427	return s.String()
25428}
25429
25430// SetSecurityProfileArn sets the SecurityProfileArn field's value.
25431func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
25432	s.SecurityProfileArn = &v
25433	return s
25434}
25435
25436// SetSecurityProfileName sets the SecurityProfileName field's value.
25437func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
25438	s.SecurityProfileName = &v
25439	return s
25440}
25441
25442type CreateStreamInput struct {
25443	_ struct{} `type:"structure"`
25444
25445	// A description of the stream.
25446	Description *string `locationName:"description" type:"string"`
25447
25448	// The files to stream.
25449	//
25450	// Files is a required field
25451	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
25452
25453	// An IAM role that allows the IoT service principal assumes to access your
25454	// S3 files.
25455	//
25456	// RoleArn is a required field
25457	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
25458
25459	// The stream ID.
25460	//
25461	// StreamId is a required field
25462	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
25463
25464	// Metadata which can be used to manage streams.
25465	Tags []*Tag `locationName:"tags" type:"list"`
25466}
25467
25468// String returns the string representation
25469func (s CreateStreamInput) String() string {
25470	return awsutil.Prettify(s)
25471}
25472
25473// GoString returns the string representation
25474func (s CreateStreamInput) GoString() string {
25475	return s.String()
25476}
25477
25478// Validate inspects the fields of the type to determine if they are valid.
25479func (s *CreateStreamInput) Validate() error {
25480	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
25481	if s.Files == nil {
25482		invalidParams.Add(request.NewErrParamRequired("Files"))
25483	}
25484	if s.Files != nil && len(s.Files) < 1 {
25485		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
25486	}
25487	if s.RoleArn == nil {
25488		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
25489	}
25490	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25491		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25492	}
25493	if s.StreamId == nil {
25494		invalidParams.Add(request.NewErrParamRequired("StreamId"))
25495	}
25496	if s.StreamId != nil && len(*s.StreamId) < 1 {
25497		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
25498	}
25499	if s.Files != nil {
25500		for i, v := range s.Files {
25501			if v == nil {
25502				continue
25503			}
25504			if err := v.Validate(); err != nil {
25505				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
25506			}
25507		}
25508	}
25509	if s.Tags != nil {
25510		for i, v := range s.Tags {
25511			if v == nil {
25512				continue
25513			}
25514			if err := v.Validate(); err != nil {
25515				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25516			}
25517		}
25518	}
25519
25520	if invalidParams.Len() > 0 {
25521		return invalidParams
25522	}
25523	return nil
25524}
25525
25526// SetDescription sets the Description field's value.
25527func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
25528	s.Description = &v
25529	return s
25530}
25531
25532// SetFiles sets the Files field's value.
25533func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
25534	s.Files = v
25535	return s
25536}
25537
25538// SetRoleArn sets the RoleArn field's value.
25539func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
25540	s.RoleArn = &v
25541	return s
25542}
25543
25544// SetStreamId sets the StreamId field's value.
25545func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
25546	s.StreamId = &v
25547	return s
25548}
25549
25550// SetTags sets the Tags field's value.
25551func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
25552	s.Tags = v
25553	return s
25554}
25555
25556type CreateStreamOutput struct {
25557	_ struct{} `type:"structure"`
25558
25559	// A description of the stream.
25560	Description *string `locationName:"description" type:"string"`
25561
25562	// The stream ARN.
25563	StreamArn *string `locationName:"streamArn" type:"string"`
25564
25565	// The stream ID.
25566	StreamId *string `locationName:"streamId" min:"1" type:"string"`
25567
25568	// The version of the stream.
25569	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
25570}
25571
25572// String returns the string representation
25573func (s CreateStreamOutput) String() string {
25574	return awsutil.Prettify(s)
25575}
25576
25577// GoString returns the string representation
25578func (s CreateStreamOutput) GoString() string {
25579	return s.String()
25580}
25581
25582// SetDescription sets the Description field's value.
25583func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
25584	s.Description = &v
25585	return s
25586}
25587
25588// SetStreamArn sets the StreamArn field's value.
25589func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
25590	s.StreamArn = &v
25591	return s
25592}
25593
25594// SetStreamId sets the StreamId field's value.
25595func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
25596	s.StreamId = &v
25597	return s
25598}
25599
25600// SetStreamVersion sets the StreamVersion field's value.
25601func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
25602	s.StreamVersion = &v
25603	return s
25604}
25605
25606type CreateThingGroupInput struct {
25607	_ struct{} `type:"structure"`
25608
25609	// The name of the parent thing group.
25610	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
25611
25612	// Metadata which can be used to manage the thing group.
25613	Tags []*Tag `locationName:"tags" type:"list"`
25614
25615	// The thing group name to create.
25616	//
25617	// ThingGroupName is a required field
25618	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
25619
25620	// The thing group properties.
25621	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
25622}
25623
25624// String returns the string representation
25625func (s CreateThingGroupInput) String() string {
25626	return awsutil.Prettify(s)
25627}
25628
25629// GoString returns the string representation
25630func (s CreateThingGroupInput) GoString() string {
25631	return s.String()
25632}
25633
25634// Validate inspects the fields of the type to determine if they are valid.
25635func (s *CreateThingGroupInput) Validate() error {
25636	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
25637	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
25638		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
25639	}
25640	if s.ThingGroupName == nil {
25641		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
25642	}
25643	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
25644		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
25645	}
25646	if s.Tags != nil {
25647		for i, v := range s.Tags {
25648			if v == nil {
25649				continue
25650			}
25651			if err := v.Validate(); err != nil {
25652				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25653			}
25654		}
25655	}
25656
25657	if invalidParams.Len() > 0 {
25658		return invalidParams
25659	}
25660	return nil
25661}
25662
25663// SetParentGroupName sets the ParentGroupName field's value.
25664func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
25665	s.ParentGroupName = &v
25666	return s
25667}
25668
25669// SetTags sets the Tags field's value.
25670func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
25671	s.Tags = v
25672	return s
25673}
25674
25675// SetThingGroupName sets the ThingGroupName field's value.
25676func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
25677	s.ThingGroupName = &v
25678	return s
25679}
25680
25681// SetThingGroupProperties sets the ThingGroupProperties field's value.
25682func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
25683	s.ThingGroupProperties = v
25684	return s
25685}
25686
25687type CreateThingGroupOutput struct {
25688	_ struct{} `type:"structure"`
25689
25690	// The thing group ARN.
25691	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
25692
25693	// The thing group ID.
25694	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
25695
25696	// The thing group name.
25697	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
25698}
25699
25700// String returns the string representation
25701func (s CreateThingGroupOutput) String() string {
25702	return awsutil.Prettify(s)
25703}
25704
25705// GoString returns the string representation
25706func (s CreateThingGroupOutput) GoString() string {
25707	return s.String()
25708}
25709
25710// SetThingGroupArn sets the ThingGroupArn field's value.
25711func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
25712	s.ThingGroupArn = &v
25713	return s
25714}
25715
25716// SetThingGroupId sets the ThingGroupId field's value.
25717func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
25718	s.ThingGroupId = &v
25719	return s
25720}
25721
25722// SetThingGroupName sets the ThingGroupName field's value.
25723func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
25724	s.ThingGroupName = &v
25725	return s
25726}
25727
25728// The input for the CreateThing operation.
25729type CreateThingInput struct {
25730	_ struct{} `type:"structure"`
25731
25732	// The attribute payload, which consists of up to three name/value pairs in
25733	// a JSON document. For example:
25734	//
25735	// {\"attributes\":{\"string1\":\"string2\"}}
25736	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
25737
25738	// The name of the billing group the thing will be added to.
25739	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
25740
25741	// The name of the thing to create.
25742	//
25743	// You can't change a thing's name after you create it. To change a thing's
25744	// name, you must create a new thing, give it the new name, and then delete
25745	// the old thing.
25746	//
25747	// ThingName is a required field
25748	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
25749
25750	// The name of the thing type associated with the new thing.
25751	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
25752}
25753
25754// String returns the string representation
25755func (s CreateThingInput) String() string {
25756	return awsutil.Prettify(s)
25757}
25758
25759// GoString returns the string representation
25760func (s CreateThingInput) GoString() string {
25761	return s.String()
25762}
25763
25764// Validate inspects the fields of the type to determine if they are valid.
25765func (s *CreateThingInput) Validate() error {
25766	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
25767	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
25768		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
25769	}
25770	if s.ThingName == nil {
25771		invalidParams.Add(request.NewErrParamRequired("ThingName"))
25772	}
25773	if s.ThingName != nil && len(*s.ThingName) < 1 {
25774		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25775	}
25776	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
25777		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
25778	}
25779
25780	if invalidParams.Len() > 0 {
25781		return invalidParams
25782	}
25783	return nil
25784}
25785
25786// SetAttributePayload sets the AttributePayload field's value.
25787func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
25788	s.AttributePayload = v
25789	return s
25790}
25791
25792// SetBillingGroupName sets the BillingGroupName field's value.
25793func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
25794	s.BillingGroupName = &v
25795	return s
25796}
25797
25798// SetThingName sets the ThingName field's value.
25799func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
25800	s.ThingName = &v
25801	return s
25802}
25803
25804// SetThingTypeName sets the ThingTypeName field's value.
25805func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
25806	s.ThingTypeName = &v
25807	return s
25808}
25809
25810// The output of the CreateThing operation.
25811type CreateThingOutput struct {
25812	_ struct{} `type:"structure"`
25813
25814	// The ARN of the new thing.
25815	ThingArn *string `locationName:"thingArn" type:"string"`
25816
25817	// The thing ID.
25818	ThingId *string `locationName:"thingId" type:"string"`
25819
25820	// The name of the new thing.
25821	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25822}
25823
25824// String returns the string representation
25825func (s CreateThingOutput) String() string {
25826	return awsutil.Prettify(s)
25827}
25828
25829// GoString returns the string representation
25830func (s CreateThingOutput) GoString() string {
25831	return s.String()
25832}
25833
25834// SetThingArn sets the ThingArn field's value.
25835func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
25836	s.ThingArn = &v
25837	return s
25838}
25839
25840// SetThingId sets the ThingId field's value.
25841func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
25842	s.ThingId = &v
25843	return s
25844}
25845
25846// SetThingName sets the ThingName field's value.
25847func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
25848	s.ThingName = &v
25849	return s
25850}
25851
25852// The input for the CreateThingType operation.
25853type CreateThingTypeInput struct {
25854	_ struct{} `type:"structure"`
25855
25856	// Metadata which can be used to manage the thing type.
25857	Tags []*Tag `locationName:"tags" type:"list"`
25858
25859	// The name of the thing type.
25860	//
25861	// ThingTypeName is a required field
25862	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
25863
25864	// The ThingTypeProperties for the thing type to create. It contains information
25865	// about the new thing type including a description, and a list of searchable
25866	// thing attribute names.
25867	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
25868}
25869
25870// String returns the string representation
25871func (s CreateThingTypeInput) String() string {
25872	return awsutil.Prettify(s)
25873}
25874
25875// GoString returns the string representation
25876func (s CreateThingTypeInput) GoString() string {
25877	return s.String()
25878}
25879
25880// Validate inspects the fields of the type to determine if they are valid.
25881func (s *CreateThingTypeInput) Validate() error {
25882	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
25883	if s.ThingTypeName == nil {
25884		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
25885	}
25886	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
25887		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
25888	}
25889	if s.Tags != nil {
25890		for i, v := range s.Tags {
25891			if v == nil {
25892				continue
25893			}
25894			if err := v.Validate(); err != nil {
25895				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
25896			}
25897		}
25898	}
25899
25900	if invalidParams.Len() > 0 {
25901		return invalidParams
25902	}
25903	return nil
25904}
25905
25906// SetTags sets the Tags field's value.
25907func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
25908	s.Tags = v
25909	return s
25910}
25911
25912// SetThingTypeName sets the ThingTypeName field's value.
25913func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
25914	s.ThingTypeName = &v
25915	return s
25916}
25917
25918// SetThingTypeProperties sets the ThingTypeProperties field's value.
25919func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
25920	s.ThingTypeProperties = v
25921	return s
25922}
25923
25924// The output of the CreateThingType operation.
25925type CreateThingTypeOutput struct {
25926	_ struct{} `type:"structure"`
25927
25928	// The Amazon Resource Name (ARN) of the thing type.
25929	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
25930
25931	// The thing type ID.
25932	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
25933
25934	// The name of the thing type.
25935	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
25936}
25937
25938// String returns the string representation
25939func (s CreateThingTypeOutput) String() string {
25940	return awsutil.Prettify(s)
25941}
25942
25943// GoString returns the string representation
25944func (s CreateThingTypeOutput) GoString() string {
25945	return s.String()
25946}
25947
25948// SetThingTypeArn sets the ThingTypeArn field's value.
25949func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
25950	s.ThingTypeArn = &v
25951	return s
25952}
25953
25954// SetThingTypeId sets the ThingTypeId field's value.
25955func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
25956	s.ThingTypeId = &v
25957	return s
25958}
25959
25960// SetThingTypeName sets the ThingTypeName field's value.
25961func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
25962	s.ThingTypeName = &v
25963	return s
25964}
25965
25966type CreateTopicRuleDestinationInput struct {
25967	_ struct{} `type:"structure"`
25968
25969	// The topic rule destination configuration.
25970	//
25971	// DestinationConfiguration is a required field
25972	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
25973}
25974
25975// String returns the string representation
25976func (s CreateTopicRuleDestinationInput) String() string {
25977	return awsutil.Prettify(s)
25978}
25979
25980// GoString returns the string representation
25981func (s CreateTopicRuleDestinationInput) GoString() string {
25982	return s.String()
25983}
25984
25985// Validate inspects the fields of the type to determine if they are valid.
25986func (s *CreateTopicRuleDestinationInput) Validate() error {
25987	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
25988	if s.DestinationConfiguration == nil {
25989		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
25990	}
25991	if s.DestinationConfiguration != nil {
25992		if err := s.DestinationConfiguration.Validate(); err != nil {
25993			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
25994		}
25995	}
25996
25997	if invalidParams.Len() > 0 {
25998		return invalidParams
25999	}
26000	return nil
26001}
26002
26003// SetDestinationConfiguration sets the DestinationConfiguration field's value.
26004func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
26005	s.DestinationConfiguration = v
26006	return s
26007}
26008
26009type CreateTopicRuleDestinationOutput struct {
26010	_ struct{} `type:"structure"`
26011
26012	// The topic rule destination.
26013	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
26014}
26015
26016// String returns the string representation
26017func (s CreateTopicRuleDestinationOutput) String() string {
26018	return awsutil.Prettify(s)
26019}
26020
26021// GoString returns the string representation
26022func (s CreateTopicRuleDestinationOutput) GoString() string {
26023	return s.String()
26024}
26025
26026// SetTopicRuleDestination sets the TopicRuleDestination field's value.
26027func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
26028	s.TopicRuleDestination = v
26029	return s
26030}
26031
26032// The input for the CreateTopicRule operation.
26033type CreateTopicRuleInput struct {
26034	_ struct{} `type:"structure" payload:"TopicRulePayload"`
26035
26036	// The name of the rule.
26037	//
26038	// RuleName is a required field
26039	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
26040
26041	// Metadata which can be used to manage the topic rule.
26042	//
26043	// For URI Request parameters use format: ...key1=value1&key2=value2...
26044	//
26045	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
26046	//
26047	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
26048	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
26049
26050	// The rule payload.
26051	//
26052	// TopicRulePayload is a required field
26053	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
26054}
26055
26056// String returns the string representation
26057func (s CreateTopicRuleInput) String() string {
26058	return awsutil.Prettify(s)
26059}
26060
26061// GoString returns the string representation
26062func (s CreateTopicRuleInput) GoString() string {
26063	return s.String()
26064}
26065
26066// Validate inspects the fields of the type to determine if they are valid.
26067func (s *CreateTopicRuleInput) Validate() error {
26068	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
26069	if s.RuleName == nil {
26070		invalidParams.Add(request.NewErrParamRequired("RuleName"))
26071	}
26072	if s.RuleName != nil && len(*s.RuleName) < 1 {
26073		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
26074	}
26075	if s.TopicRulePayload == nil {
26076		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
26077	}
26078	if s.TopicRulePayload != nil {
26079		if err := s.TopicRulePayload.Validate(); err != nil {
26080			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
26081		}
26082	}
26083
26084	if invalidParams.Len() > 0 {
26085		return invalidParams
26086	}
26087	return nil
26088}
26089
26090// SetRuleName sets the RuleName field's value.
26091func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
26092	s.RuleName = &v
26093	return s
26094}
26095
26096// SetTags sets the Tags field's value.
26097func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
26098	s.Tags = &v
26099	return s
26100}
26101
26102// SetTopicRulePayload sets the TopicRulePayload field's value.
26103func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
26104	s.TopicRulePayload = v
26105	return s
26106}
26107
26108type CreateTopicRuleOutput struct {
26109	_ struct{} `type:"structure"`
26110}
26111
26112// String returns the string representation
26113func (s CreateTopicRuleOutput) String() string {
26114	return awsutil.Prettify(s)
26115}
26116
26117// GoString returns the string representation
26118func (s CreateTopicRuleOutput) GoString() string {
26119	return s.String()
26120}
26121
26122// Describes a custom method used to code sign a file.
26123type CustomCodeSigning struct {
26124	_ struct{} `type:"structure"`
26125
26126	// The certificate chain.
26127	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
26128
26129	// The hash algorithm used to code sign the file.
26130	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
26131
26132	// The signature for the file.
26133	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
26134
26135	// The signature algorithm used to code sign the file.
26136	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
26137}
26138
26139// String returns the string representation
26140func (s CustomCodeSigning) String() string {
26141	return awsutil.Prettify(s)
26142}
26143
26144// GoString returns the string representation
26145func (s CustomCodeSigning) GoString() string {
26146	return s.String()
26147}
26148
26149// SetCertificateChain sets the CertificateChain field's value.
26150func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
26151	s.CertificateChain = v
26152	return s
26153}
26154
26155// SetHashAlgorithm sets the HashAlgorithm field's value.
26156func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
26157	s.HashAlgorithm = &v
26158	return s
26159}
26160
26161// SetSignature sets the Signature field's value.
26162func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
26163	s.Signature = v
26164	return s
26165}
26166
26167// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
26168func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
26169	s.SignatureAlgorithm = &v
26170	return s
26171}
26172
26173type DeleteAccountAuditConfigurationInput struct {
26174	_ struct{} `type:"structure"`
26175
26176	// If true, all scheduled audits are deleted.
26177	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
26178}
26179
26180// String returns the string representation
26181func (s DeleteAccountAuditConfigurationInput) String() string {
26182	return awsutil.Prettify(s)
26183}
26184
26185// GoString returns the string representation
26186func (s DeleteAccountAuditConfigurationInput) GoString() string {
26187	return s.String()
26188}
26189
26190// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
26191func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
26192	s.DeleteScheduledAudits = &v
26193	return s
26194}
26195
26196type DeleteAccountAuditConfigurationOutput struct {
26197	_ struct{} `type:"structure"`
26198}
26199
26200// String returns the string representation
26201func (s DeleteAccountAuditConfigurationOutput) String() string {
26202	return awsutil.Prettify(s)
26203}
26204
26205// GoString returns the string representation
26206func (s DeleteAccountAuditConfigurationOutput) GoString() string {
26207	return s.String()
26208}
26209
26210type DeleteAuthorizerInput struct {
26211	_ struct{} `type:"structure"`
26212
26213	// The name of the authorizer to delete.
26214	//
26215	// AuthorizerName is a required field
26216	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
26217}
26218
26219// String returns the string representation
26220func (s DeleteAuthorizerInput) String() string {
26221	return awsutil.Prettify(s)
26222}
26223
26224// GoString returns the string representation
26225func (s DeleteAuthorizerInput) GoString() string {
26226	return s.String()
26227}
26228
26229// Validate inspects the fields of the type to determine if they are valid.
26230func (s *DeleteAuthorizerInput) Validate() error {
26231	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
26232	if s.AuthorizerName == nil {
26233		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
26234	}
26235	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
26236		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
26237	}
26238
26239	if invalidParams.Len() > 0 {
26240		return invalidParams
26241	}
26242	return nil
26243}
26244
26245// SetAuthorizerName sets the AuthorizerName field's value.
26246func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
26247	s.AuthorizerName = &v
26248	return s
26249}
26250
26251type DeleteAuthorizerOutput struct {
26252	_ struct{} `type:"structure"`
26253}
26254
26255// String returns the string representation
26256func (s DeleteAuthorizerOutput) String() string {
26257	return awsutil.Prettify(s)
26258}
26259
26260// GoString returns the string representation
26261func (s DeleteAuthorizerOutput) GoString() string {
26262	return s.String()
26263}
26264
26265type DeleteBillingGroupInput struct {
26266	_ struct{} `type:"structure"`
26267
26268	// The name of the billing group.
26269	//
26270	// BillingGroupName is a required field
26271	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
26272
26273	// The expected version of the billing group. If the version of the billing
26274	// group does not match the expected version specified in the request, the DeleteBillingGroup
26275	// request is rejected with a VersionConflictException.
26276	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
26277}
26278
26279// String returns the string representation
26280func (s DeleteBillingGroupInput) String() string {
26281	return awsutil.Prettify(s)
26282}
26283
26284// GoString returns the string representation
26285func (s DeleteBillingGroupInput) GoString() string {
26286	return s.String()
26287}
26288
26289// Validate inspects the fields of the type to determine if they are valid.
26290func (s *DeleteBillingGroupInput) Validate() error {
26291	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
26292	if s.BillingGroupName == nil {
26293		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
26294	}
26295	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
26296		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
26297	}
26298
26299	if invalidParams.Len() > 0 {
26300		return invalidParams
26301	}
26302	return nil
26303}
26304
26305// SetBillingGroupName sets the BillingGroupName field's value.
26306func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
26307	s.BillingGroupName = &v
26308	return s
26309}
26310
26311// SetExpectedVersion sets the ExpectedVersion field's value.
26312func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
26313	s.ExpectedVersion = &v
26314	return s
26315}
26316
26317type DeleteBillingGroupOutput struct {
26318	_ struct{} `type:"structure"`
26319}
26320
26321// String returns the string representation
26322func (s DeleteBillingGroupOutput) String() string {
26323	return awsutil.Prettify(s)
26324}
26325
26326// GoString returns the string representation
26327func (s DeleteBillingGroupOutput) GoString() string {
26328	return s.String()
26329}
26330
26331// Input for the DeleteCACertificate operation.
26332type DeleteCACertificateInput struct {
26333	_ struct{} `type:"structure"`
26334
26335	// The ID of the certificate to delete. (The last part of the certificate ARN
26336	// contains the certificate ID.)
26337	//
26338	// CertificateId is a required field
26339	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
26340}
26341
26342// String returns the string representation
26343func (s DeleteCACertificateInput) String() string {
26344	return awsutil.Prettify(s)
26345}
26346
26347// GoString returns the string representation
26348func (s DeleteCACertificateInput) GoString() string {
26349	return s.String()
26350}
26351
26352// Validate inspects the fields of the type to determine if they are valid.
26353func (s *DeleteCACertificateInput) Validate() error {
26354	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
26355	if s.CertificateId == nil {
26356		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
26357	}
26358	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
26359		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
26360	}
26361
26362	if invalidParams.Len() > 0 {
26363		return invalidParams
26364	}
26365	return nil
26366}
26367
26368// SetCertificateId sets the CertificateId field's value.
26369func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
26370	s.CertificateId = &v
26371	return s
26372}
26373
26374// The output for the DeleteCACertificate operation.
26375type DeleteCACertificateOutput struct {
26376	_ struct{} `type:"structure"`
26377}
26378
26379// String returns the string representation
26380func (s DeleteCACertificateOutput) String() string {
26381	return awsutil.Prettify(s)
26382}
26383
26384// GoString returns the string representation
26385func (s DeleteCACertificateOutput) GoString() string {
26386	return s.String()
26387}
26388
26389// The input for the DeleteCertificate operation.
26390type DeleteCertificateInput struct {
26391	_ struct{} `type:"structure"`
26392
26393	// The ID of the certificate. (The last part of the certificate ARN contains
26394	// the certificate ID.)
26395	//
26396	// CertificateId is a required field
26397	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
26398
26399	// Forces the deletion of a certificate if it is inactive and is not attached
26400	// to an IoT thing.
26401	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
26402}
26403
26404// String returns the string representation
26405func (s DeleteCertificateInput) String() string {
26406	return awsutil.Prettify(s)
26407}
26408
26409// GoString returns the string representation
26410func (s DeleteCertificateInput) GoString() string {
26411	return s.String()
26412}
26413
26414// Validate inspects the fields of the type to determine if they are valid.
26415func (s *DeleteCertificateInput) Validate() error {
26416	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
26417	if s.CertificateId == nil {
26418		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
26419	}
26420	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
26421		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
26422	}
26423
26424	if invalidParams.Len() > 0 {
26425		return invalidParams
26426	}
26427	return nil
26428}
26429
26430// SetCertificateId sets the CertificateId field's value.
26431func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
26432	s.CertificateId = &v
26433	return s
26434}
26435
26436// SetForceDelete sets the ForceDelete field's value.
26437func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
26438	s.ForceDelete = &v
26439	return s
26440}
26441
26442type DeleteCertificateOutput struct {
26443	_ struct{} `type:"structure"`
26444}
26445
26446// String returns the string representation
26447func (s DeleteCertificateOutput) String() string {
26448	return awsutil.Prettify(s)
26449}
26450
26451// GoString returns the string representation
26452func (s DeleteCertificateOutput) GoString() string {
26453	return s.String()
26454}
26455
26456// You can't delete the resource because it is attached to one or more resources.
26457type DeleteConflictException struct {
26458	_            struct{}                  `type:"structure"`
26459	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
26460
26461	// The message for the exception.
26462	Message_ *string `locationName:"message" type:"string"`
26463}
26464
26465// String returns the string representation
26466func (s DeleteConflictException) String() string {
26467	return awsutil.Prettify(s)
26468}
26469
26470// GoString returns the string representation
26471func (s DeleteConflictException) GoString() string {
26472	return s.String()
26473}
26474
26475func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
26476	return &DeleteConflictException{
26477		RespMetadata: v,
26478	}
26479}
26480
26481// Code returns the exception type name.
26482func (s *DeleteConflictException) Code() string {
26483	return "DeleteConflictException"
26484}
26485
26486// Message returns the exception's message.
26487func (s *DeleteConflictException) Message() string {
26488	if s.Message_ != nil {
26489		return *s.Message_
26490	}
26491	return ""
26492}
26493
26494// OrigErr always returns nil, satisfies awserr.Error interface.
26495func (s *DeleteConflictException) OrigErr() error {
26496	return nil
26497}
26498
26499func (s *DeleteConflictException) Error() string {
26500	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
26501}
26502
26503// Status code returns the HTTP status code for the request's response error.
26504func (s *DeleteConflictException) StatusCode() int {
26505	return s.RespMetadata.StatusCode
26506}
26507
26508// RequestID returns the service's response RequestID for request.
26509func (s *DeleteConflictException) RequestID() string {
26510	return s.RespMetadata.RequestID
26511}
26512
26513type DeleteDimensionInput struct {
26514	_ struct{} `type:"structure"`
26515
26516	// The unique identifier for the dimension that you want to delete.
26517	//
26518	// Name is a required field
26519	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
26520}
26521
26522// String returns the string representation
26523func (s DeleteDimensionInput) String() string {
26524	return awsutil.Prettify(s)
26525}
26526
26527// GoString returns the string representation
26528func (s DeleteDimensionInput) GoString() string {
26529	return s.String()
26530}
26531
26532// Validate inspects the fields of the type to determine if they are valid.
26533func (s *DeleteDimensionInput) Validate() error {
26534	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
26535	if s.Name == nil {
26536		invalidParams.Add(request.NewErrParamRequired("Name"))
26537	}
26538	if s.Name != nil && len(*s.Name) < 1 {
26539		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
26540	}
26541
26542	if invalidParams.Len() > 0 {
26543		return invalidParams
26544	}
26545	return nil
26546}
26547
26548// SetName sets the Name field's value.
26549func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
26550	s.Name = &v
26551	return s
26552}
26553
26554type DeleteDimensionOutput struct {
26555	_ struct{} `type:"structure"`
26556}
26557
26558// String returns the string representation
26559func (s DeleteDimensionOutput) String() string {
26560	return awsutil.Prettify(s)
26561}
26562
26563// GoString returns the string representation
26564func (s DeleteDimensionOutput) GoString() string {
26565	return s.String()
26566}
26567
26568type DeleteDomainConfigurationInput struct {
26569	_ struct{} `type:"structure"`
26570
26571	// The name of the domain configuration to be deleted.
26572	//
26573	// DomainConfigurationName is a required field
26574	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
26575}
26576
26577// String returns the string representation
26578func (s DeleteDomainConfigurationInput) String() string {
26579	return awsutil.Prettify(s)
26580}
26581
26582// GoString returns the string representation
26583func (s DeleteDomainConfigurationInput) GoString() string {
26584	return s.String()
26585}
26586
26587// Validate inspects the fields of the type to determine if they are valid.
26588func (s *DeleteDomainConfigurationInput) Validate() error {
26589	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
26590	if s.DomainConfigurationName == nil {
26591		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
26592	}
26593	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
26594		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
26595	}
26596
26597	if invalidParams.Len() > 0 {
26598		return invalidParams
26599	}
26600	return nil
26601}
26602
26603// SetDomainConfigurationName sets the DomainConfigurationName field's value.
26604func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
26605	s.DomainConfigurationName = &v
26606	return s
26607}
26608
26609type DeleteDomainConfigurationOutput struct {
26610	_ struct{} `type:"structure"`
26611}
26612
26613// String returns the string representation
26614func (s DeleteDomainConfigurationOutput) String() string {
26615	return awsutil.Prettify(s)
26616}
26617
26618// GoString returns the string representation
26619func (s DeleteDomainConfigurationOutput) GoString() string {
26620	return s.String()
26621}
26622
26623type DeleteDynamicThingGroupInput struct {
26624	_ struct{} `type:"structure"`
26625
26626	// The expected version of the dynamic thing group to delete.
26627	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
26628
26629	// The name of the dynamic thing group to delete.
26630	//
26631	// ThingGroupName is a required field
26632	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
26633}
26634
26635// String returns the string representation
26636func (s DeleteDynamicThingGroupInput) String() string {
26637	return awsutil.Prettify(s)
26638}
26639
26640// GoString returns the string representation
26641func (s DeleteDynamicThingGroupInput) GoString() string {
26642	return s.String()
26643}
26644
26645// Validate inspects the fields of the type to determine if they are valid.
26646func (s *DeleteDynamicThingGroupInput) Validate() error {
26647	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
26648	if s.ThingGroupName == nil {
26649		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
26650	}
26651	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
26652		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
26653	}
26654
26655	if invalidParams.Len() > 0 {
26656		return invalidParams
26657	}
26658	return nil
26659}
26660
26661// SetExpectedVersion sets the ExpectedVersion field's value.
26662func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
26663	s.ExpectedVersion = &v
26664	return s
26665}
26666
26667// SetThingGroupName sets the ThingGroupName field's value.
26668func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
26669	s.ThingGroupName = &v
26670	return s
26671}
26672
26673type DeleteDynamicThingGroupOutput struct {
26674	_ struct{} `type:"structure"`
26675}
26676
26677// String returns the string representation
26678func (s DeleteDynamicThingGroupOutput) String() string {
26679	return awsutil.Prettify(s)
26680}
26681
26682// GoString returns the string representation
26683func (s DeleteDynamicThingGroupOutput) GoString() string {
26684	return s.String()
26685}
26686
26687type DeleteJobExecutionInput struct {
26688	_ struct{} `type:"structure"`
26689
26690	// The ID of the job execution to be deleted. The executionNumber refers to
26691	// the execution of a particular job on a particular device.
26692	//
26693	// Note that once a job execution is deleted, the executionNumber may be reused
26694	// by IoT, so be sure you get and use the correct value here.
26695	//
26696	// ExecutionNumber is a required field
26697	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
26698
26699	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
26700	// Otherwise, you can only delete a job execution which is in a terminal state
26701	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
26702	// will occur. The default is false.
26703	//
26704	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
26705	// be unable to access job information or update the job execution status. Use
26706	// caution and ensure that the device is able to recover to a valid state.
26707	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
26708
26709	// The ID of the job whose execution on a particular device will be deleted.
26710	//
26711	// JobId is a required field
26712	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26713
26714	// The name of the thing whose job execution will be deleted.
26715	//
26716	// ThingName is a required field
26717	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26718}
26719
26720// String returns the string representation
26721func (s DeleteJobExecutionInput) String() string {
26722	return awsutil.Prettify(s)
26723}
26724
26725// GoString returns the string representation
26726func (s DeleteJobExecutionInput) GoString() string {
26727	return s.String()
26728}
26729
26730// Validate inspects the fields of the type to determine if they are valid.
26731func (s *DeleteJobExecutionInput) Validate() error {
26732	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
26733	if s.ExecutionNumber == nil {
26734		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
26735	}
26736	if s.JobId == nil {
26737		invalidParams.Add(request.NewErrParamRequired("JobId"))
26738	}
26739	if s.JobId != nil && len(*s.JobId) < 1 {
26740		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26741	}
26742	if s.ThingName == nil {
26743		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26744	}
26745	if s.ThingName != nil && len(*s.ThingName) < 1 {
26746		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26747	}
26748
26749	if invalidParams.Len() > 0 {
26750		return invalidParams
26751	}
26752	return nil
26753}
26754
26755// SetExecutionNumber sets the ExecutionNumber field's value.
26756func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
26757	s.ExecutionNumber = &v
26758	return s
26759}
26760
26761// SetForce sets the Force field's value.
26762func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
26763	s.Force = &v
26764	return s
26765}
26766
26767// SetJobId sets the JobId field's value.
26768func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
26769	s.JobId = &v
26770	return s
26771}
26772
26773// SetThingName sets the ThingName field's value.
26774func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
26775	s.ThingName = &v
26776	return s
26777}
26778
26779type DeleteJobExecutionOutput struct {
26780	_ struct{} `type:"structure"`
26781}
26782
26783// String returns the string representation
26784func (s DeleteJobExecutionOutput) String() string {
26785	return awsutil.Prettify(s)
26786}
26787
26788// GoString returns the string representation
26789func (s DeleteJobExecutionOutput) GoString() string {
26790	return s.String()
26791}
26792
26793type DeleteJobInput struct {
26794	_ struct{} `type:"structure"`
26795
26796	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
26797	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
26798	// or an exception will occur. The default is false.
26799	//
26800	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
26801	// the job to be unable to access job information or update the job execution
26802	// status. Use caution and ensure that each device executing a job which is
26803	// deleted is able to recover to a valid state.
26804	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
26805
26806	// The ID of the job to be deleted.
26807	//
26808	// After a job deletion is completed, you may reuse this jobId when you create
26809	// a new job. However, this is not recommended, and you must ensure that your
26810	// devices are not using the jobId to refer to the deleted job.
26811	//
26812	// JobId is a required field
26813	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26814}
26815
26816// String returns the string representation
26817func (s DeleteJobInput) String() string {
26818	return awsutil.Prettify(s)
26819}
26820
26821// GoString returns the string representation
26822func (s DeleteJobInput) GoString() string {
26823	return s.String()
26824}
26825
26826// Validate inspects the fields of the type to determine if they are valid.
26827func (s *DeleteJobInput) Validate() error {
26828	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
26829	if s.JobId == nil {
26830		invalidParams.Add(request.NewErrParamRequired("JobId"))
26831	}
26832	if s.JobId != nil && len(*s.JobId) < 1 {
26833		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26834	}
26835
26836	if invalidParams.Len() > 0 {
26837		return invalidParams
26838	}
26839	return nil
26840}
26841
26842// SetForce sets the Force field's value.
26843func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
26844	s.Force = &v
26845	return s
26846}
26847
26848// SetJobId sets the JobId field's value.
26849func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
26850	s.JobId = &v
26851	return s
26852}
26853
26854type DeleteJobOutput struct {
26855	_ struct{} `type:"structure"`
26856}
26857
26858// String returns the string representation
26859func (s DeleteJobOutput) String() string {
26860	return awsutil.Prettify(s)
26861}
26862
26863// GoString returns the string representation
26864func (s DeleteJobOutput) GoString() string {
26865	return s.String()
26866}
26867
26868type DeleteMitigationActionInput struct {
26869	_ struct{} `type:"structure"`
26870
26871	// The name of the mitigation action that you want to delete.
26872	//
26873	// ActionName is a required field
26874	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
26875}
26876
26877// String returns the string representation
26878func (s DeleteMitigationActionInput) String() string {
26879	return awsutil.Prettify(s)
26880}
26881
26882// GoString returns the string representation
26883func (s DeleteMitigationActionInput) GoString() string {
26884	return s.String()
26885}
26886
26887// Validate inspects the fields of the type to determine if they are valid.
26888func (s *DeleteMitigationActionInput) Validate() error {
26889	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
26890	if s.ActionName == nil {
26891		invalidParams.Add(request.NewErrParamRequired("ActionName"))
26892	}
26893	if s.ActionName != nil && len(*s.ActionName) < 1 {
26894		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
26895	}
26896
26897	if invalidParams.Len() > 0 {
26898		return invalidParams
26899	}
26900	return nil
26901}
26902
26903// SetActionName sets the ActionName field's value.
26904func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
26905	s.ActionName = &v
26906	return s
26907}
26908
26909type DeleteMitigationActionOutput struct {
26910	_ struct{} `type:"structure"`
26911}
26912
26913// String returns the string representation
26914func (s DeleteMitigationActionOutput) String() string {
26915	return awsutil.Prettify(s)
26916}
26917
26918// GoString returns the string representation
26919func (s DeleteMitigationActionOutput) GoString() string {
26920	return s.String()
26921}
26922
26923type DeleteOTAUpdateInput struct {
26924	_ struct{} `type:"structure"`
26925
26926	// Specifies if the stream associated with an OTA update should be deleted when
26927	// the OTA update is deleted.
26928	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
26929
26930	// Specifies if the AWS Job associated with the OTA update should be deleted
26931	// with the OTA update is deleted.
26932	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
26933
26934	// The OTA update ID to delete.
26935	//
26936	// OtaUpdateId is a required field
26937	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
26938}
26939
26940// String returns the string representation
26941func (s DeleteOTAUpdateInput) String() string {
26942	return awsutil.Prettify(s)
26943}
26944
26945// GoString returns the string representation
26946func (s DeleteOTAUpdateInput) GoString() string {
26947	return s.String()
26948}
26949
26950// Validate inspects the fields of the type to determine if they are valid.
26951func (s *DeleteOTAUpdateInput) Validate() error {
26952	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
26953	if s.OtaUpdateId == nil {
26954		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
26955	}
26956	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
26957		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
26958	}
26959
26960	if invalidParams.Len() > 0 {
26961		return invalidParams
26962	}
26963	return nil
26964}
26965
26966// SetDeleteStream sets the DeleteStream field's value.
26967func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
26968	s.DeleteStream = &v
26969	return s
26970}
26971
26972// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
26973func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
26974	s.ForceDeleteAWSJob = &v
26975	return s
26976}
26977
26978// SetOtaUpdateId sets the OtaUpdateId field's value.
26979func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
26980	s.OtaUpdateId = &v
26981	return s
26982}
26983
26984type DeleteOTAUpdateOutput struct {
26985	_ struct{} `type:"structure"`
26986}
26987
26988// String returns the string representation
26989func (s DeleteOTAUpdateOutput) String() string {
26990	return awsutil.Prettify(s)
26991}
26992
26993// GoString returns the string representation
26994func (s DeleteOTAUpdateOutput) GoString() string {
26995	return s.String()
26996}
26997
26998// The input for the DeletePolicy operation.
26999type DeletePolicyInput struct {
27000	_ struct{} `type:"structure"`
27001
27002	// The name of the policy to delete.
27003	//
27004	// PolicyName is a required field
27005	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
27006}
27007
27008// String returns the string representation
27009func (s DeletePolicyInput) String() string {
27010	return awsutil.Prettify(s)
27011}
27012
27013// GoString returns the string representation
27014func (s DeletePolicyInput) GoString() string {
27015	return s.String()
27016}
27017
27018// Validate inspects the fields of the type to determine if they are valid.
27019func (s *DeletePolicyInput) Validate() error {
27020	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
27021	if s.PolicyName == nil {
27022		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
27023	}
27024	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
27025		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
27026	}
27027
27028	if invalidParams.Len() > 0 {
27029		return invalidParams
27030	}
27031	return nil
27032}
27033
27034// SetPolicyName sets the PolicyName field's value.
27035func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
27036	s.PolicyName = &v
27037	return s
27038}
27039
27040type DeletePolicyOutput struct {
27041	_ struct{} `type:"structure"`
27042}
27043
27044// String returns the string representation
27045func (s DeletePolicyOutput) String() string {
27046	return awsutil.Prettify(s)
27047}
27048
27049// GoString returns the string representation
27050func (s DeletePolicyOutput) GoString() string {
27051	return s.String()
27052}
27053
27054// The input for the DeletePolicyVersion operation.
27055type DeletePolicyVersionInput struct {
27056	_ struct{} `type:"structure"`
27057
27058	// The name of the policy.
27059	//
27060	// PolicyName is a required field
27061	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
27062
27063	// The policy version ID.
27064	//
27065	// PolicyVersionId is a required field
27066	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
27067}
27068
27069// String returns the string representation
27070func (s DeletePolicyVersionInput) String() string {
27071	return awsutil.Prettify(s)
27072}
27073
27074// GoString returns the string representation
27075func (s DeletePolicyVersionInput) GoString() string {
27076	return s.String()
27077}
27078
27079// Validate inspects the fields of the type to determine if they are valid.
27080func (s *DeletePolicyVersionInput) Validate() error {
27081	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
27082	if s.PolicyName == nil {
27083		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
27084	}
27085	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
27086		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
27087	}
27088	if s.PolicyVersionId == nil {
27089		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
27090	}
27091	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
27092		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
27093	}
27094
27095	if invalidParams.Len() > 0 {
27096		return invalidParams
27097	}
27098	return nil
27099}
27100
27101// SetPolicyName sets the PolicyName field's value.
27102func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
27103	s.PolicyName = &v
27104	return s
27105}
27106
27107// SetPolicyVersionId sets the PolicyVersionId field's value.
27108func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
27109	s.PolicyVersionId = &v
27110	return s
27111}
27112
27113type DeletePolicyVersionOutput struct {
27114	_ struct{} `type:"structure"`
27115}
27116
27117// String returns the string representation
27118func (s DeletePolicyVersionOutput) String() string {
27119	return awsutil.Prettify(s)
27120}
27121
27122// GoString returns the string representation
27123func (s DeletePolicyVersionOutput) GoString() string {
27124	return s.String()
27125}
27126
27127type DeleteProvisioningTemplateInput struct {
27128	_ struct{} `type:"structure"`
27129
27130	// The name of the fleet provision template to delete.
27131	//
27132	// TemplateName is a required field
27133	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
27134}
27135
27136// String returns the string representation
27137func (s DeleteProvisioningTemplateInput) String() string {
27138	return awsutil.Prettify(s)
27139}
27140
27141// GoString returns the string representation
27142func (s DeleteProvisioningTemplateInput) GoString() string {
27143	return s.String()
27144}
27145
27146// Validate inspects the fields of the type to determine if they are valid.
27147func (s *DeleteProvisioningTemplateInput) Validate() error {
27148	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
27149	if s.TemplateName == nil {
27150		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
27151	}
27152	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
27153		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
27154	}
27155
27156	if invalidParams.Len() > 0 {
27157		return invalidParams
27158	}
27159	return nil
27160}
27161
27162// SetTemplateName sets the TemplateName field's value.
27163func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
27164	s.TemplateName = &v
27165	return s
27166}
27167
27168type DeleteProvisioningTemplateOutput struct {
27169	_ struct{} `type:"structure"`
27170}
27171
27172// String returns the string representation
27173func (s DeleteProvisioningTemplateOutput) String() string {
27174	return awsutil.Prettify(s)
27175}
27176
27177// GoString returns the string representation
27178func (s DeleteProvisioningTemplateOutput) GoString() string {
27179	return s.String()
27180}
27181
27182type DeleteProvisioningTemplateVersionInput struct {
27183	_ struct{} `type:"structure"`
27184
27185	// The name of the fleet provisioning template version to delete.
27186	//
27187	// TemplateName is a required field
27188	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
27189
27190	// The fleet provisioning template version ID to delete.
27191	//
27192	// VersionId is a required field
27193	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
27194}
27195
27196// String returns the string representation
27197func (s DeleteProvisioningTemplateVersionInput) String() string {
27198	return awsutil.Prettify(s)
27199}
27200
27201// GoString returns the string representation
27202func (s DeleteProvisioningTemplateVersionInput) GoString() string {
27203	return s.String()
27204}
27205
27206// Validate inspects the fields of the type to determine if they are valid.
27207func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
27208	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
27209	if s.TemplateName == nil {
27210		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
27211	}
27212	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
27213		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
27214	}
27215	if s.VersionId == nil {
27216		invalidParams.Add(request.NewErrParamRequired("VersionId"))
27217	}
27218
27219	if invalidParams.Len() > 0 {
27220		return invalidParams
27221	}
27222	return nil
27223}
27224
27225// SetTemplateName sets the TemplateName field's value.
27226func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
27227	s.TemplateName = &v
27228	return s
27229}
27230
27231// SetVersionId sets the VersionId field's value.
27232func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
27233	s.VersionId = &v
27234	return s
27235}
27236
27237type DeleteProvisioningTemplateVersionOutput struct {
27238	_ struct{} `type:"structure"`
27239}
27240
27241// String returns the string representation
27242func (s DeleteProvisioningTemplateVersionOutput) String() string {
27243	return awsutil.Prettify(s)
27244}
27245
27246// GoString returns the string representation
27247func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
27248	return s.String()
27249}
27250
27251// The input for the DeleteRegistrationCode operation.
27252type DeleteRegistrationCodeInput struct {
27253	_ struct{} `type:"structure"`
27254}
27255
27256// String returns the string representation
27257func (s DeleteRegistrationCodeInput) String() string {
27258	return awsutil.Prettify(s)
27259}
27260
27261// GoString returns the string representation
27262func (s DeleteRegistrationCodeInput) GoString() string {
27263	return s.String()
27264}
27265
27266// The output for the DeleteRegistrationCode operation.
27267type DeleteRegistrationCodeOutput struct {
27268	_ struct{} `type:"structure"`
27269}
27270
27271// String returns the string representation
27272func (s DeleteRegistrationCodeOutput) String() string {
27273	return awsutil.Prettify(s)
27274}
27275
27276// GoString returns the string representation
27277func (s DeleteRegistrationCodeOutput) GoString() string {
27278	return s.String()
27279}
27280
27281type DeleteRoleAliasInput struct {
27282	_ struct{} `type:"structure"`
27283
27284	// The role alias to delete.
27285	//
27286	// RoleAlias is a required field
27287	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
27288}
27289
27290// String returns the string representation
27291func (s DeleteRoleAliasInput) String() string {
27292	return awsutil.Prettify(s)
27293}
27294
27295// GoString returns the string representation
27296func (s DeleteRoleAliasInput) GoString() string {
27297	return s.String()
27298}
27299
27300// Validate inspects the fields of the type to determine if they are valid.
27301func (s *DeleteRoleAliasInput) Validate() error {
27302	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
27303	if s.RoleAlias == nil {
27304		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
27305	}
27306	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
27307		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
27308	}
27309
27310	if invalidParams.Len() > 0 {
27311		return invalidParams
27312	}
27313	return nil
27314}
27315
27316// SetRoleAlias sets the RoleAlias field's value.
27317func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
27318	s.RoleAlias = &v
27319	return s
27320}
27321
27322type DeleteRoleAliasOutput struct {
27323	_ struct{} `type:"structure"`
27324}
27325
27326// String returns the string representation
27327func (s DeleteRoleAliasOutput) String() string {
27328	return awsutil.Prettify(s)
27329}
27330
27331// GoString returns the string representation
27332func (s DeleteRoleAliasOutput) GoString() string {
27333	return s.String()
27334}
27335
27336type DeleteScheduledAuditInput struct {
27337	_ struct{} `type:"structure"`
27338
27339	// The name of the scheduled audit you want to delete.
27340	//
27341	// ScheduledAuditName is a required field
27342	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
27343}
27344
27345// String returns the string representation
27346func (s DeleteScheduledAuditInput) String() string {
27347	return awsutil.Prettify(s)
27348}
27349
27350// GoString returns the string representation
27351func (s DeleteScheduledAuditInput) GoString() string {
27352	return s.String()
27353}
27354
27355// Validate inspects the fields of the type to determine if they are valid.
27356func (s *DeleteScheduledAuditInput) Validate() error {
27357	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
27358	if s.ScheduledAuditName == nil {
27359		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
27360	}
27361	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
27362		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
27363	}
27364
27365	if invalidParams.Len() > 0 {
27366		return invalidParams
27367	}
27368	return nil
27369}
27370
27371// SetScheduledAuditName sets the ScheduledAuditName field's value.
27372func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
27373	s.ScheduledAuditName = &v
27374	return s
27375}
27376
27377type DeleteScheduledAuditOutput struct {
27378	_ struct{} `type:"structure"`
27379}
27380
27381// String returns the string representation
27382func (s DeleteScheduledAuditOutput) String() string {
27383	return awsutil.Prettify(s)
27384}
27385
27386// GoString returns the string representation
27387func (s DeleteScheduledAuditOutput) GoString() string {
27388	return s.String()
27389}
27390
27391type DeleteSecurityProfileInput struct {
27392	_ struct{} `type:"structure"`
27393
27394	// The expected version of the security profile. A new version is generated
27395	// whenever the security profile is updated. If you specify a value that is
27396	// different from the actual version, a VersionConflictException is thrown.
27397	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
27398
27399	// The name of the security profile to be deleted.
27400	//
27401	// SecurityProfileName is a required field
27402	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
27403}
27404
27405// String returns the string representation
27406func (s DeleteSecurityProfileInput) String() string {
27407	return awsutil.Prettify(s)
27408}
27409
27410// GoString returns the string representation
27411func (s DeleteSecurityProfileInput) GoString() string {
27412	return s.String()
27413}
27414
27415// Validate inspects the fields of the type to determine if they are valid.
27416func (s *DeleteSecurityProfileInput) Validate() error {
27417	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
27418	if s.SecurityProfileName == nil {
27419		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
27420	}
27421	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
27422		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
27423	}
27424
27425	if invalidParams.Len() > 0 {
27426		return invalidParams
27427	}
27428	return nil
27429}
27430
27431// SetExpectedVersion sets the ExpectedVersion field's value.
27432func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
27433	s.ExpectedVersion = &v
27434	return s
27435}
27436
27437// SetSecurityProfileName sets the SecurityProfileName field's value.
27438func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
27439	s.SecurityProfileName = &v
27440	return s
27441}
27442
27443type DeleteSecurityProfileOutput struct {
27444	_ struct{} `type:"structure"`
27445}
27446
27447// String returns the string representation
27448func (s DeleteSecurityProfileOutput) String() string {
27449	return awsutil.Prettify(s)
27450}
27451
27452// GoString returns the string representation
27453func (s DeleteSecurityProfileOutput) GoString() string {
27454	return s.String()
27455}
27456
27457type DeleteStreamInput struct {
27458	_ struct{} `type:"structure"`
27459
27460	// The stream ID.
27461	//
27462	// StreamId is a required field
27463	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
27464}
27465
27466// String returns the string representation
27467func (s DeleteStreamInput) String() string {
27468	return awsutil.Prettify(s)
27469}
27470
27471// GoString returns the string representation
27472func (s DeleteStreamInput) GoString() string {
27473	return s.String()
27474}
27475
27476// Validate inspects the fields of the type to determine if they are valid.
27477func (s *DeleteStreamInput) Validate() error {
27478	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
27479	if s.StreamId == nil {
27480		invalidParams.Add(request.NewErrParamRequired("StreamId"))
27481	}
27482	if s.StreamId != nil && len(*s.StreamId) < 1 {
27483		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
27484	}
27485
27486	if invalidParams.Len() > 0 {
27487		return invalidParams
27488	}
27489	return nil
27490}
27491
27492// SetStreamId sets the StreamId field's value.
27493func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
27494	s.StreamId = &v
27495	return s
27496}
27497
27498type DeleteStreamOutput struct {
27499	_ struct{} `type:"structure"`
27500}
27501
27502// String returns the string representation
27503func (s DeleteStreamOutput) String() string {
27504	return awsutil.Prettify(s)
27505}
27506
27507// GoString returns the string representation
27508func (s DeleteStreamOutput) GoString() string {
27509	return s.String()
27510}
27511
27512type DeleteThingGroupInput struct {
27513	_ struct{} `type:"structure"`
27514
27515	// The expected version of the thing group to delete.
27516	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
27517
27518	// The name of the thing group to delete.
27519	//
27520	// ThingGroupName is a required field
27521	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
27522}
27523
27524// String returns the string representation
27525func (s DeleteThingGroupInput) String() string {
27526	return awsutil.Prettify(s)
27527}
27528
27529// GoString returns the string representation
27530func (s DeleteThingGroupInput) GoString() string {
27531	return s.String()
27532}
27533
27534// Validate inspects the fields of the type to determine if they are valid.
27535func (s *DeleteThingGroupInput) Validate() error {
27536	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
27537	if s.ThingGroupName == nil {
27538		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
27539	}
27540	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
27541		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
27542	}
27543
27544	if invalidParams.Len() > 0 {
27545		return invalidParams
27546	}
27547	return nil
27548}
27549
27550// SetExpectedVersion sets the ExpectedVersion field's value.
27551func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
27552	s.ExpectedVersion = &v
27553	return s
27554}
27555
27556// SetThingGroupName sets the ThingGroupName field's value.
27557func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
27558	s.ThingGroupName = &v
27559	return s
27560}
27561
27562type DeleteThingGroupOutput struct {
27563	_ struct{} `type:"structure"`
27564}
27565
27566// String returns the string representation
27567func (s DeleteThingGroupOutput) String() string {
27568	return awsutil.Prettify(s)
27569}
27570
27571// GoString returns the string representation
27572func (s DeleteThingGroupOutput) GoString() string {
27573	return s.String()
27574}
27575
27576// The input for the DeleteThing operation.
27577type DeleteThingInput struct {
27578	_ struct{} `type:"structure"`
27579
27580	// The expected version of the thing record in the registry. If the version
27581	// of the record in the registry does not match the expected version specified
27582	// in the request, the DeleteThing request is rejected with a VersionConflictException.
27583	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
27584
27585	// The name of the thing to delete.
27586	//
27587	// ThingName is a required field
27588	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
27589}
27590
27591// String returns the string representation
27592func (s DeleteThingInput) String() string {
27593	return awsutil.Prettify(s)
27594}
27595
27596// GoString returns the string representation
27597func (s DeleteThingInput) GoString() string {
27598	return s.String()
27599}
27600
27601// Validate inspects the fields of the type to determine if they are valid.
27602func (s *DeleteThingInput) Validate() error {
27603	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
27604	if s.ThingName == nil {
27605		invalidParams.Add(request.NewErrParamRequired("ThingName"))
27606	}
27607	if s.ThingName != nil && len(*s.ThingName) < 1 {
27608		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
27609	}
27610
27611	if invalidParams.Len() > 0 {
27612		return invalidParams
27613	}
27614	return nil
27615}
27616
27617// SetExpectedVersion sets the ExpectedVersion field's value.
27618func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
27619	s.ExpectedVersion = &v
27620	return s
27621}
27622
27623// SetThingName sets the ThingName field's value.
27624func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
27625	s.ThingName = &v
27626	return s
27627}
27628
27629// The output of the DeleteThing operation.
27630type DeleteThingOutput struct {
27631	_ struct{} `type:"structure"`
27632}
27633
27634// String returns the string representation
27635func (s DeleteThingOutput) String() string {
27636	return awsutil.Prettify(s)
27637}
27638
27639// GoString returns the string representation
27640func (s DeleteThingOutput) GoString() string {
27641	return s.String()
27642}
27643
27644// The input for the DeleteThingType operation.
27645type DeleteThingTypeInput struct {
27646	_ struct{} `type:"structure"`
27647
27648	// The name of the thing type.
27649	//
27650	// ThingTypeName is a required field
27651	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
27652}
27653
27654// String returns the string representation
27655func (s DeleteThingTypeInput) String() string {
27656	return awsutil.Prettify(s)
27657}
27658
27659// GoString returns the string representation
27660func (s DeleteThingTypeInput) GoString() string {
27661	return s.String()
27662}
27663
27664// Validate inspects the fields of the type to determine if they are valid.
27665func (s *DeleteThingTypeInput) Validate() error {
27666	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
27667	if s.ThingTypeName == nil {
27668		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
27669	}
27670	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
27671		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
27672	}
27673
27674	if invalidParams.Len() > 0 {
27675		return invalidParams
27676	}
27677	return nil
27678}
27679
27680// SetThingTypeName sets the ThingTypeName field's value.
27681func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
27682	s.ThingTypeName = &v
27683	return s
27684}
27685
27686// The output for the DeleteThingType operation.
27687type DeleteThingTypeOutput struct {
27688	_ struct{} `type:"structure"`
27689}
27690
27691// String returns the string representation
27692func (s DeleteThingTypeOutput) String() string {
27693	return awsutil.Prettify(s)
27694}
27695
27696// GoString returns the string representation
27697func (s DeleteThingTypeOutput) GoString() string {
27698	return s.String()
27699}
27700
27701type DeleteTopicRuleDestinationInput struct {
27702	_ struct{} `type:"structure"`
27703
27704	// The ARN of the topic rule destination to delete.
27705	//
27706	// Arn is a required field
27707	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
27708}
27709
27710// String returns the string representation
27711func (s DeleteTopicRuleDestinationInput) String() string {
27712	return awsutil.Prettify(s)
27713}
27714
27715// GoString returns the string representation
27716func (s DeleteTopicRuleDestinationInput) GoString() string {
27717	return s.String()
27718}
27719
27720// Validate inspects the fields of the type to determine if they are valid.
27721func (s *DeleteTopicRuleDestinationInput) Validate() error {
27722	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
27723	if s.Arn == nil {
27724		invalidParams.Add(request.NewErrParamRequired("Arn"))
27725	}
27726	if s.Arn != nil && len(*s.Arn) < 1 {
27727		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
27728	}
27729
27730	if invalidParams.Len() > 0 {
27731		return invalidParams
27732	}
27733	return nil
27734}
27735
27736// SetArn sets the Arn field's value.
27737func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
27738	s.Arn = &v
27739	return s
27740}
27741
27742type DeleteTopicRuleDestinationOutput struct {
27743	_ struct{} `type:"structure"`
27744}
27745
27746// String returns the string representation
27747func (s DeleteTopicRuleDestinationOutput) String() string {
27748	return awsutil.Prettify(s)
27749}
27750
27751// GoString returns the string representation
27752func (s DeleteTopicRuleDestinationOutput) GoString() string {
27753	return s.String()
27754}
27755
27756// The input for the DeleteTopicRule operation.
27757type DeleteTopicRuleInput struct {
27758	_ struct{} `type:"structure"`
27759
27760	// The name of the rule.
27761	//
27762	// RuleName is a required field
27763	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
27764}
27765
27766// String returns the string representation
27767func (s DeleteTopicRuleInput) String() string {
27768	return awsutil.Prettify(s)
27769}
27770
27771// GoString returns the string representation
27772func (s DeleteTopicRuleInput) GoString() string {
27773	return s.String()
27774}
27775
27776// Validate inspects the fields of the type to determine if they are valid.
27777func (s *DeleteTopicRuleInput) Validate() error {
27778	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
27779	if s.RuleName == nil {
27780		invalidParams.Add(request.NewErrParamRequired("RuleName"))
27781	}
27782	if s.RuleName != nil && len(*s.RuleName) < 1 {
27783		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
27784	}
27785
27786	if invalidParams.Len() > 0 {
27787		return invalidParams
27788	}
27789	return nil
27790}
27791
27792// SetRuleName sets the RuleName field's value.
27793func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
27794	s.RuleName = &v
27795	return s
27796}
27797
27798type DeleteTopicRuleOutput struct {
27799	_ struct{} `type:"structure"`
27800}
27801
27802// String returns the string representation
27803func (s DeleteTopicRuleOutput) String() string {
27804	return awsutil.Prettify(s)
27805}
27806
27807// GoString returns the string representation
27808func (s DeleteTopicRuleOutput) GoString() string {
27809	return s.String()
27810}
27811
27812type DeleteV2LoggingLevelInput struct {
27813	_ struct{} `type:"structure"`
27814
27815	// The name of the resource for which you are configuring logging.
27816	//
27817	// TargetName is a required field
27818	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
27819
27820	// The type of resource for which you are configuring logging. Must be THING_Group.
27821	//
27822	// TargetType is a required field
27823	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
27824}
27825
27826// String returns the string representation
27827func (s DeleteV2LoggingLevelInput) String() string {
27828	return awsutil.Prettify(s)
27829}
27830
27831// GoString returns the string representation
27832func (s DeleteV2LoggingLevelInput) GoString() string {
27833	return s.String()
27834}
27835
27836// Validate inspects the fields of the type to determine if they are valid.
27837func (s *DeleteV2LoggingLevelInput) Validate() error {
27838	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
27839	if s.TargetName == nil {
27840		invalidParams.Add(request.NewErrParamRequired("TargetName"))
27841	}
27842	if s.TargetType == nil {
27843		invalidParams.Add(request.NewErrParamRequired("TargetType"))
27844	}
27845
27846	if invalidParams.Len() > 0 {
27847		return invalidParams
27848	}
27849	return nil
27850}
27851
27852// SetTargetName sets the TargetName field's value.
27853func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
27854	s.TargetName = &v
27855	return s
27856}
27857
27858// SetTargetType sets the TargetType field's value.
27859func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
27860	s.TargetType = &v
27861	return s
27862}
27863
27864type DeleteV2LoggingLevelOutput struct {
27865	_ struct{} `type:"structure"`
27866}
27867
27868// String returns the string representation
27869func (s DeleteV2LoggingLevelOutput) String() string {
27870	return awsutil.Prettify(s)
27871}
27872
27873// GoString returns the string representation
27874func (s DeleteV2LoggingLevelOutput) GoString() string {
27875	return s.String()
27876}
27877
27878// Contains information that denied the authorization.
27879type Denied struct {
27880	_ struct{} `type:"structure"`
27881
27882	// Information that explicitly denies the authorization.
27883	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
27884
27885	// Information that implicitly denies the authorization. When a policy doesn't
27886	// explicitly deny or allow an action on a resource it is considered an implicit
27887	// deny.
27888	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
27889}
27890
27891// String returns the string representation
27892func (s Denied) String() string {
27893	return awsutil.Prettify(s)
27894}
27895
27896// GoString returns the string representation
27897func (s Denied) GoString() string {
27898	return s.String()
27899}
27900
27901// SetExplicitDeny sets the ExplicitDeny field's value.
27902func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
27903	s.ExplicitDeny = v
27904	return s
27905}
27906
27907// SetImplicitDeny sets the ImplicitDeny field's value.
27908func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
27909	s.ImplicitDeny = v
27910	return s
27911}
27912
27913// The input for the DeprecateThingType operation.
27914type DeprecateThingTypeInput struct {
27915	_ struct{} `type:"structure"`
27916
27917	// The name of the thing type to deprecate.
27918	//
27919	// ThingTypeName is a required field
27920	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
27921
27922	// Whether to undeprecate a deprecated thing type. If true, the thing type will
27923	// not be deprecated anymore and you can associate it with things.
27924	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
27925}
27926
27927// String returns the string representation
27928func (s DeprecateThingTypeInput) String() string {
27929	return awsutil.Prettify(s)
27930}
27931
27932// GoString returns the string representation
27933func (s DeprecateThingTypeInput) GoString() string {
27934	return s.String()
27935}
27936
27937// Validate inspects the fields of the type to determine if they are valid.
27938func (s *DeprecateThingTypeInput) Validate() error {
27939	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
27940	if s.ThingTypeName == nil {
27941		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
27942	}
27943	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
27944		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
27945	}
27946
27947	if invalidParams.Len() > 0 {
27948		return invalidParams
27949	}
27950	return nil
27951}
27952
27953// SetThingTypeName sets the ThingTypeName field's value.
27954func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
27955	s.ThingTypeName = &v
27956	return s
27957}
27958
27959// SetUndoDeprecate sets the UndoDeprecate field's value.
27960func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
27961	s.UndoDeprecate = &v
27962	return s
27963}
27964
27965// The output for the DeprecateThingType operation.
27966type DeprecateThingTypeOutput struct {
27967	_ struct{} `type:"structure"`
27968}
27969
27970// String returns the string representation
27971func (s DeprecateThingTypeOutput) String() string {
27972	return awsutil.Prettify(s)
27973}
27974
27975// GoString returns the string representation
27976func (s DeprecateThingTypeOutput) GoString() string {
27977	return s.String()
27978}
27979
27980type DescribeAccountAuditConfigurationInput struct {
27981	_ struct{} `type:"structure"`
27982}
27983
27984// String returns the string representation
27985func (s DescribeAccountAuditConfigurationInput) String() string {
27986	return awsutil.Prettify(s)
27987}
27988
27989// GoString returns the string representation
27990func (s DescribeAccountAuditConfigurationInput) GoString() string {
27991	return s.String()
27992}
27993
27994type DescribeAccountAuditConfigurationOutput struct {
27995	_ struct{} `type:"structure"`
27996
27997	// Which audit checks are enabled and disabled for this account.
27998	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
27999
28000	// Information about the targets to which audit notifications are sent for this
28001	// account.
28002	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
28003
28004	// The ARN of the role that grants permission to AWS IoT to access information
28005	// about your devices, policies, certificates, and other items as required when
28006	// performing an audit.
28007	//
28008	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
28009	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
28010}
28011
28012// String returns the string representation
28013func (s DescribeAccountAuditConfigurationOutput) String() string {
28014	return awsutil.Prettify(s)
28015}
28016
28017// GoString returns the string representation
28018func (s DescribeAccountAuditConfigurationOutput) GoString() string {
28019	return s.String()
28020}
28021
28022// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
28023func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
28024	s.AuditCheckConfigurations = v
28025	return s
28026}
28027
28028// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
28029func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
28030	s.AuditNotificationTargetConfigurations = v
28031	return s
28032}
28033
28034// SetRoleArn sets the RoleArn field's value.
28035func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
28036	s.RoleArn = &v
28037	return s
28038}
28039
28040type DescribeAuditFindingInput struct {
28041	_ struct{} `type:"structure"`
28042
28043	// A unique identifier for a single audit finding. You can use this identifier
28044	// to apply mitigation actions to the finding.
28045	//
28046	// FindingId is a required field
28047	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
28048}
28049
28050// String returns the string representation
28051func (s DescribeAuditFindingInput) String() string {
28052	return awsutil.Prettify(s)
28053}
28054
28055// GoString returns the string representation
28056func (s DescribeAuditFindingInput) GoString() string {
28057	return s.String()
28058}
28059
28060// Validate inspects the fields of the type to determine if they are valid.
28061func (s *DescribeAuditFindingInput) Validate() error {
28062	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
28063	if s.FindingId == nil {
28064		invalidParams.Add(request.NewErrParamRequired("FindingId"))
28065	}
28066	if s.FindingId != nil && len(*s.FindingId) < 1 {
28067		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
28068	}
28069
28070	if invalidParams.Len() > 0 {
28071		return invalidParams
28072	}
28073	return nil
28074}
28075
28076// SetFindingId sets the FindingId field's value.
28077func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
28078	s.FindingId = &v
28079	return s
28080}
28081
28082type DescribeAuditFindingOutput struct {
28083	_ struct{} `type:"structure"`
28084
28085	// The findings (results) of the audit.
28086	Finding *AuditFinding `locationName:"finding" type:"structure"`
28087}
28088
28089// String returns the string representation
28090func (s DescribeAuditFindingOutput) String() string {
28091	return awsutil.Prettify(s)
28092}
28093
28094// GoString returns the string representation
28095func (s DescribeAuditFindingOutput) GoString() string {
28096	return s.String()
28097}
28098
28099// SetFinding sets the Finding field's value.
28100func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
28101	s.Finding = v
28102	return s
28103}
28104
28105type DescribeAuditMitigationActionsTaskInput struct {
28106	_ struct{} `type:"structure"`
28107
28108	// The unique identifier for the audit mitigation task.
28109	//
28110	// TaskId is a required field
28111	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28112}
28113
28114// String returns the string representation
28115func (s DescribeAuditMitigationActionsTaskInput) String() string {
28116	return awsutil.Prettify(s)
28117}
28118
28119// GoString returns the string representation
28120func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
28121	return s.String()
28122}
28123
28124// Validate inspects the fields of the type to determine if they are valid.
28125func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
28126	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
28127	if s.TaskId == nil {
28128		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28129	}
28130	if s.TaskId != nil && len(*s.TaskId) < 1 {
28131		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28132	}
28133
28134	if invalidParams.Len() > 0 {
28135		return invalidParams
28136	}
28137	return nil
28138}
28139
28140// SetTaskId sets the TaskId field's value.
28141func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
28142	s.TaskId = &v
28143	return s
28144}
28145
28146type DescribeAuditMitigationActionsTaskOutput struct {
28147	_ struct{} `type:"structure"`
28148
28149	// Specifies the mitigation actions and their parameters that are applied as
28150	// part of this task.
28151	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
28152
28153	// Specifies the mitigation actions that should be applied to specific audit
28154	// checks.
28155	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
28156
28157	// The date and time when the task was completed or canceled.
28158	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
28159
28160	// The date and time when the task was started.
28161	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
28162
28163	// Identifies the findings to which the mitigation actions are applied. This
28164	// can be by audit checks, by audit task, or a set of findings.
28165	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
28166
28167	// Aggregate counts of the results when the mitigation tasks were applied to
28168	// the findings for this audit mitigation actions task.
28169	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
28170
28171	// The current status of the task.
28172	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
28173}
28174
28175// String returns the string representation
28176func (s DescribeAuditMitigationActionsTaskOutput) String() string {
28177	return awsutil.Prettify(s)
28178}
28179
28180// GoString returns the string representation
28181func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
28182	return s.String()
28183}
28184
28185// SetActionsDefinition sets the ActionsDefinition field's value.
28186func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
28187	s.ActionsDefinition = v
28188	return s
28189}
28190
28191// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
28192func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
28193	s.AuditCheckToActionsMapping = v
28194	return s
28195}
28196
28197// SetEndTime sets the EndTime field's value.
28198func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
28199	s.EndTime = &v
28200	return s
28201}
28202
28203// SetStartTime sets the StartTime field's value.
28204func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
28205	s.StartTime = &v
28206	return s
28207}
28208
28209// SetTarget sets the Target field's value.
28210func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
28211	s.Target = v
28212	return s
28213}
28214
28215// SetTaskStatistics sets the TaskStatistics field's value.
28216func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
28217	s.TaskStatistics = v
28218	return s
28219}
28220
28221// SetTaskStatus sets the TaskStatus field's value.
28222func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
28223	s.TaskStatus = &v
28224	return s
28225}
28226
28227type DescribeAuditTaskInput struct {
28228	_ struct{} `type:"structure"`
28229
28230	// The ID of the audit whose information you want to get.
28231	//
28232	// TaskId is a required field
28233	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28234}
28235
28236// String returns the string representation
28237func (s DescribeAuditTaskInput) String() string {
28238	return awsutil.Prettify(s)
28239}
28240
28241// GoString returns the string representation
28242func (s DescribeAuditTaskInput) GoString() string {
28243	return s.String()
28244}
28245
28246// Validate inspects the fields of the type to determine if they are valid.
28247func (s *DescribeAuditTaskInput) Validate() error {
28248	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
28249	if s.TaskId == nil {
28250		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28251	}
28252	if s.TaskId != nil && len(*s.TaskId) < 1 {
28253		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28254	}
28255
28256	if invalidParams.Len() > 0 {
28257		return invalidParams
28258	}
28259	return nil
28260}
28261
28262// SetTaskId sets the TaskId field's value.
28263func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
28264	s.TaskId = &v
28265	return s
28266}
28267
28268type DescribeAuditTaskOutput struct {
28269	_ struct{} `type:"structure"`
28270
28271	// Detailed information about each check performed during this audit.
28272	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
28273
28274	// The name of the scheduled audit (only if the audit was a scheduled audit).
28275	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
28276
28277	// The time the audit started.
28278	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
28279
28280	// Statistical information about the audit.
28281	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
28282
28283	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
28284	// "CANCELED".
28285	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
28286
28287	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
28288	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
28289}
28290
28291// String returns the string representation
28292func (s DescribeAuditTaskOutput) String() string {
28293	return awsutil.Prettify(s)
28294}
28295
28296// GoString returns the string representation
28297func (s DescribeAuditTaskOutput) GoString() string {
28298	return s.String()
28299}
28300
28301// SetAuditDetails sets the AuditDetails field's value.
28302func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
28303	s.AuditDetails = v
28304	return s
28305}
28306
28307// SetScheduledAuditName sets the ScheduledAuditName field's value.
28308func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
28309	s.ScheduledAuditName = &v
28310	return s
28311}
28312
28313// SetTaskStartTime sets the TaskStartTime field's value.
28314func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
28315	s.TaskStartTime = &v
28316	return s
28317}
28318
28319// SetTaskStatistics sets the TaskStatistics field's value.
28320func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
28321	s.TaskStatistics = v
28322	return s
28323}
28324
28325// SetTaskStatus sets the TaskStatus field's value.
28326func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
28327	s.TaskStatus = &v
28328	return s
28329}
28330
28331// SetTaskType sets the TaskType field's value.
28332func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
28333	s.TaskType = &v
28334	return s
28335}
28336
28337type DescribeAuthorizerInput struct {
28338	_ struct{} `type:"structure"`
28339
28340	// The name of the authorizer to describe.
28341	//
28342	// AuthorizerName is a required field
28343	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
28344}
28345
28346// String returns the string representation
28347func (s DescribeAuthorizerInput) String() string {
28348	return awsutil.Prettify(s)
28349}
28350
28351// GoString returns the string representation
28352func (s DescribeAuthorizerInput) GoString() string {
28353	return s.String()
28354}
28355
28356// Validate inspects the fields of the type to determine if they are valid.
28357func (s *DescribeAuthorizerInput) Validate() error {
28358	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
28359	if s.AuthorizerName == nil {
28360		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
28361	}
28362	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
28363		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
28364	}
28365
28366	if invalidParams.Len() > 0 {
28367		return invalidParams
28368	}
28369	return nil
28370}
28371
28372// SetAuthorizerName sets the AuthorizerName field's value.
28373func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
28374	s.AuthorizerName = &v
28375	return s
28376}
28377
28378type DescribeAuthorizerOutput struct {
28379	_ struct{} `type:"structure"`
28380
28381	// The authorizer description.
28382	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
28383}
28384
28385// String returns the string representation
28386func (s DescribeAuthorizerOutput) String() string {
28387	return awsutil.Prettify(s)
28388}
28389
28390// GoString returns the string representation
28391func (s DescribeAuthorizerOutput) GoString() string {
28392	return s.String()
28393}
28394
28395// SetAuthorizerDescription sets the AuthorizerDescription field's value.
28396func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
28397	s.AuthorizerDescription = v
28398	return s
28399}
28400
28401type DescribeBillingGroupInput struct {
28402	_ struct{} `type:"structure"`
28403
28404	// The name of the billing group.
28405	//
28406	// BillingGroupName is a required field
28407	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
28408}
28409
28410// String returns the string representation
28411func (s DescribeBillingGroupInput) String() string {
28412	return awsutil.Prettify(s)
28413}
28414
28415// GoString returns the string representation
28416func (s DescribeBillingGroupInput) GoString() string {
28417	return s.String()
28418}
28419
28420// Validate inspects the fields of the type to determine if they are valid.
28421func (s *DescribeBillingGroupInput) Validate() error {
28422	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
28423	if s.BillingGroupName == nil {
28424		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
28425	}
28426	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
28427		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
28428	}
28429
28430	if invalidParams.Len() > 0 {
28431		return invalidParams
28432	}
28433	return nil
28434}
28435
28436// SetBillingGroupName sets the BillingGroupName field's value.
28437func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
28438	s.BillingGroupName = &v
28439	return s
28440}
28441
28442type DescribeBillingGroupOutput struct {
28443	_ struct{} `type:"structure"`
28444
28445	// The ARN of the billing group.
28446	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
28447
28448	// The ID of the billing group.
28449	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
28450
28451	// Additional information about the billing group.
28452	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
28453
28454	// The name of the billing group.
28455	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
28456
28457	// The properties of the billing group.
28458	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
28459
28460	// The version of the billing group.
28461	Version *int64 `locationName:"version" type:"long"`
28462}
28463
28464// String returns the string representation
28465func (s DescribeBillingGroupOutput) String() string {
28466	return awsutil.Prettify(s)
28467}
28468
28469// GoString returns the string representation
28470func (s DescribeBillingGroupOutput) GoString() string {
28471	return s.String()
28472}
28473
28474// SetBillingGroupArn sets the BillingGroupArn field's value.
28475func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
28476	s.BillingGroupArn = &v
28477	return s
28478}
28479
28480// SetBillingGroupId sets the BillingGroupId field's value.
28481func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
28482	s.BillingGroupId = &v
28483	return s
28484}
28485
28486// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
28487func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
28488	s.BillingGroupMetadata = v
28489	return s
28490}
28491
28492// SetBillingGroupName sets the BillingGroupName field's value.
28493func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
28494	s.BillingGroupName = &v
28495	return s
28496}
28497
28498// SetBillingGroupProperties sets the BillingGroupProperties field's value.
28499func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
28500	s.BillingGroupProperties = v
28501	return s
28502}
28503
28504// SetVersion sets the Version field's value.
28505func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
28506	s.Version = &v
28507	return s
28508}
28509
28510// The input for the DescribeCACertificate operation.
28511type DescribeCACertificateInput struct {
28512	_ struct{} `type:"structure"`
28513
28514	// The CA certificate identifier.
28515	//
28516	// CertificateId is a required field
28517	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
28518}
28519
28520// String returns the string representation
28521func (s DescribeCACertificateInput) String() string {
28522	return awsutil.Prettify(s)
28523}
28524
28525// GoString returns the string representation
28526func (s DescribeCACertificateInput) GoString() string {
28527	return s.String()
28528}
28529
28530// Validate inspects the fields of the type to determine if they are valid.
28531func (s *DescribeCACertificateInput) Validate() error {
28532	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
28533	if s.CertificateId == nil {
28534		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
28535	}
28536	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
28537		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
28538	}
28539
28540	if invalidParams.Len() > 0 {
28541		return invalidParams
28542	}
28543	return nil
28544}
28545
28546// SetCertificateId sets the CertificateId field's value.
28547func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
28548	s.CertificateId = &v
28549	return s
28550}
28551
28552// The output from the DescribeCACertificate operation.
28553type DescribeCACertificateOutput struct {
28554	_ struct{} `type:"structure"`
28555
28556	// The CA certificate description.
28557	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
28558
28559	// Information about the registration configuration.
28560	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
28561}
28562
28563// String returns the string representation
28564func (s DescribeCACertificateOutput) String() string {
28565	return awsutil.Prettify(s)
28566}
28567
28568// GoString returns the string representation
28569func (s DescribeCACertificateOutput) GoString() string {
28570	return s.String()
28571}
28572
28573// SetCertificateDescription sets the CertificateDescription field's value.
28574func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
28575	s.CertificateDescription = v
28576	return s
28577}
28578
28579// SetRegistrationConfig sets the RegistrationConfig field's value.
28580func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
28581	s.RegistrationConfig = v
28582	return s
28583}
28584
28585// The input for the DescribeCertificate operation.
28586type DescribeCertificateInput struct {
28587	_ struct{} `type:"structure"`
28588
28589	// The ID of the certificate. (The last part of the certificate ARN contains
28590	// the certificate ID.)
28591	//
28592	// CertificateId is a required field
28593	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
28594}
28595
28596// String returns the string representation
28597func (s DescribeCertificateInput) String() string {
28598	return awsutil.Prettify(s)
28599}
28600
28601// GoString returns the string representation
28602func (s DescribeCertificateInput) GoString() string {
28603	return s.String()
28604}
28605
28606// Validate inspects the fields of the type to determine if they are valid.
28607func (s *DescribeCertificateInput) Validate() error {
28608	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
28609	if s.CertificateId == nil {
28610		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
28611	}
28612	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
28613		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
28614	}
28615
28616	if invalidParams.Len() > 0 {
28617		return invalidParams
28618	}
28619	return nil
28620}
28621
28622// SetCertificateId sets the CertificateId field's value.
28623func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
28624	s.CertificateId = &v
28625	return s
28626}
28627
28628// The output of the DescribeCertificate operation.
28629type DescribeCertificateOutput struct {
28630	_ struct{} `type:"structure"`
28631
28632	// The description of the certificate.
28633	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
28634}
28635
28636// String returns the string representation
28637func (s DescribeCertificateOutput) String() string {
28638	return awsutil.Prettify(s)
28639}
28640
28641// GoString returns the string representation
28642func (s DescribeCertificateOutput) GoString() string {
28643	return s.String()
28644}
28645
28646// SetCertificateDescription sets the CertificateDescription field's value.
28647func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
28648	s.CertificateDescription = v
28649	return s
28650}
28651
28652type DescribeDefaultAuthorizerInput struct {
28653	_ struct{} `type:"structure"`
28654}
28655
28656// String returns the string representation
28657func (s DescribeDefaultAuthorizerInput) String() string {
28658	return awsutil.Prettify(s)
28659}
28660
28661// GoString returns the string representation
28662func (s DescribeDefaultAuthorizerInput) GoString() string {
28663	return s.String()
28664}
28665
28666type DescribeDefaultAuthorizerOutput struct {
28667	_ struct{} `type:"structure"`
28668
28669	// The default authorizer's description.
28670	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
28671}
28672
28673// String returns the string representation
28674func (s DescribeDefaultAuthorizerOutput) String() string {
28675	return awsutil.Prettify(s)
28676}
28677
28678// GoString returns the string representation
28679func (s DescribeDefaultAuthorizerOutput) GoString() string {
28680	return s.String()
28681}
28682
28683// SetAuthorizerDescription sets the AuthorizerDescription field's value.
28684func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
28685	s.AuthorizerDescription = v
28686	return s
28687}
28688
28689type DescribeDimensionInput struct {
28690	_ struct{} `type:"structure"`
28691
28692	// The unique identifier for the dimension.
28693	//
28694	// Name is a required field
28695	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
28696}
28697
28698// String returns the string representation
28699func (s DescribeDimensionInput) String() string {
28700	return awsutil.Prettify(s)
28701}
28702
28703// GoString returns the string representation
28704func (s DescribeDimensionInput) GoString() string {
28705	return s.String()
28706}
28707
28708// Validate inspects the fields of the type to determine if they are valid.
28709func (s *DescribeDimensionInput) Validate() error {
28710	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
28711	if s.Name == nil {
28712		invalidParams.Add(request.NewErrParamRequired("Name"))
28713	}
28714	if s.Name != nil && len(*s.Name) < 1 {
28715		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
28716	}
28717
28718	if invalidParams.Len() > 0 {
28719		return invalidParams
28720	}
28721	return nil
28722}
28723
28724// SetName sets the Name field's value.
28725func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
28726	s.Name = &v
28727	return s
28728}
28729
28730type DescribeDimensionOutput struct {
28731	_ struct{} `type:"structure"`
28732
28733	// The ARN (Amazon resource name) for the dimension.
28734	Arn *string `locationName:"arn" type:"string"`
28735
28736	// The date the dimension was created.
28737	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28738
28739	// The date the dimension was last modified.
28740	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
28741
28742	// The unique identifier for the dimension.
28743	Name *string `locationName:"name" min:"1" type:"string"`
28744
28745	// The value or list of values used to scope the dimension. For example, for
28746	// topic filters, this is the pattern used to match the MQTT topic name.
28747	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
28748
28749	// The type of the dimension.
28750	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
28751}
28752
28753// String returns the string representation
28754func (s DescribeDimensionOutput) String() string {
28755	return awsutil.Prettify(s)
28756}
28757
28758// GoString returns the string representation
28759func (s DescribeDimensionOutput) GoString() string {
28760	return s.String()
28761}
28762
28763// SetArn sets the Arn field's value.
28764func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
28765	s.Arn = &v
28766	return s
28767}
28768
28769// SetCreationDate sets the CreationDate field's value.
28770func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
28771	s.CreationDate = &v
28772	return s
28773}
28774
28775// SetLastModifiedDate sets the LastModifiedDate field's value.
28776func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
28777	s.LastModifiedDate = &v
28778	return s
28779}
28780
28781// SetName sets the Name field's value.
28782func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
28783	s.Name = &v
28784	return s
28785}
28786
28787// SetStringValues sets the StringValues field's value.
28788func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
28789	s.StringValues = v
28790	return s
28791}
28792
28793// SetType sets the Type field's value.
28794func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
28795	s.Type = &v
28796	return s
28797}
28798
28799type DescribeDomainConfigurationInput struct {
28800	_ struct{} `type:"structure"`
28801
28802	// The name of the domain configuration.
28803	//
28804	// DomainConfigurationName is a required field
28805	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
28806}
28807
28808// String returns the string representation
28809func (s DescribeDomainConfigurationInput) String() string {
28810	return awsutil.Prettify(s)
28811}
28812
28813// GoString returns the string representation
28814func (s DescribeDomainConfigurationInput) GoString() string {
28815	return s.String()
28816}
28817
28818// Validate inspects the fields of the type to determine if they are valid.
28819func (s *DescribeDomainConfigurationInput) Validate() error {
28820	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
28821	if s.DomainConfigurationName == nil {
28822		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
28823	}
28824	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
28825		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
28826	}
28827
28828	if invalidParams.Len() > 0 {
28829		return invalidParams
28830	}
28831	return nil
28832}
28833
28834// SetDomainConfigurationName sets the DomainConfigurationName field's value.
28835func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
28836	s.DomainConfigurationName = &v
28837	return s
28838}
28839
28840type DescribeDomainConfigurationOutput struct {
28841	_ struct{} `type:"structure"`
28842
28843	// An object that specifies the authorization service for a domain.
28844	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
28845
28846	// The ARN of the domain configuration.
28847	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
28848
28849	// The name of the domain configuration.
28850	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
28851
28852	// A Boolean value that specifies the current state of the domain configuration.
28853	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
28854
28855	// The name of the domain.
28856	DomainName *string `locationName:"domainName" min:"1" type:"string"`
28857
28858	// The type of the domain.
28859	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
28860
28861	// A list containing summary information about the server certificate included
28862	// in the domain configuration.
28863	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
28864
28865	// The type of service delivered by the endpoint.
28866	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
28867}
28868
28869// String returns the string representation
28870func (s DescribeDomainConfigurationOutput) String() string {
28871	return awsutil.Prettify(s)
28872}
28873
28874// GoString returns the string representation
28875func (s DescribeDomainConfigurationOutput) GoString() string {
28876	return s.String()
28877}
28878
28879// SetAuthorizerConfig sets the AuthorizerConfig field's value.
28880func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
28881	s.AuthorizerConfig = v
28882	return s
28883}
28884
28885// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
28886func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
28887	s.DomainConfigurationArn = &v
28888	return s
28889}
28890
28891// SetDomainConfigurationName sets the DomainConfigurationName field's value.
28892func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
28893	s.DomainConfigurationName = &v
28894	return s
28895}
28896
28897// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
28898func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
28899	s.DomainConfigurationStatus = &v
28900	return s
28901}
28902
28903// SetDomainName sets the DomainName field's value.
28904func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
28905	s.DomainName = &v
28906	return s
28907}
28908
28909// SetDomainType sets the DomainType field's value.
28910func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
28911	s.DomainType = &v
28912	return s
28913}
28914
28915// SetServerCertificates sets the ServerCertificates field's value.
28916func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
28917	s.ServerCertificates = v
28918	return s
28919}
28920
28921// SetServiceType sets the ServiceType field's value.
28922func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
28923	s.ServiceType = &v
28924	return s
28925}
28926
28927// The input for the DescribeEndpoint operation.
28928type DescribeEndpointInput struct {
28929	_ struct{} `type:"structure"`
28930
28931	// The endpoint type. Valid endpoint types include:
28932	//
28933	//    * iot:Data - Returns a VeriSign signed data endpoint.
28934	//
28935	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
28936	//
28937	//    * iot:CredentialProvider - Returns an AWS IoT credentials provider API
28938	//    endpoint.
28939	//
28940	//    * iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.
28941	//
28942	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
28943	// type to avoid issues related to the widespread distrust of Symantec certificate
28944	// authorities.
28945	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
28946}
28947
28948// String returns the string representation
28949func (s DescribeEndpointInput) String() string {
28950	return awsutil.Prettify(s)
28951}
28952
28953// GoString returns the string representation
28954func (s DescribeEndpointInput) GoString() string {
28955	return s.String()
28956}
28957
28958// SetEndpointType sets the EndpointType field's value.
28959func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
28960	s.EndpointType = &v
28961	return s
28962}
28963
28964// The output from the DescribeEndpoint operation.
28965type DescribeEndpointOutput struct {
28966	_ struct{} `type:"structure"`
28967
28968	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
28969	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
28970}
28971
28972// String returns the string representation
28973func (s DescribeEndpointOutput) String() string {
28974	return awsutil.Prettify(s)
28975}
28976
28977// GoString returns the string representation
28978func (s DescribeEndpointOutput) GoString() string {
28979	return s.String()
28980}
28981
28982// SetEndpointAddress sets the EndpointAddress field's value.
28983func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
28984	s.EndpointAddress = &v
28985	return s
28986}
28987
28988type DescribeEventConfigurationsInput struct {
28989	_ struct{} `type:"structure"`
28990}
28991
28992// String returns the string representation
28993func (s DescribeEventConfigurationsInput) String() string {
28994	return awsutil.Prettify(s)
28995}
28996
28997// GoString returns the string representation
28998func (s DescribeEventConfigurationsInput) GoString() string {
28999	return s.String()
29000}
29001
29002type DescribeEventConfigurationsOutput struct {
29003	_ struct{} `type:"structure"`
29004
29005	// The creation date of the event configuration.
29006	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29007
29008	// The event configurations.
29009	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
29010
29011	// The date the event configurations were last modified.
29012	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
29013}
29014
29015// String returns the string representation
29016func (s DescribeEventConfigurationsOutput) String() string {
29017	return awsutil.Prettify(s)
29018}
29019
29020// GoString returns the string representation
29021func (s DescribeEventConfigurationsOutput) GoString() string {
29022	return s.String()
29023}
29024
29025// SetCreationDate sets the CreationDate field's value.
29026func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
29027	s.CreationDate = &v
29028	return s
29029}
29030
29031// SetEventConfigurations sets the EventConfigurations field's value.
29032func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
29033	s.EventConfigurations = v
29034	return s
29035}
29036
29037// SetLastModifiedDate sets the LastModifiedDate field's value.
29038func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
29039	s.LastModifiedDate = &v
29040	return s
29041}
29042
29043type DescribeIndexInput struct {
29044	_ struct{} `type:"structure"`
29045
29046	// The index name.
29047	//
29048	// IndexName is a required field
29049	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
29050}
29051
29052// String returns the string representation
29053func (s DescribeIndexInput) String() string {
29054	return awsutil.Prettify(s)
29055}
29056
29057// GoString returns the string representation
29058func (s DescribeIndexInput) GoString() string {
29059	return s.String()
29060}
29061
29062// Validate inspects the fields of the type to determine if they are valid.
29063func (s *DescribeIndexInput) Validate() error {
29064	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
29065	if s.IndexName == nil {
29066		invalidParams.Add(request.NewErrParamRequired("IndexName"))
29067	}
29068	if s.IndexName != nil && len(*s.IndexName) < 1 {
29069		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
29070	}
29071
29072	if invalidParams.Len() > 0 {
29073		return invalidParams
29074	}
29075	return nil
29076}
29077
29078// SetIndexName sets the IndexName field's value.
29079func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
29080	s.IndexName = &v
29081	return s
29082}
29083
29084type DescribeIndexOutput struct {
29085	_ struct{} `type:"structure"`
29086
29087	// The index name.
29088	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29089
29090	// The index status.
29091	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
29092
29093	// Contains a value that specifies the type of indexing performed. Valid values
29094	// are:
29095	//
29096	//    * REGISTRY – Your thing index contains only registry data.
29097	//
29098	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
29099	//    data.
29100	//
29101	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
29102	//    data and thing connectivity status data.
29103	//
29104	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
29105	//    registry data, shadow data, and thing connectivity status data.
29106	Schema *string `locationName:"schema" type:"string"`
29107}
29108
29109// String returns the string representation
29110func (s DescribeIndexOutput) String() string {
29111	return awsutil.Prettify(s)
29112}
29113
29114// GoString returns the string representation
29115func (s DescribeIndexOutput) GoString() string {
29116	return s.String()
29117}
29118
29119// SetIndexName sets the IndexName field's value.
29120func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
29121	s.IndexName = &v
29122	return s
29123}
29124
29125// SetIndexStatus sets the IndexStatus field's value.
29126func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
29127	s.IndexStatus = &v
29128	return s
29129}
29130
29131// SetSchema sets the Schema field's value.
29132func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
29133	s.Schema = &v
29134	return s
29135}
29136
29137type DescribeJobExecutionInput struct {
29138	_ struct{} `type:"structure"`
29139
29140	// A string (consisting of the digits "0" through "9" which is used to specify
29141	// a particular job execution on a particular device.
29142	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
29143
29144	// The unique identifier you assigned to this job when it was created.
29145	//
29146	// JobId is a required field
29147	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29148
29149	// The name of the thing on which the job execution is running.
29150	//
29151	// ThingName is a required field
29152	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
29153}
29154
29155// String returns the string representation
29156func (s DescribeJobExecutionInput) String() string {
29157	return awsutil.Prettify(s)
29158}
29159
29160// GoString returns the string representation
29161func (s DescribeJobExecutionInput) GoString() string {
29162	return s.String()
29163}
29164
29165// Validate inspects the fields of the type to determine if they are valid.
29166func (s *DescribeJobExecutionInput) Validate() error {
29167	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
29168	if s.JobId == nil {
29169		invalidParams.Add(request.NewErrParamRequired("JobId"))
29170	}
29171	if s.JobId != nil && len(*s.JobId) < 1 {
29172		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29173	}
29174	if s.ThingName == nil {
29175		invalidParams.Add(request.NewErrParamRequired("ThingName"))
29176	}
29177	if s.ThingName != nil && len(*s.ThingName) < 1 {
29178		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
29179	}
29180
29181	if invalidParams.Len() > 0 {
29182		return invalidParams
29183	}
29184	return nil
29185}
29186
29187// SetExecutionNumber sets the ExecutionNumber field's value.
29188func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
29189	s.ExecutionNumber = &v
29190	return s
29191}
29192
29193// SetJobId sets the JobId field's value.
29194func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
29195	s.JobId = &v
29196	return s
29197}
29198
29199// SetThingName sets the ThingName field's value.
29200func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
29201	s.ThingName = &v
29202	return s
29203}
29204
29205type DescribeJobExecutionOutput struct {
29206	_ struct{} `type:"structure"`
29207
29208	// Information about the job execution.
29209	Execution *JobExecution `locationName:"execution" type:"structure"`
29210}
29211
29212// String returns the string representation
29213func (s DescribeJobExecutionOutput) String() string {
29214	return awsutil.Prettify(s)
29215}
29216
29217// GoString returns the string representation
29218func (s DescribeJobExecutionOutput) GoString() string {
29219	return s.String()
29220}
29221
29222// SetExecution sets the Execution field's value.
29223func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
29224	s.Execution = v
29225	return s
29226}
29227
29228type DescribeJobInput struct {
29229	_ struct{} `type:"structure"`
29230
29231	// The unique identifier you assigned to this job when it was created.
29232	//
29233	// JobId is a required field
29234	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29235}
29236
29237// String returns the string representation
29238func (s DescribeJobInput) String() string {
29239	return awsutil.Prettify(s)
29240}
29241
29242// GoString returns the string representation
29243func (s DescribeJobInput) GoString() string {
29244	return s.String()
29245}
29246
29247// Validate inspects the fields of the type to determine if they are valid.
29248func (s *DescribeJobInput) Validate() error {
29249	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
29250	if s.JobId == nil {
29251		invalidParams.Add(request.NewErrParamRequired("JobId"))
29252	}
29253	if s.JobId != nil && len(*s.JobId) < 1 {
29254		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29255	}
29256
29257	if invalidParams.Len() > 0 {
29258		return invalidParams
29259	}
29260	return nil
29261}
29262
29263// SetJobId sets the JobId field's value.
29264func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
29265	s.JobId = &v
29266	return s
29267}
29268
29269type DescribeJobOutput struct {
29270	_ struct{} `type:"structure"`
29271
29272	// An S3 link to the job document.
29273	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29274
29275	// Information about the job.
29276	Job *Job `locationName:"job" type:"structure"`
29277}
29278
29279// String returns the string representation
29280func (s DescribeJobOutput) String() string {
29281	return awsutil.Prettify(s)
29282}
29283
29284// GoString returns the string representation
29285func (s DescribeJobOutput) GoString() string {
29286	return s.String()
29287}
29288
29289// SetDocumentSource sets the DocumentSource field's value.
29290func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
29291	s.DocumentSource = &v
29292	return s
29293}
29294
29295// SetJob sets the Job field's value.
29296func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
29297	s.Job = v
29298	return s
29299}
29300
29301type DescribeMitigationActionInput struct {
29302	_ struct{} `type:"structure"`
29303
29304	// The friendly name that uniquely identifies the mitigation action.
29305	//
29306	// ActionName is a required field
29307	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
29308}
29309
29310// String returns the string representation
29311func (s DescribeMitigationActionInput) String() string {
29312	return awsutil.Prettify(s)
29313}
29314
29315// GoString returns the string representation
29316func (s DescribeMitigationActionInput) GoString() string {
29317	return s.String()
29318}
29319
29320// Validate inspects the fields of the type to determine if they are valid.
29321func (s *DescribeMitigationActionInput) Validate() error {
29322	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
29323	if s.ActionName == nil {
29324		invalidParams.Add(request.NewErrParamRequired("ActionName"))
29325	}
29326	if s.ActionName != nil && len(*s.ActionName) < 1 {
29327		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
29328	}
29329
29330	if invalidParams.Len() > 0 {
29331		return invalidParams
29332	}
29333	return nil
29334}
29335
29336// SetActionName sets the ActionName field's value.
29337func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
29338	s.ActionName = &v
29339	return s
29340}
29341
29342type DescribeMitigationActionOutput struct {
29343	_ struct{} `type:"structure"`
29344
29345	// The ARN that identifies this migration action.
29346	ActionArn *string `locationName:"actionArn" type:"string"`
29347
29348	// A unique identifier for this action.
29349	ActionId *string `locationName:"actionId" type:"string"`
29350
29351	// The friendly name that uniquely identifies the mitigation action.
29352	ActionName *string `locationName:"actionName" type:"string"`
29353
29354	// Parameters that control how the mitigation action is applied, specific to
29355	// the type of mitigation action.
29356	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
29357
29358	// The type of mitigation action.
29359	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
29360
29361	// The date and time when the mitigation action was added to your AWS account.
29362	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29363
29364	// The date and time when the mitigation action was last changed.
29365	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
29366
29367	// The ARN of the IAM role used to apply this action.
29368	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
29369}
29370
29371// String returns the string representation
29372func (s DescribeMitigationActionOutput) String() string {
29373	return awsutil.Prettify(s)
29374}
29375
29376// GoString returns the string representation
29377func (s DescribeMitigationActionOutput) GoString() string {
29378	return s.String()
29379}
29380
29381// SetActionArn sets the ActionArn field's value.
29382func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
29383	s.ActionArn = &v
29384	return s
29385}
29386
29387// SetActionId sets the ActionId field's value.
29388func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
29389	s.ActionId = &v
29390	return s
29391}
29392
29393// SetActionName sets the ActionName field's value.
29394func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
29395	s.ActionName = &v
29396	return s
29397}
29398
29399// SetActionParams sets the ActionParams field's value.
29400func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
29401	s.ActionParams = v
29402	return s
29403}
29404
29405// SetActionType sets the ActionType field's value.
29406func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
29407	s.ActionType = &v
29408	return s
29409}
29410
29411// SetCreationDate sets the CreationDate field's value.
29412func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
29413	s.CreationDate = &v
29414	return s
29415}
29416
29417// SetLastModifiedDate sets the LastModifiedDate field's value.
29418func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
29419	s.LastModifiedDate = &v
29420	return s
29421}
29422
29423// SetRoleArn sets the RoleArn field's value.
29424func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
29425	s.RoleArn = &v
29426	return s
29427}
29428
29429type DescribeProvisioningTemplateInput struct {
29430	_ struct{} `type:"structure"`
29431
29432	// The name of the fleet provisioning template.
29433	//
29434	// TemplateName is a required field
29435	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
29436}
29437
29438// String returns the string representation
29439func (s DescribeProvisioningTemplateInput) String() string {
29440	return awsutil.Prettify(s)
29441}
29442
29443// GoString returns the string representation
29444func (s DescribeProvisioningTemplateInput) GoString() string {
29445	return s.String()
29446}
29447
29448// Validate inspects the fields of the type to determine if they are valid.
29449func (s *DescribeProvisioningTemplateInput) Validate() error {
29450	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
29451	if s.TemplateName == nil {
29452		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
29453	}
29454	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
29455		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
29456	}
29457
29458	if invalidParams.Len() > 0 {
29459		return invalidParams
29460	}
29461	return nil
29462}
29463
29464// SetTemplateName sets the TemplateName field's value.
29465func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
29466	s.TemplateName = &v
29467	return s
29468}
29469
29470type DescribeProvisioningTemplateOutput struct {
29471	_ struct{} `type:"structure"`
29472
29473	// The date when the fleet provisioning template was created.
29474	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29475
29476	// The default fleet template version ID.
29477	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
29478
29479	// The description of the fleet provisioning template.
29480	Description *string `locationName:"description" type:"string"`
29481
29482	// True if the fleet provisioning template is enabled, otherwise false.
29483	Enabled *bool `locationName:"enabled" type:"boolean"`
29484
29485	// The date when the fleet provisioning template was last modified.
29486	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
29487
29488	// Gets information about a pre-provisioned hook.
29489	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
29490
29491	// The ARN of the role associated with the provisioning template. This IoT role
29492	// grants permission to provision a device.
29493	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
29494
29495	// The ARN of the fleet provisioning template.
29496	TemplateArn *string `locationName:"templateArn" type:"string"`
29497
29498	// The JSON formatted contents of the fleet provisioning template.
29499	TemplateBody *string `locationName:"templateBody" type:"string"`
29500
29501	// The name of the fleet provisioning template.
29502	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
29503}
29504
29505// String returns the string representation
29506func (s DescribeProvisioningTemplateOutput) String() string {
29507	return awsutil.Prettify(s)
29508}
29509
29510// GoString returns the string representation
29511func (s DescribeProvisioningTemplateOutput) GoString() string {
29512	return s.String()
29513}
29514
29515// SetCreationDate sets the CreationDate field's value.
29516func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
29517	s.CreationDate = &v
29518	return s
29519}
29520
29521// SetDefaultVersionId sets the DefaultVersionId field's value.
29522func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
29523	s.DefaultVersionId = &v
29524	return s
29525}
29526
29527// SetDescription sets the Description field's value.
29528func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
29529	s.Description = &v
29530	return s
29531}
29532
29533// SetEnabled sets the Enabled field's value.
29534func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
29535	s.Enabled = &v
29536	return s
29537}
29538
29539// SetLastModifiedDate sets the LastModifiedDate field's value.
29540func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
29541	s.LastModifiedDate = &v
29542	return s
29543}
29544
29545// SetPreProvisioningHook sets the PreProvisioningHook field's value.
29546func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
29547	s.PreProvisioningHook = v
29548	return s
29549}
29550
29551// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
29552func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
29553	s.ProvisioningRoleArn = &v
29554	return s
29555}
29556
29557// SetTemplateArn sets the TemplateArn field's value.
29558func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
29559	s.TemplateArn = &v
29560	return s
29561}
29562
29563// SetTemplateBody sets the TemplateBody field's value.
29564func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
29565	s.TemplateBody = &v
29566	return s
29567}
29568
29569// SetTemplateName sets the TemplateName field's value.
29570func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
29571	s.TemplateName = &v
29572	return s
29573}
29574
29575type DescribeProvisioningTemplateVersionInput struct {
29576	_ struct{} `type:"structure"`
29577
29578	// The template name.
29579	//
29580	// TemplateName is a required field
29581	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
29582
29583	// The fleet provisioning template version ID.
29584	//
29585	// VersionId is a required field
29586	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
29587}
29588
29589// String returns the string representation
29590func (s DescribeProvisioningTemplateVersionInput) String() string {
29591	return awsutil.Prettify(s)
29592}
29593
29594// GoString returns the string representation
29595func (s DescribeProvisioningTemplateVersionInput) GoString() string {
29596	return s.String()
29597}
29598
29599// Validate inspects the fields of the type to determine if they are valid.
29600func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
29601	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
29602	if s.TemplateName == nil {
29603		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
29604	}
29605	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
29606		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
29607	}
29608	if s.VersionId == nil {
29609		invalidParams.Add(request.NewErrParamRequired("VersionId"))
29610	}
29611
29612	if invalidParams.Len() > 0 {
29613		return invalidParams
29614	}
29615	return nil
29616}
29617
29618// SetTemplateName sets the TemplateName field's value.
29619func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
29620	s.TemplateName = &v
29621	return s
29622}
29623
29624// SetVersionId sets the VersionId field's value.
29625func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
29626	s.VersionId = &v
29627	return s
29628}
29629
29630type DescribeProvisioningTemplateVersionOutput struct {
29631	_ struct{} `type:"structure"`
29632
29633	// The date when the fleet provisioning template version was created.
29634	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29635
29636	// True if the fleet provisioning template version is the default version.
29637	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
29638
29639	// The JSON formatted contents of the fleet provisioning template version.
29640	TemplateBody *string `locationName:"templateBody" type:"string"`
29641
29642	// The fleet provisioning template version ID.
29643	VersionId *int64 `locationName:"versionId" type:"integer"`
29644}
29645
29646// String returns the string representation
29647func (s DescribeProvisioningTemplateVersionOutput) String() string {
29648	return awsutil.Prettify(s)
29649}
29650
29651// GoString returns the string representation
29652func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
29653	return s.String()
29654}
29655
29656// SetCreationDate sets the CreationDate field's value.
29657func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
29658	s.CreationDate = &v
29659	return s
29660}
29661
29662// SetIsDefaultVersion sets the IsDefaultVersion field's value.
29663func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
29664	s.IsDefaultVersion = &v
29665	return s
29666}
29667
29668// SetTemplateBody sets the TemplateBody field's value.
29669func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
29670	s.TemplateBody = &v
29671	return s
29672}
29673
29674// SetVersionId sets the VersionId field's value.
29675func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
29676	s.VersionId = &v
29677	return s
29678}
29679
29680type DescribeRoleAliasInput struct {
29681	_ struct{} `type:"structure"`
29682
29683	// The role alias to describe.
29684	//
29685	// RoleAlias is a required field
29686	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
29687}
29688
29689// String returns the string representation
29690func (s DescribeRoleAliasInput) String() string {
29691	return awsutil.Prettify(s)
29692}
29693
29694// GoString returns the string representation
29695func (s DescribeRoleAliasInput) GoString() string {
29696	return s.String()
29697}
29698
29699// Validate inspects the fields of the type to determine if they are valid.
29700func (s *DescribeRoleAliasInput) Validate() error {
29701	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
29702	if s.RoleAlias == nil {
29703		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
29704	}
29705	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
29706		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
29707	}
29708
29709	if invalidParams.Len() > 0 {
29710		return invalidParams
29711	}
29712	return nil
29713}
29714
29715// SetRoleAlias sets the RoleAlias field's value.
29716func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
29717	s.RoleAlias = &v
29718	return s
29719}
29720
29721type DescribeRoleAliasOutput struct {
29722	_ struct{} `type:"structure"`
29723
29724	// The role alias description.
29725	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
29726}
29727
29728// String returns the string representation
29729func (s DescribeRoleAliasOutput) String() string {
29730	return awsutil.Prettify(s)
29731}
29732
29733// GoString returns the string representation
29734func (s DescribeRoleAliasOutput) GoString() string {
29735	return s.String()
29736}
29737
29738// SetRoleAliasDescription sets the RoleAliasDescription field's value.
29739func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
29740	s.RoleAliasDescription = v
29741	return s
29742}
29743
29744type DescribeScheduledAuditInput struct {
29745	_ struct{} `type:"structure"`
29746
29747	// The name of the scheduled audit whose information you want to get.
29748	//
29749	// ScheduledAuditName is a required field
29750	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
29751}
29752
29753// String returns the string representation
29754func (s DescribeScheduledAuditInput) String() string {
29755	return awsutil.Prettify(s)
29756}
29757
29758// GoString returns the string representation
29759func (s DescribeScheduledAuditInput) GoString() string {
29760	return s.String()
29761}
29762
29763// Validate inspects the fields of the type to determine if they are valid.
29764func (s *DescribeScheduledAuditInput) Validate() error {
29765	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
29766	if s.ScheduledAuditName == nil {
29767		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
29768	}
29769	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
29770		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
29771	}
29772
29773	if invalidParams.Len() > 0 {
29774		return invalidParams
29775	}
29776	return nil
29777}
29778
29779// SetScheduledAuditName sets the ScheduledAuditName field's value.
29780func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
29781	s.ScheduledAuditName = &v
29782	return s
29783}
29784
29785type DescribeScheduledAuditOutput struct {
29786	_ struct{} `type:"structure"`
29787
29788	// The day of the month on which the scheduled audit takes place. Will be "1"
29789	// through "31" or "LAST". If days 29-31 are specified, and the month does not
29790	// have that many days, the audit takes place on the "LAST" day of the month.
29791	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
29792
29793	// The day of the week on which the scheduled audit takes place. One of "SUN",
29794	// "MON", "TUE", "WED", "THU", "FRI", or "SAT".
29795	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
29796
29797	// How often the scheduled audit takes place. One of "DAILY", "WEEKLY", "BIWEEKLY",
29798	// or "MONTHLY". The start time of each audit is determined by the system.
29799	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
29800
29801	// The ARN of the scheduled audit.
29802	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
29803
29804	// The name of the scheduled audit.
29805	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
29806
29807	// Which checks are performed during the scheduled audit. Checks must be enabled
29808	// for your account. (Use DescribeAccountAuditConfiguration to see the list
29809	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
29810	// to select which checks are enabled.)
29811	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
29812}
29813
29814// String returns the string representation
29815func (s DescribeScheduledAuditOutput) String() string {
29816	return awsutil.Prettify(s)
29817}
29818
29819// GoString returns the string representation
29820func (s DescribeScheduledAuditOutput) GoString() string {
29821	return s.String()
29822}
29823
29824// SetDayOfMonth sets the DayOfMonth field's value.
29825func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
29826	s.DayOfMonth = &v
29827	return s
29828}
29829
29830// SetDayOfWeek sets the DayOfWeek field's value.
29831func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
29832	s.DayOfWeek = &v
29833	return s
29834}
29835
29836// SetFrequency sets the Frequency field's value.
29837func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
29838	s.Frequency = &v
29839	return s
29840}
29841
29842// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
29843func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
29844	s.ScheduledAuditArn = &v
29845	return s
29846}
29847
29848// SetScheduledAuditName sets the ScheduledAuditName field's value.
29849func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
29850	s.ScheduledAuditName = &v
29851	return s
29852}
29853
29854// SetTargetCheckNames sets the TargetCheckNames field's value.
29855func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
29856	s.TargetCheckNames = v
29857	return s
29858}
29859
29860type DescribeSecurityProfileInput struct {
29861	_ struct{} `type:"structure"`
29862
29863	// The name of the security profile whose information you want to get.
29864	//
29865	// SecurityProfileName is a required field
29866	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
29867}
29868
29869// String returns the string representation
29870func (s DescribeSecurityProfileInput) String() string {
29871	return awsutil.Prettify(s)
29872}
29873
29874// GoString returns the string representation
29875func (s DescribeSecurityProfileInput) GoString() string {
29876	return s.String()
29877}
29878
29879// Validate inspects the fields of the type to determine if they are valid.
29880func (s *DescribeSecurityProfileInput) Validate() error {
29881	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
29882	if s.SecurityProfileName == nil {
29883		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
29884	}
29885	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
29886		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
29887	}
29888
29889	if invalidParams.Len() > 0 {
29890		return invalidParams
29891	}
29892	return nil
29893}
29894
29895// SetSecurityProfileName sets the SecurityProfileName field's value.
29896func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
29897	s.SecurityProfileName = &v
29898	return s
29899}
29900
29901type DescribeSecurityProfileOutput struct {
29902	_ struct{} `type:"structure"`
29903
29904	// A list of metrics whose data is retained (stored). By default, data is retained
29905	// for any metric used in the profile's behaviors, but it is also retained for
29906	// any metric specified here.
29907	//
29908	// Note: This API field is deprecated. Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2
29909	// instead.
29910	//
29911	// Deprecated: Use additionalMetricsToRetainV2.
29912	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
29913
29914	// A list of metrics whose data is retained (stored). By default, data is retained
29915	// for any metric used in the profile's behaviors, but it is also retained for
29916	// any metric specified here.
29917	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
29918
29919	// Where the alerts are sent. (Alerts are always sent to the console.)
29920	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
29921
29922	// Specifies the behaviors that, when violated by a device (thing), cause an
29923	// alert.
29924	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
29925
29926	// The time the security profile was created.
29927	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29928
29929	// The time the security profile was last modified.
29930	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
29931
29932	// The ARN of the security profile.
29933	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
29934
29935	// A description of the security profile (associated with the security profile
29936	// when it was created or updated).
29937	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
29938
29939	// The name of the security profile.
29940	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
29941
29942	// The version of the security profile. A new version is generated whenever
29943	// the security profile is updated.
29944	Version *int64 `locationName:"version" type:"long"`
29945}
29946
29947// String returns the string representation
29948func (s DescribeSecurityProfileOutput) String() string {
29949	return awsutil.Prettify(s)
29950}
29951
29952// GoString returns the string representation
29953func (s DescribeSecurityProfileOutput) GoString() string {
29954	return s.String()
29955}
29956
29957// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
29958func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
29959	s.AdditionalMetricsToRetain = v
29960	return s
29961}
29962
29963// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
29964func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
29965	s.AdditionalMetricsToRetainV2 = v
29966	return s
29967}
29968
29969// SetAlertTargets sets the AlertTargets field's value.
29970func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
29971	s.AlertTargets = v
29972	return s
29973}
29974
29975// SetBehaviors sets the Behaviors field's value.
29976func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
29977	s.Behaviors = v
29978	return s
29979}
29980
29981// SetCreationDate sets the CreationDate field's value.
29982func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
29983	s.CreationDate = &v
29984	return s
29985}
29986
29987// SetLastModifiedDate sets the LastModifiedDate field's value.
29988func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
29989	s.LastModifiedDate = &v
29990	return s
29991}
29992
29993// SetSecurityProfileArn sets the SecurityProfileArn field's value.
29994func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
29995	s.SecurityProfileArn = &v
29996	return s
29997}
29998
29999// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
30000func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
30001	s.SecurityProfileDescription = &v
30002	return s
30003}
30004
30005// SetSecurityProfileName sets the SecurityProfileName field's value.
30006func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
30007	s.SecurityProfileName = &v
30008	return s
30009}
30010
30011// SetVersion sets the Version field's value.
30012func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
30013	s.Version = &v
30014	return s
30015}
30016
30017type DescribeStreamInput struct {
30018	_ struct{} `type:"structure"`
30019
30020	// The stream ID.
30021	//
30022	// StreamId is a required field
30023	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
30024}
30025
30026// String returns the string representation
30027func (s DescribeStreamInput) String() string {
30028	return awsutil.Prettify(s)
30029}
30030
30031// GoString returns the string representation
30032func (s DescribeStreamInput) GoString() string {
30033	return s.String()
30034}
30035
30036// Validate inspects the fields of the type to determine if they are valid.
30037func (s *DescribeStreamInput) Validate() error {
30038	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
30039	if s.StreamId == nil {
30040		invalidParams.Add(request.NewErrParamRequired("StreamId"))
30041	}
30042	if s.StreamId != nil && len(*s.StreamId) < 1 {
30043		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
30044	}
30045
30046	if invalidParams.Len() > 0 {
30047		return invalidParams
30048	}
30049	return nil
30050}
30051
30052// SetStreamId sets the StreamId field's value.
30053func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
30054	s.StreamId = &v
30055	return s
30056}
30057
30058type DescribeStreamOutput struct {
30059	_ struct{} `type:"structure"`
30060
30061	// Information about the stream.
30062	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
30063}
30064
30065// String returns the string representation
30066func (s DescribeStreamOutput) String() string {
30067	return awsutil.Prettify(s)
30068}
30069
30070// GoString returns the string representation
30071func (s DescribeStreamOutput) GoString() string {
30072	return s.String()
30073}
30074
30075// SetStreamInfo sets the StreamInfo field's value.
30076func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
30077	s.StreamInfo = v
30078	return s
30079}
30080
30081type DescribeThingGroupInput struct {
30082	_ struct{} `type:"structure"`
30083
30084	// The name of the thing group.
30085	//
30086	// ThingGroupName is a required field
30087	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
30088}
30089
30090// String returns the string representation
30091func (s DescribeThingGroupInput) String() string {
30092	return awsutil.Prettify(s)
30093}
30094
30095// GoString returns the string representation
30096func (s DescribeThingGroupInput) GoString() string {
30097	return s.String()
30098}
30099
30100// Validate inspects the fields of the type to determine if they are valid.
30101func (s *DescribeThingGroupInput) Validate() error {
30102	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
30103	if s.ThingGroupName == nil {
30104		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
30105	}
30106	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
30107		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
30108	}
30109
30110	if invalidParams.Len() > 0 {
30111		return invalidParams
30112	}
30113	return nil
30114}
30115
30116// SetThingGroupName sets the ThingGroupName field's value.
30117func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
30118	s.ThingGroupName = &v
30119	return s
30120}
30121
30122type DescribeThingGroupOutput struct {
30123	_ struct{} `type:"structure"`
30124
30125	// The dynamic thing group index name.
30126	IndexName *string `locationName:"indexName" min:"1" type:"string"`
30127
30128	// The dynamic thing group search query string.
30129	QueryString *string `locationName:"queryString" min:"1" type:"string"`
30130
30131	// The dynamic thing group query version.
30132	QueryVersion *string `locationName:"queryVersion" type:"string"`
30133
30134	// The dynamic thing group status.
30135	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
30136
30137	// The thing group ARN.
30138	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
30139
30140	// The thing group ID.
30141	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
30142
30143	// Thing group metadata.
30144	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
30145
30146	// The name of the thing group.
30147	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
30148
30149	// The thing group properties.
30150	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
30151
30152	// The version of the thing group.
30153	Version *int64 `locationName:"version" type:"long"`
30154}
30155
30156// String returns the string representation
30157func (s DescribeThingGroupOutput) String() string {
30158	return awsutil.Prettify(s)
30159}
30160
30161// GoString returns the string representation
30162func (s DescribeThingGroupOutput) GoString() string {
30163	return s.String()
30164}
30165
30166// SetIndexName sets the IndexName field's value.
30167func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
30168	s.IndexName = &v
30169	return s
30170}
30171
30172// SetQueryString sets the QueryString field's value.
30173func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
30174	s.QueryString = &v
30175	return s
30176}
30177
30178// SetQueryVersion sets the QueryVersion field's value.
30179func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
30180	s.QueryVersion = &v
30181	return s
30182}
30183
30184// SetStatus sets the Status field's value.
30185func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
30186	s.Status = &v
30187	return s
30188}
30189
30190// SetThingGroupArn sets the ThingGroupArn field's value.
30191func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
30192	s.ThingGroupArn = &v
30193	return s
30194}
30195
30196// SetThingGroupId sets the ThingGroupId field's value.
30197func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
30198	s.ThingGroupId = &v
30199	return s
30200}
30201
30202// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
30203func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
30204	s.ThingGroupMetadata = v
30205	return s
30206}
30207
30208// SetThingGroupName sets the ThingGroupName field's value.
30209func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
30210	s.ThingGroupName = &v
30211	return s
30212}
30213
30214// SetThingGroupProperties sets the ThingGroupProperties field's value.
30215func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
30216	s.ThingGroupProperties = v
30217	return s
30218}
30219
30220// SetVersion sets the Version field's value.
30221func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
30222	s.Version = &v
30223	return s
30224}
30225
30226// The input for the DescribeThing operation.
30227type DescribeThingInput struct {
30228	_ struct{} `type:"structure"`
30229
30230	// The name of the thing.
30231	//
30232	// ThingName is a required field
30233	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
30234}
30235
30236// String returns the string representation
30237func (s DescribeThingInput) String() string {
30238	return awsutil.Prettify(s)
30239}
30240
30241// GoString returns the string representation
30242func (s DescribeThingInput) GoString() string {
30243	return s.String()
30244}
30245
30246// Validate inspects the fields of the type to determine if they are valid.
30247func (s *DescribeThingInput) Validate() error {
30248	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
30249	if s.ThingName == nil {
30250		invalidParams.Add(request.NewErrParamRequired("ThingName"))
30251	}
30252	if s.ThingName != nil && len(*s.ThingName) < 1 {
30253		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
30254	}
30255
30256	if invalidParams.Len() > 0 {
30257		return invalidParams
30258	}
30259	return nil
30260}
30261
30262// SetThingName sets the ThingName field's value.
30263func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
30264	s.ThingName = &v
30265	return s
30266}
30267
30268// The output from the DescribeThing operation.
30269type DescribeThingOutput struct {
30270	_ struct{} `type:"structure"`
30271
30272	// The thing attributes.
30273	Attributes map[string]*string `locationName:"attributes" type:"map"`
30274
30275	// The name of the billing group the thing belongs to.
30276	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
30277
30278	// The default MQTT client ID. For a typical device, the thing name is also
30279	// used as the default MQTT client ID. Although we don’t require a mapping
30280	// between a thing's registry name and its use of MQTT client IDs, certificates,
30281	// or shadow state, we recommend that you choose a thing name and use it as
30282	// the MQTT client ID for the registry and the Device Shadow service.
30283	//
30284	// This lets you better organize your AWS IoT fleet without removing the flexibility
30285	// of the underlying device certificate model or shadows.
30286	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
30287
30288	// The ARN of the thing to describe.
30289	ThingArn *string `locationName:"thingArn" type:"string"`
30290
30291	// The ID of the thing to describe.
30292	ThingId *string `locationName:"thingId" type:"string"`
30293
30294	// The name of the thing.
30295	ThingName *string `locationName:"thingName" min:"1" type:"string"`
30296
30297	// The thing type name.
30298	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
30299
30300	// The current version of the thing record in the registry.
30301	//
30302	// To avoid unintentional changes to the information in the registry, you can
30303	// pass the version information in the expectedVersion parameter of the UpdateThing
30304	// and DeleteThing calls.
30305	Version *int64 `locationName:"version" type:"long"`
30306}
30307
30308// String returns the string representation
30309func (s DescribeThingOutput) String() string {
30310	return awsutil.Prettify(s)
30311}
30312
30313// GoString returns the string representation
30314func (s DescribeThingOutput) GoString() string {
30315	return s.String()
30316}
30317
30318// SetAttributes sets the Attributes field's value.
30319func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
30320	s.Attributes = v
30321	return s
30322}
30323
30324// SetBillingGroupName sets the BillingGroupName field's value.
30325func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
30326	s.BillingGroupName = &v
30327	return s
30328}
30329
30330// SetDefaultClientId sets the DefaultClientId field's value.
30331func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
30332	s.DefaultClientId = &v
30333	return s
30334}
30335
30336// SetThingArn sets the ThingArn field's value.
30337func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
30338	s.ThingArn = &v
30339	return s
30340}
30341
30342// SetThingId sets the ThingId field's value.
30343func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
30344	s.ThingId = &v
30345	return s
30346}
30347
30348// SetThingName sets the ThingName field's value.
30349func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
30350	s.ThingName = &v
30351	return s
30352}
30353
30354// SetThingTypeName sets the ThingTypeName field's value.
30355func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
30356	s.ThingTypeName = &v
30357	return s
30358}
30359
30360// SetVersion sets the Version field's value.
30361func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
30362	s.Version = &v
30363	return s
30364}
30365
30366type DescribeThingRegistrationTaskInput struct {
30367	_ struct{} `type:"structure"`
30368
30369	// The task ID.
30370	//
30371	// TaskId is a required field
30372	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
30373}
30374
30375// String returns the string representation
30376func (s DescribeThingRegistrationTaskInput) String() string {
30377	return awsutil.Prettify(s)
30378}
30379
30380// GoString returns the string representation
30381func (s DescribeThingRegistrationTaskInput) GoString() string {
30382	return s.String()
30383}
30384
30385// Validate inspects the fields of the type to determine if they are valid.
30386func (s *DescribeThingRegistrationTaskInput) Validate() error {
30387	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
30388	if s.TaskId == nil {
30389		invalidParams.Add(request.NewErrParamRequired("TaskId"))
30390	}
30391	if s.TaskId != nil && len(*s.TaskId) < 1 {
30392		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
30393	}
30394
30395	if invalidParams.Len() > 0 {
30396		return invalidParams
30397	}
30398	return nil
30399}
30400
30401// SetTaskId sets the TaskId field's value.
30402func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
30403	s.TaskId = &v
30404	return s
30405}
30406
30407type DescribeThingRegistrationTaskOutput struct {
30408	_ struct{} `type:"structure"`
30409
30410	// The task creation date.
30411	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
30412
30413	// The number of things that failed to be provisioned.
30414	FailureCount *int64 `locationName:"failureCount" type:"integer"`
30415
30416	// The S3 bucket that contains the input file.
30417	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
30418
30419	// The input file key.
30420	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
30421
30422	// The date when the task was last modified.
30423	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
30424
30425	// The message.
30426	Message *string `locationName:"message" type:"string"`
30427
30428	// The progress of the bulk provisioning task expressed as a percentage.
30429	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
30430
30431	// The role ARN that grants access to the input file bucket.
30432	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
30433
30434	// The status of the bulk thing provisioning task.
30435	Status *string `locationName:"status" type:"string" enum:"Status"`
30436
30437	// The number of things successfully provisioned.
30438	SuccessCount *int64 `locationName:"successCount" type:"integer"`
30439
30440	// The task ID.
30441	TaskId *string `locationName:"taskId" type:"string"`
30442
30443	// The task's template.
30444	TemplateBody *string `locationName:"templateBody" type:"string"`
30445}
30446
30447// String returns the string representation
30448func (s DescribeThingRegistrationTaskOutput) String() string {
30449	return awsutil.Prettify(s)
30450}
30451
30452// GoString returns the string representation
30453func (s DescribeThingRegistrationTaskOutput) GoString() string {
30454	return s.String()
30455}
30456
30457// SetCreationDate sets the CreationDate field's value.
30458func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
30459	s.CreationDate = &v
30460	return s
30461}
30462
30463// SetFailureCount sets the FailureCount field's value.
30464func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
30465	s.FailureCount = &v
30466	return s
30467}
30468
30469// SetInputFileBucket sets the InputFileBucket field's value.
30470func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
30471	s.InputFileBucket = &v
30472	return s
30473}
30474
30475// SetInputFileKey sets the InputFileKey field's value.
30476func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
30477	s.InputFileKey = &v
30478	return s
30479}
30480
30481// SetLastModifiedDate sets the LastModifiedDate field's value.
30482func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
30483	s.LastModifiedDate = &v
30484	return s
30485}
30486
30487// SetMessage sets the Message field's value.
30488func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
30489	s.Message = &v
30490	return s
30491}
30492
30493// SetPercentageProgress sets the PercentageProgress field's value.
30494func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
30495	s.PercentageProgress = &v
30496	return s
30497}
30498
30499// SetRoleArn sets the RoleArn field's value.
30500func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
30501	s.RoleArn = &v
30502	return s
30503}
30504
30505// SetStatus sets the Status field's value.
30506func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
30507	s.Status = &v
30508	return s
30509}
30510
30511// SetSuccessCount sets the SuccessCount field's value.
30512func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
30513	s.SuccessCount = &v
30514	return s
30515}
30516
30517// SetTaskId sets the TaskId field's value.
30518func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
30519	s.TaskId = &v
30520	return s
30521}
30522
30523// SetTemplateBody sets the TemplateBody field's value.
30524func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
30525	s.TemplateBody = &v
30526	return s
30527}
30528
30529// The input for the DescribeThingType operation.
30530type DescribeThingTypeInput struct {
30531	_ struct{} `type:"structure"`
30532
30533	// The name of the thing type.
30534	//
30535	// ThingTypeName is a required field
30536	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
30537}
30538
30539// String returns the string representation
30540func (s DescribeThingTypeInput) String() string {
30541	return awsutil.Prettify(s)
30542}
30543
30544// GoString returns the string representation
30545func (s DescribeThingTypeInput) GoString() string {
30546	return s.String()
30547}
30548
30549// Validate inspects the fields of the type to determine if they are valid.
30550func (s *DescribeThingTypeInput) Validate() error {
30551	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
30552	if s.ThingTypeName == nil {
30553		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
30554	}
30555	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
30556		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
30557	}
30558
30559	if invalidParams.Len() > 0 {
30560		return invalidParams
30561	}
30562	return nil
30563}
30564
30565// SetThingTypeName sets the ThingTypeName field's value.
30566func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
30567	s.ThingTypeName = &v
30568	return s
30569}
30570
30571// The output for the DescribeThingType operation.
30572type DescribeThingTypeOutput struct {
30573	_ struct{} `type:"structure"`
30574
30575	// The thing type ARN.
30576	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
30577
30578	// The thing type ID.
30579	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
30580
30581	// The ThingTypeMetadata contains additional information about the thing type
30582	// including: creation date and time, a value indicating whether the thing type
30583	// is deprecated, and a date and time when it was deprecated.
30584	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
30585
30586	// The name of the thing type.
30587	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
30588
30589	// The ThingTypeProperties contains information about the thing type including
30590	// description, and a list of searchable thing attribute names.
30591	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
30592}
30593
30594// String returns the string representation
30595func (s DescribeThingTypeOutput) String() string {
30596	return awsutil.Prettify(s)
30597}
30598
30599// GoString returns the string representation
30600func (s DescribeThingTypeOutput) GoString() string {
30601	return s.String()
30602}
30603
30604// SetThingTypeArn sets the ThingTypeArn field's value.
30605func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
30606	s.ThingTypeArn = &v
30607	return s
30608}
30609
30610// SetThingTypeId sets the ThingTypeId field's value.
30611func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
30612	s.ThingTypeId = &v
30613	return s
30614}
30615
30616// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
30617func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
30618	s.ThingTypeMetadata = v
30619	return s
30620}
30621
30622// SetThingTypeName sets the ThingTypeName field's value.
30623func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
30624	s.ThingTypeName = &v
30625	return s
30626}
30627
30628// SetThingTypeProperties sets the ThingTypeProperties field's value.
30629func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
30630	s.ThingTypeProperties = v
30631	return s
30632}
30633
30634// Describes the location of the updated firmware.
30635type Destination struct {
30636	_ struct{} `type:"structure"`
30637
30638	// Describes the location in S3 of the updated firmware.
30639	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
30640}
30641
30642// String returns the string representation
30643func (s Destination) String() string {
30644	return awsutil.Prettify(s)
30645}
30646
30647// GoString returns the string representation
30648func (s Destination) GoString() string {
30649	return s.String()
30650}
30651
30652// Validate inspects the fields of the type to determine if they are valid.
30653func (s *Destination) Validate() error {
30654	invalidParams := request.ErrInvalidParams{Context: "Destination"}
30655	if s.S3Destination != nil {
30656		if err := s.S3Destination.Validate(); err != nil {
30657			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
30658		}
30659	}
30660
30661	if invalidParams.Len() > 0 {
30662		return invalidParams
30663	}
30664	return nil
30665}
30666
30667// SetS3Destination sets the S3Destination field's value.
30668func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
30669	s.S3Destination = v
30670	return s
30671}
30672
30673type DetachPolicyInput struct {
30674	_ struct{} `type:"structure"`
30675
30676	// The policy to detach.
30677	//
30678	// PolicyName is a required field
30679	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30680
30681	// The target from which the policy will be detached.
30682	//
30683	// Target is a required field
30684	Target *string `locationName:"target" type:"string" required:"true"`
30685}
30686
30687// String returns the string representation
30688func (s DetachPolicyInput) String() string {
30689	return awsutil.Prettify(s)
30690}
30691
30692// GoString returns the string representation
30693func (s DetachPolicyInput) GoString() string {
30694	return s.String()
30695}
30696
30697// Validate inspects the fields of the type to determine if they are valid.
30698func (s *DetachPolicyInput) Validate() error {
30699	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
30700	if s.PolicyName == nil {
30701		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30702	}
30703	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30704		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30705	}
30706	if s.Target == nil {
30707		invalidParams.Add(request.NewErrParamRequired("Target"))
30708	}
30709
30710	if invalidParams.Len() > 0 {
30711		return invalidParams
30712	}
30713	return nil
30714}
30715
30716// SetPolicyName sets the PolicyName field's value.
30717func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
30718	s.PolicyName = &v
30719	return s
30720}
30721
30722// SetTarget sets the Target field's value.
30723func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
30724	s.Target = &v
30725	return s
30726}
30727
30728type DetachPolicyOutput struct {
30729	_ struct{} `type:"structure"`
30730}
30731
30732// String returns the string representation
30733func (s DetachPolicyOutput) String() string {
30734	return awsutil.Prettify(s)
30735}
30736
30737// GoString returns the string representation
30738func (s DetachPolicyOutput) GoString() string {
30739	return s.String()
30740}
30741
30742// The input for the DetachPrincipalPolicy operation.
30743type DetachPrincipalPolicyInput struct {
30744	_ struct{} `type:"structure"`
30745
30746	// The name of the policy to detach.
30747	//
30748	// PolicyName is a required field
30749	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30750
30751	// The principal.
30752	//
30753	// If the principal is a certificate, specify the certificate ARN. If the principal
30754	// is an Amazon Cognito identity, specify the identity ID.
30755	//
30756	// Principal is a required field
30757	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
30758}
30759
30760// String returns the string representation
30761func (s DetachPrincipalPolicyInput) String() string {
30762	return awsutil.Prettify(s)
30763}
30764
30765// GoString returns the string representation
30766func (s DetachPrincipalPolicyInput) GoString() string {
30767	return s.String()
30768}
30769
30770// Validate inspects the fields of the type to determine if they are valid.
30771func (s *DetachPrincipalPolicyInput) Validate() error {
30772	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
30773	if s.PolicyName == nil {
30774		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30775	}
30776	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30777		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30778	}
30779	if s.Principal == nil {
30780		invalidParams.Add(request.NewErrParamRequired("Principal"))
30781	}
30782
30783	if invalidParams.Len() > 0 {
30784		return invalidParams
30785	}
30786	return nil
30787}
30788
30789// SetPolicyName sets the PolicyName field's value.
30790func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
30791	s.PolicyName = &v
30792	return s
30793}
30794
30795// SetPrincipal sets the Principal field's value.
30796func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
30797	s.Principal = &v
30798	return s
30799}
30800
30801type DetachPrincipalPolicyOutput struct {
30802	_ struct{} `type:"structure"`
30803}
30804
30805// String returns the string representation
30806func (s DetachPrincipalPolicyOutput) String() string {
30807	return awsutil.Prettify(s)
30808}
30809
30810// GoString returns the string representation
30811func (s DetachPrincipalPolicyOutput) GoString() string {
30812	return s.String()
30813}
30814
30815type DetachSecurityProfileInput struct {
30816	_ struct{} `type:"structure"`
30817
30818	// The security profile that is detached.
30819	//
30820	// SecurityProfileName is a required field
30821	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
30822
30823	// The ARN of the thing group from which the security profile is detached.
30824	//
30825	// SecurityProfileTargetArn is a required field
30826	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
30827}
30828
30829// String returns the string representation
30830func (s DetachSecurityProfileInput) String() string {
30831	return awsutil.Prettify(s)
30832}
30833
30834// GoString returns the string representation
30835func (s DetachSecurityProfileInput) GoString() string {
30836	return s.String()
30837}
30838
30839// Validate inspects the fields of the type to determine if they are valid.
30840func (s *DetachSecurityProfileInput) Validate() error {
30841	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
30842	if s.SecurityProfileName == nil {
30843		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
30844	}
30845	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
30846		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
30847	}
30848	if s.SecurityProfileTargetArn == nil {
30849		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
30850	}
30851
30852	if invalidParams.Len() > 0 {
30853		return invalidParams
30854	}
30855	return nil
30856}
30857
30858// SetSecurityProfileName sets the SecurityProfileName field's value.
30859func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
30860	s.SecurityProfileName = &v
30861	return s
30862}
30863
30864// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
30865func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
30866	s.SecurityProfileTargetArn = &v
30867	return s
30868}
30869
30870type DetachSecurityProfileOutput struct {
30871	_ struct{} `type:"structure"`
30872}
30873
30874// String returns the string representation
30875func (s DetachSecurityProfileOutput) String() string {
30876	return awsutil.Prettify(s)
30877}
30878
30879// GoString returns the string representation
30880func (s DetachSecurityProfileOutput) GoString() string {
30881	return s.String()
30882}
30883
30884// The input for the DetachThingPrincipal operation.
30885type DetachThingPrincipalInput struct {
30886	_ struct{} `type:"structure"`
30887
30888	// If the principal is a certificate, this value must be ARN of the certificate.
30889	// If the principal is an Amazon Cognito identity, this value must be the ID
30890	// of the Amazon Cognito identity.
30891	//
30892	// Principal is a required field
30893	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
30894
30895	// The name of the thing.
30896	//
30897	// ThingName is a required field
30898	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
30899}
30900
30901// String returns the string representation
30902func (s DetachThingPrincipalInput) String() string {
30903	return awsutil.Prettify(s)
30904}
30905
30906// GoString returns the string representation
30907func (s DetachThingPrincipalInput) GoString() string {
30908	return s.String()
30909}
30910
30911// Validate inspects the fields of the type to determine if they are valid.
30912func (s *DetachThingPrincipalInput) Validate() error {
30913	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
30914	if s.Principal == nil {
30915		invalidParams.Add(request.NewErrParamRequired("Principal"))
30916	}
30917	if s.ThingName == nil {
30918		invalidParams.Add(request.NewErrParamRequired("ThingName"))
30919	}
30920	if s.ThingName != nil && len(*s.ThingName) < 1 {
30921		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
30922	}
30923
30924	if invalidParams.Len() > 0 {
30925		return invalidParams
30926	}
30927	return nil
30928}
30929
30930// SetPrincipal sets the Principal field's value.
30931func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
30932	s.Principal = &v
30933	return s
30934}
30935
30936// SetThingName sets the ThingName field's value.
30937func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
30938	s.ThingName = &v
30939	return s
30940}
30941
30942// The output from the DetachThingPrincipal operation.
30943type DetachThingPrincipalOutput struct {
30944	_ struct{} `type:"structure"`
30945}
30946
30947// String returns the string representation
30948func (s DetachThingPrincipalOutput) String() string {
30949	return awsutil.Prettify(s)
30950}
30951
30952// GoString returns the string representation
30953func (s DetachThingPrincipalOutput) GoString() string {
30954	return s.String()
30955}
30956
30957// The input for the DisableTopicRuleRequest operation.
30958type DisableTopicRuleInput struct {
30959	_ struct{} `type:"structure"`
30960
30961	// The name of the rule to disable.
30962	//
30963	// RuleName is a required field
30964	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
30965}
30966
30967// String returns the string representation
30968func (s DisableTopicRuleInput) String() string {
30969	return awsutil.Prettify(s)
30970}
30971
30972// GoString returns the string representation
30973func (s DisableTopicRuleInput) GoString() string {
30974	return s.String()
30975}
30976
30977// Validate inspects the fields of the type to determine if they are valid.
30978func (s *DisableTopicRuleInput) Validate() error {
30979	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
30980	if s.RuleName == nil {
30981		invalidParams.Add(request.NewErrParamRequired("RuleName"))
30982	}
30983	if s.RuleName != nil && len(*s.RuleName) < 1 {
30984		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
30985	}
30986
30987	if invalidParams.Len() > 0 {
30988		return invalidParams
30989	}
30990	return nil
30991}
30992
30993// SetRuleName sets the RuleName field's value.
30994func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
30995	s.RuleName = &v
30996	return s
30997}
30998
30999type DisableTopicRuleOutput struct {
31000	_ struct{} `type:"structure"`
31001}
31002
31003// String returns the string representation
31004func (s DisableTopicRuleOutput) String() string {
31005	return awsutil.Prettify(s)
31006}
31007
31008// GoString returns the string representation
31009func (s DisableTopicRuleOutput) GoString() string {
31010	return s.String()
31011}
31012
31013// The summary of a domain configuration. A domain configuration specifies custom
31014// IoT-specific information about a domain. A domain configuration can be associated
31015// with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
31016// a customer managed domain, or a default endpoint.
31017//
31018//    * Data
31019//
31020//    * Jobs
31021//
31022//    * CredentialProvider
31023//
31024// The domain configuration feature is in public preview and is subject to change.
31025type DomainConfigurationSummary struct {
31026	_ struct{} `type:"structure"`
31027
31028	// The ARN of the domain configuration.
31029	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
31030
31031	// The name of the domain configuration. This value must be unique to a region.
31032	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
31033
31034	// The type of service delivered by the endpoint.
31035	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
31036}
31037
31038// String returns the string representation
31039func (s DomainConfigurationSummary) String() string {
31040	return awsutil.Prettify(s)
31041}
31042
31043// GoString returns the string representation
31044func (s DomainConfigurationSummary) GoString() string {
31045	return s.String()
31046}
31047
31048// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
31049func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
31050	s.DomainConfigurationArn = &v
31051	return s
31052}
31053
31054// SetDomainConfigurationName sets the DomainConfigurationName field's value.
31055func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
31056	s.DomainConfigurationName = &v
31057	return s
31058}
31059
31060// SetServiceType sets the ServiceType field's value.
31061func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
31062	s.ServiceType = &v
31063	return s
31064}
31065
31066// Describes an action to write to a DynamoDB table.
31067//
31068// The tableName, hashKeyField, and rangeKeyField values must match the values
31069// used when you created the table.
31070//
31071// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
31072// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
31073//
31074// You can specify any valid expression in a WHERE or SELECT clause, including
31075// JSON properties, comparisons, calculations, and functions. For example, the
31076// following field uses the third level of the topic:
31077//
31078// "hashKeyValue": "${topic(3)}"
31079//
31080// The following field uses the timestamp:
31081//
31082// "rangeKeyValue": "${timestamp()}"
31083type DynamoDBAction struct {
31084	_ struct{} `type:"structure"`
31085
31086	// The hash key name.
31087	//
31088	// HashKeyField is a required field
31089	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
31090
31091	// The hash key type. Valid values are "STRING" or "NUMBER"
31092	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
31093
31094	// The hash key value.
31095	//
31096	// HashKeyValue is a required field
31097	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
31098
31099	// The type of operation to be performed. This follows the substitution template,
31100	// so it can be ${operation}, but the substitution must result in one of the
31101	// following: INSERT, UPDATE, or DELETE.
31102	Operation *string `locationName:"operation" type:"string"`
31103
31104	// The action payload. This name can be customized.
31105	PayloadField *string `locationName:"payloadField" type:"string"`
31106
31107	// The range key name.
31108	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
31109
31110	// The range key type. Valid values are "STRING" or "NUMBER"
31111	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
31112
31113	// The range key value.
31114	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
31115
31116	// The ARN of the IAM role that grants access to the DynamoDB table.
31117	//
31118	// RoleArn is a required field
31119	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
31120
31121	// The name of the DynamoDB table.
31122	//
31123	// TableName is a required field
31124	TableName *string `locationName:"tableName" type:"string" required:"true"`
31125}
31126
31127// String returns the string representation
31128func (s DynamoDBAction) String() string {
31129	return awsutil.Prettify(s)
31130}
31131
31132// GoString returns the string representation
31133func (s DynamoDBAction) GoString() string {
31134	return s.String()
31135}
31136
31137// Validate inspects the fields of the type to determine if they are valid.
31138func (s *DynamoDBAction) Validate() error {
31139	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
31140	if s.HashKeyField == nil {
31141		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
31142	}
31143	if s.HashKeyValue == nil {
31144		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
31145	}
31146	if s.RoleArn == nil {
31147		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31148	}
31149	if s.TableName == nil {
31150		invalidParams.Add(request.NewErrParamRequired("TableName"))
31151	}
31152
31153	if invalidParams.Len() > 0 {
31154		return invalidParams
31155	}
31156	return nil
31157}
31158
31159// SetHashKeyField sets the HashKeyField field's value.
31160func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
31161	s.HashKeyField = &v
31162	return s
31163}
31164
31165// SetHashKeyType sets the HashKeyType field's value.
31166func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
31167	s.HashKeyType = &v
31168	return s
31169}
31170
31171// SetHashKeyValue sets the HashKeyValue field's value.
31172func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
31173	s.HashKeyValue = &v
31174	return s
31175}
31176
31177// SetOperation sets the Operation field's value.
31178func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
31179	s.Operation = &v
31180	return s
31181}
31182
31183// SetPayloadField sets the PayloadField field's value.
31184func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
31185	s.PayloadField = &v
31186	return s
31187}
31188
31189// SetRangeKeyField sets the RangeKeyField field's value.
31190func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
31191	s.RangeKeyField = &v
31192	return s
31193}
31194
31195// SetRangeKeyType sets the RangeKeyType field's value.
31196func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
31197	s.RangeKeyType = &v
31198	return s
31199}
31200
31201// SetRangeKeyValue sets the RangeKeyValue field's value.
31202func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
31203	s.RangeKeyValue = &v
31204	return s
31205}
31206
31207// SetRoleArn sets the RoleArn field's value.
31208func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
31209	s.RoleArn = &v
31210	return s
31211}
31212
31213// SetTableName sets the TableName field's value.
31214func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
31215	s.TableName = &v
31216	return s
31217}
31218
31219// Describes an action to write to a DynamoDB table.
31220//
31221// This DynamoDB action writes each attribute in the message payload into it's
31222// own column in the DynamoDB table.
31223type DynamoDBv2Action struct {
31224	_ struct{} `type:"structure"`
31225
31226	// Specifies the DynamoDB table to which the message data will be written. For
31227	// example:
31228	//
31229	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
31230	// "my-table" } } }
31231	//
31232	// Each attribute in the message payload will be written to a separate column
31233	// in the DynamoDB database.
31234	//
31235	// PutItem is a required field
31236	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
31237
31238	// The ARN of the IAM role that grants access to the DynamoDB table.
31239	//
31240	// RoleArn is a required field
31241	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
31242}
31243
31244// String returns the string representation
31245func (s DynamoDBv2Action) String() string {
31246	return awsutil.Prettify(s)
31247}
31248
31249// GoString returns the string representation
31250func (s DynamoDBv2Action) GoString() string {
31251	return s.String()
31252}
31253
31254// Validate inspects the fields of the type to determine if they are valid.
31255func (s *DynamoDBv2Action) Validate() error {
31256	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
31257	if s.PutItem == nil {
31258		invalidParams.Add(request.NewErrParamRequired("PutItem"))
31259	}
31260	if s.RoleArn == nil {
31261		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31262	}
31263	if s.PutItem != nil {
31264		if err := s.PutItem.Validate(); err != nil {
31265			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
31266		}
31267	}
31268
31269	if invalidParams.Len() > 0 {
31270		return invalidParams
31271	}
31272	return nil
31273}
31274
31275// SetPutItem sets the PutItem field's value.
31276func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
31277	s.PutItem = v
31278	return s
31279}
31280
31281// SetRoleArn sets the RoleArn field's value.
31282func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
31283	s.RoleArn = &v
31284	return s
31285}
31286
31287// The policy that has the effect on the authorization results.
31288type EffectivePolicy struct {
31289	_ struct{} `type:"structure"`
31290
31291	// The policy ARN.
31292	PolicyArn *string `locationName:"policyArn" type:"string"`
31293
31294	// The IAM policy document.
31295	PolicyDocument *string `locationName:"policyDocument" type:"string"`
31296
31297	// The policy name.
31298	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
31299}
31300
31301// String returns the string representation
31302func (s EffectivePolicy) String() string {
31303	return awsutil.Prettify(s)
31304}
31305
31306// GoString returns the string representation
31307func (s EffectivePolicy) GoString() string {
31308	return s.String()
31309}
31310
31311// SetPolicyArn sets the PolicyArn field's value.
31312func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
31313	s.PolicyArn = &v
31314	return s
31315}
31316
31317// SetPolicyDocument sets the PolicyDocument field's value.
31318func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
31319	s.PolicyDocument = &v
31320	return s
31321}
31322
31323// SetPolicyName sets the PolicyName field's value.
31324func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
31325	s.PolicyName = &v
31326	return s
31327}
31328
31329// Describes an action that writes data to an Amazon Elasticsearch Service domain.
31330type ElasticsearchAction struct {
31331	_ struct{} `type:"structure"`
31332
31333	// The endpoint of your Elasticsearch domain.
31334	//
31335	// Endpoint is a required field
31336	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
31337
31338	// The unique identifier for the document you are storing.
31339	//
31340	// Id is a required field
31341	Id *string `locationName:"id" type:"string" required:"true"`
31342
31343	// The Elasticsearch index where you want to store your data.
31344	//
31345	// Index is a required field
31346	Index *string `locationName:"index" type:"string" required:"true"`
31347
31348	// The IAM role ARN that has access to Elasticsearch.
31349	//
31350	// RoleArn is a required field
31351	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
31352
31353	// The type of document you are storing.
31354	//
31355	// Type is a required field
31356	Type *string `locationName:"type" type:"string" required:"true"`
31357}
31358
31359// String returns the string representation
31360func (s ElasticsearchAction) String() string {
31361	return awsutil.Prettify(s)
31362}
31363
31364// GoString returns the string representation
31365func (s ElasticsearchAction) GoString() string {
31366	return s.String()
31367}
31368
31369// Validate inspects the fields of the type to determine if they are valid.
31370func (s *ElasticsearchAction) Validate() error {
31371	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
31372	if s.Endpoint == nil {
31373		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
31374	}
31375	if s.Id == nil {
31376		invalidParams.Add(request.NewErrParamRequired("Id"))
31377	}
31378	if s.Index == nil {
31379		invalidParams.Add(request.NewErrParamRequired("Index"))
31380	}
31381	if s.RoleArn == nil {
31382		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31383	}
31384	if s.Type == nil {
31385		invalidParams.Add(request.NewErrParamRequired("Type"))
31386	}
31387
31388	if invalidParams.Len() > 0 {
31389		return invalidParams
31390	}
31391	return nil
31392}
31393
31394// SetEndpoint sets the Endpoint field's value.
31395func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
31396	s.Endpoint = &v
31397	return s
31398}
31399
31400// SetId sets the Id field's value.
31401func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
31402	s.Id = &v
31403	return s
31404}
31405
31406// SetIndex sets the Index field's value.
31407func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
31408	s.Index = &v
31409	return s
31410}
31411
31412// SetRoleArn sets the RoleArn field's value.
31413func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
31414	s.RoleArn = &v
31415	return s
31416}
31417
31418// SetType sets the Type field's value.
31419func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
31420	s.Type = &v
31421	return s
31422}
31423
31424// Parameters used when defining a mitigation action that enable AWS IoT logging.
31425type EnableIoTLoggingParams struct {
31426	_ struct{} `type:"structure"`
31427
31428	// Specifies the types of information to be logged.
31429	//
31430	// LogLevel is a required field
31431	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
31432
31433	// The ARN of the IAM role used for logging.
31434	//
31435	// RoleArnForLogging is a required field
31436	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
31437}
31438
31439// String returns the string representation
31440func (s EnableIoTLoggingParams) String() string {
31441	return awsutil.Prettify(s)
31442}
31443
31444// GoString returns the string representation
31445func (s EnableIoTLoggingParams) GoString() string {
31446	return s.String()
31447}
31448
31449// Validate inspects the fields of the type to determine if they are valid.
31450func (s *EnableIoTLoggingParams) Validate() error {
31451	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
31452	if s.LogLevel == nil {
31453		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
31454	}
31455	if s.RoleArnForLogging == nil {
31456		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
31457	}
31458	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
31459		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
31460	}
31461
31462	if invalidParams.Len() > 0 {
31463		return invalidParams
31464	}
31465	return nil
31466}
31467
31468// SetLogLevel sets the LogLevel field's value.
31469func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
31470	s.LogLevel = &v
31471	return s
31472}
31473
31474// SetRoleArnForLogging sets the RoleArnForLogging field's value.
31475func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
31476	s.RoleArnForLogging = &v
31477	return s
31478}
31479
31480// The input for the EnableTopicRuleRequest operation.
31481type EnableTopicRuleInput struct {
31482	_ struct{} `type:"structure"`
31483
31484	// The name of the topic rule to enable.
31485	//
31486	// RuleName is a required field
31487	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
31488}
31489
31490// String returns the string representation
31491func (s EnableTopicRuleInput) String() string {
31492	return awsutil.Prettify(s)
31493}
31494
31495// GoString returns the string representation
31496func (s EnableTopicRuleInput) GoString() string {
31497	return s.String()
31498}
31499
31500// Validate inspects the fields of the type to determine if they are valid.
31501func (s *EnableTopicRuleInput) Validate() error {
31502	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
31503	if s.RuleName == nil {
31504		invalidParams.Add(request.NewErrParamRequired("RuleName"))
31505	}
31506	if s.RuleName != nil && len(*s.RuleName) < 1 {
31507		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
31508	}
31509
31510	if invalidParams.Len() > 0 {
31511		return invalidParams
31512	}
31513	return nil
31514}
31515
31516// SetRuleName sets the RuleName field's value.
31517func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
31518	s.RuleName = &v
31519	return s
31520}
31521
31522type EnableTopicRuleOutput struct {
31523	_ struct{} `type:"structure"`
31524}
31525
31526// String returns the string representation
31527func (s EnableTopicRuleOutput) String() string {
31528	return awsutil.Prettify(s)
31529}
31530
31531// GoString returns the string representation
31532func (s EnableTopicRuleOutput) GoString() string {
31533	return s.String()
31534}
31535
31536// Error information.
31537type ErrorInfo struct {
31538	_ struct{} `type:"structure"`
31539
31540	// The error code.
31541	Code *string `locationName:"code" type:"string"`
31542
31543	// The error message.
31544	Message *string `locationName:"message" type:"string"`
31545}
31546
31547// String returns the string representation
31548func (s ErrorInfo) String() string {
31549	return awsutil.Prettify(s)
31550}
31551
31552// GoString returns the string representation
31553func (s ErrorInfo) GoString() string {
31554	return s.String()
31555}
31556
31557// SetCode sets the Code field's value.
31558func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
31559	s.Code = &v
31560	return s
31561}
31562
31563// SetMessage sets the Message field's value.
31564func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
31565	s.Message = &v
31566	return s
31567}
31568
31569// Information that explicitly denies authorization.
31570type ExplicitDeny struct {
31571	_ struct{} `type:"structure"`
31572
31573	// The policies that denied the authorization.
31574	Policies []*Policy `locationName:"policies" type:"list"`
31575}
31576
31577// String returns the string representation
31578func (s ExplicitDeny) String() string {
31579	return awsutil.Prettify(s)
31580}
31581
31582// GoString returns the string representation
31583func (s ExplicitDeny) GoString() string {
31584	return s.String()
31585}
31586
31587// SetPolicies sets the Policies field's value.
31588func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
31589	s.Policies = v
31590	return s
31591}
31592
31593// Allows you to create an exponential rate of rollout for a job.
31594type ExponentialRolloutRate struct {
31595	_ struct{} `type:"structure"`
31596
31597	// The minimum number of things that will be notified of a pending job, per
31598	// minute at the start of job rollout. This parameter allows you to define the
31599	// initial rate of rollout.
31600	//
31601	// BaseRatePerMinute is a required field
31602	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
31603
31604	// The exponential factor to increase the rate of rollout for a job.
31605	//
31606	// IncrementFactor is a required field
31607	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
31608
31609	// The criteria to initiate the increase in rate of rollout for a job.
31610	//
31611	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
31612	// not 1.55).
31613	//
31614	// RateIncreaseCriteria is a required field
31615	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
31616}
31617
31618// String returns the string representation
31619func (s ExponentialRolloutRate) String() string {
31620	return awsutil.Prettify(s)
31621}
31622
31623// GoString returns the string representation
31624func (s ExponentialRolloutRate) GoString() string {
31625	return s.String()
31626}
31627
31628// Validate inspects the fields of the type to determine if they are valid.
31629func (s *ExponentialRolloutRate) Validate() error {
31630	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
31631	if s.BaseRatePerMinute == nil {
31632		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
31633	}
31634	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
31635		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
31636	}
31637	if s.IncrementFactor == nil {
31638		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
31639	}
31640	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
31641		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
31642	}
31643	if s.RateIncreaseCriteria == nil {
31644		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
31645	}
31646	if s.RateIncreaseCriteria != nil {
31647		if err := s.RateIncreaseCriteria.Validate(); err != nil {
31648			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
31649		}
31650	}
31651
31652	if invalidParams.Len() > 0 {
31653		return invalidParams
31654	}
31655	return nil
31656}
31657
31658// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
31659func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
31660	s.BaseRatePerMinute = &v
31661	return s
31662}
31663
31664// SetIncrementFactor sets the IncrementFactor field's value.
31665func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
31666	s.IncrementFactor = &v
31667	return s
31668}
31669
31670// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
31671func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
31672	s.RateIncreaseCriteria = v
31673	return s
31674}
31675
31676// Describes the name and data type at a field.
31677type Field struct {
31678	_ struct{} `type:"structure"`
31679
31680	// The name of the field.
31681	Name *string `locationName:"name" type:"string"`
31682
31683	// The datatype of the field.
31684	Type *string `locationName:"type" type:"string" enum:"FieldType"`
31685}
31686
31687// String returns the string representation
31688func (s Field) String() string {
31689	return awsutil.Prettify(s)
31690}
31691
31692// GoString returns the string representation
31693func (s Field) GoString() string {
31694	return s.String()
31695}
31696
31697// SetName sets the Name field's value.
31698func (s *Field) SetName(v string) *Field {
31699	s.Name = &v
31700	return s
31701}
31702
31703// SetType sets the Type field's value.
31704func (s *Field) SetType(v string) *Field {
31705	s.Type = &v
31706	return s
31707}
31708
31709// The location of the OTA update.
31710type FileLocation struct {
31711	_ struct{} `type:"structure"`
31712
31713	// The location of the updated firmware in S3.
31714	S3Location *S3Location `locationName:"s3Location" type:"structure"`
31715
31716	// The stream that contains the OTA update.
31717	Stream *Stream `locationName:"stream" type:"structure"`
31718}
31719
31720// String returns the string representation
31721func (s FileLocation) String() string {
31722	return awsutil.Prettify(s)
31723}
31724
31725// GoString returns the string representation
31726func (s FileLocation) GoString() string {
31727	return s.String()
31728}
31729
31730// Validate inspects the fields of the type to determine if they are valid.
31731func (s *FileLocation) Validate() error {
31732	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
31733	if s.S3Location != nil {
31734		if err := s.S3Location.Validate(); err != nil {
31735			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
31736		}
31737	}
31738	if s.Stream != nil {
31739		if err := s.Stream.Validate(); err != nil {
31740			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
31741		}
31742	}
31743
31744	if invalidParams.Len() > 0 {
31745		return invalidParams
31746	}
31747	return nil
31748}
31749
31750// SetS3Location sets the S3Location field's value.
31751func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
31752	s.S3Location = v
31753	return s
31754}
31755
31756// SetStream sets the Stream field's value.
31757func (s *FileLocation) SetStream(v *Stream) *FileLocation {
31758	s.Stream = v
31759	return s
31760}
31761
31762// Describes an action that writes data to an Amazon Kinesis Firehose stream.
31763type FirehoseAction struct {
31764	_ struct{} `type:"structure"`
31765
31766	// The delivery stream name.
31767	//
31768	// DeliveryStreamName is a required field
31769	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
31770
31771	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
31772	//
31773	// RoleArn is a required field
31774	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
31775
31776	// A character separator that will be used to separate records written to the
31777	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
31778	// newline), ',' (comma).
31779	Separator *string `locationName:"separator" type:"string"`
31780}
31781
31782// String returns the string representation
31783func (s FirehoseAction) String() string {
31784	return awsutil.Prettify(s)
31785}
31786
31787// GoString returns the string representation
31788func (s FirehoseAction) GoString() string {
31789	return s.String()
31790}
31791
31792// Validate inspects the fields of the type to determine if they are valid.
31793func (s *FirehoseAction) Validate() error {
31794	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
31795	if s.DeliveryStreamName == nil {
31796		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
31797	}
31798	if s.RoleArn == nil {
31799		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31800	}
31801
31802	if invalidParams.Len() > 0 {
31803		return invalidParams
31804	}
31805	return nil
31806}
31807
31808// SetDeliveryStreamName sets the DeliveryStreamName field's value.
31809func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
31810	s.DeliveryStreamName = &v
31811	return s
31812}
31813
31814// SetRoleArn sets the RoleArn field's value.
31815func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
31816	s.RoleArn = &v
31817	return s
31818}
31819
31820// SetSeparator sets the Separator field's value.
31821func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
31822	s.Separator = &v
31823	return s
31824}
31825
31826type GetCardinalityInput struct {
31827	_ struct{} `type:"structure"`
31828
31829	// The field to aggregate.
31830	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
31831
31832	// The name of the index to search.
31833	IndexName *string `locationName:"indexName" min:"1" type:"string"`
31834
31835	// The search query.
31836	//
31837	// QueryString is a required field
31838	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
31839
31840	// The query version.
31841	QueryVersion *string `locationName:"queryVersion" type:"string"`
31842}
31843
31844// String returns the string representation
31845func (s GetCardinalityInput) String() string {
31846	return awsutil.Prettify(s)
31847}
31848
31849// GoString returns the string representation
31850func (s GetCardinalityInput) GoString() string {
31851	return s.String()
31852}
31853
31854// Validate inspects the fields of the type to determine if they are valid.
31855func (s *GetCardinalityInput) Validate() error {
31856	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
31857	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
31858		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
31859	}
31860	if s.IndexName != nil && len(*s.IndexName) < 1 {
31861		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
31862	}
31863	if s.QueryString == nil {
31864		invalidParams.Add(request.NewErrParamRequired("QueryString"))
31865	}
31866	if s.QueryString != nil && len(*s.QueryString) < 1 {
31867		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
31868	}
31869
31870	if invalidParams.Len() > 0 {
31871		return invalidParams
31872	}
31873	return nil
31874}
31875
31876// SetAggregationField sets the AggregationField field's value.
31877func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
31878	s.AggregationField = &v
31879	return s
31880}
31881
31882// SetIndexName sets the IndexName field's value.
31883func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
31884	s.IndexName = &v
31885	return s
31886}
31887
31888// SetQueryString sets the QueryString field's value.
31889func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
31890	s.QueryString = &v
31891	return s
31892}
31893
31894// SetQueryVersion sets the QueryVersion field's value.
31895func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
31896	s.QueryVersion = &v
31897	return s
31898}
31899
31900type GetCardinalityOutput struct {
31901	_ struct{} `type:"structure"`
31902
31903	// The approximate count of unique values that match the query.
31904	Cardinality *int64 `locationName:"cardinality" type:"integer"`
31905}
31906
31907// String returns the string representation
31908func (s GetCardinalityOutput) String() string {
31909	return awsutil.Prettify(s)
31910}
31911
31912// GoString returns the string representation
31913func (s GetCardinalityOutput) GoString() string {
31914	return s.String()
31915}
31916
31917// SetCardinality sets the Cardinality field's value.
31918func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
31919	s.Cardinality = &v
31920	return s
31921}
31922
31923type GetEffectivePoliciesInput struct {
31924	_ struct{} `type:"structure"`
31925
31926	// The Cognito identity pool ID.
31927	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
31928
31929	// The principal.
31930	Principal *string `locationName:"principal" type:"string"`
31931
31932	// The thing name.
31933	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
31934}
31935
31936// String returns the string representation
31937func (s GetEffectivePoliciesInput) String() string {
31938	return awsutil.Prettify(s)
31939}
31940
31941// GoString returns the string representation
31942func (s GetEffectivePoliciesInput) GoString() string {
31943	return s.String()
31944}
31945
31946// Validate inspects the fields of the type to determine if they are valid.
31947func (s *GetEffectivePoliciesInput) Validate() error {
31948	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
31949	if s.ThingName != nil && len(*s.ThingName) < 1 {
31950		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
31951	}
31952
31953	if invalidParams.Len() > 0 {
31954		return invalidParams
31955	}
31956	return nil
31957}
31958
31959// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
31960func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
31961	s.CognitoIdentityPoolId = &v
31962	return s
31963}
31964
31965// SetPrincipal sets the Principal field's value.
31966func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
31967	s.Principal = &v
31968	return s
31969}
31970
31971// SetThingName sets the ThingName field's value.
31972func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
31973	s.ThingName = &v
31974	return s
31975}
31976
31977type GetEffectivePoliciesOutput struct {
31978	_ struct{} `type:"structure"`
31979
31980	// The effective policies.
31981	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
31982}
31983
31984// String returns the string representation
31985func (s GetEffectivePoliciesOutput) String() string {
31986	return awsutil.Prettify(s)
31987}
31988
31989// GoString returns the string representation
31990func (s GetEffectivePoliciesOutput) GoString() string {
31991	return s.String()
31992}
31993
31994// SetEffectivePolicies sets the EffectivePolicies field's value.
31995func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
31996	s.EffectivePolicies = v
31997	return s
31998}
31999
32000type GetIndexingConfigurationInput struct {
32001	_ struct{} `type:"structure"`
32002}
32003
32004// String returns the string representation
32005func (s GetIndexingConfigurationInput) String() string {
32006	return awsutil.Prettify(s)
32007}
32008
32009// GoString returns the string representation
32010func (s GetIndexingConfigurationInput) GoString() string {
32011	return s.String()
32012}
32013
32014type GetIndexingConfigurationOutput struct {
32015	_ struct{} `type:"structure"`
32016
32017	// The index configuration.
32018	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
32019
32020	// Thing indexing configuration.
32021	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
32022}
32023
32024// String returns the string representation
32025func (s GetIndexingConfigurationOutput) String() string {
32026	return awsutil.Prettify(s)
32027}
32028
32029// GoString returns the string representation
32030func (s GetIndexingConfigurationOutput) GoString() string {
32031	return s.String()
32032}
32033
32034// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
32035func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
32036	s.ThingGroupIndexingConfiguration = v
32037	return s
32038}
32039
32040// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
32041func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
32042	s.ThingIndexingConfiguration = v
32043	return s
32044}
32045
32046type GetJobDocumentInput struct {
32047	_ struct{} `type:"structure"`
32048
32049	// The unique identifier you assigned to this job when it was created.
32050	//
32051	// JobId is a required field
32052	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32053}
32054
32055// String returns the string representation
32056func (s GetJobDocumentInput) String() string {
32057	return awsutil.Prettify(s)
32058}
32059
32060// GoString returns the string representation
32061func (s GetJobDocumentInput) GoString() string {
32062	return s.String()
32063}
32064
32065// Validate inspects the fields of the type to determine if they are valid.
32066func (s *GetJobDocumentInput) Validate() error {
32067	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
32068	if s.JobId == nil {
32069		invalidParams.Add(request.NewErrParamRequired("JobId"))
32070	}
32071	if s.JobId != nil && len(*s.JobId) < 1 {
32072		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32073	}
32074
32075	if invalidParams.Len() > 0 {
32076		return invalidParams
32077	}
32078	return nil
32079}
32080
32081// SetJobId sets the JobId field's value.
32082func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
32083	s.JobId = &v
32084	return s
32085}
32086
32087type GetJobDocumentOutput struct {
32088	_ struct{} `type:"structure"`
32089
32090	// The job document content.
32091	Document *string `locationName:"document" type:"string"`
32092}
32093
32094// String returns the string representation
32095func (s GetJobDocumentOutput) String() string {
32096	return awsutil.Prettify(s)
32097}
32098
32099// GoString returns the string representation
32100func (s GetJobDocumentOutput) GoString() string {
32101	return s.String()
32102}
32103
32104// SetDocument sets the Document field's value.
32105func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
32106	s.Document = &v
32107	return s
32108}
32109
32110// The input for the GetLoggingOptions operation.
32111type GetLoggingOptionsInput struct {
32112	_ struct{} `type:"structure"`
32113}
32114
32115// String returns the string representation
32116func (s GetLoggingOptionsInput) String() string {
32117	return awsutil.Prettify(s)
32118}
32119
32120// GoString returns the string representation
32121func (s GetLoggingOptionsInput) GoString() string {
32122	return s.String()
32123}
32124
32125// The output from the GetLoggingOptions operation.
32126type GetLoggingOptionsOutput struct {
32127	_ struct{} `type:"structure"`
32128
32129	// The logging level.
32130	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
32131
32132	// The ARN of the IAM role that grants access.
32133	RoleArn *string `locationName:"roleArn" type:"string"`
32134}
32135
32136// String returns the string representation
32137func (s GetLoggingOptionsOutput) String() string {
32138	return awsutil.Prettify(s)
32139}
32140
32141// GoString returns the string representation
32142func (s GetLoggingOptionsOutput) GoString() string {
32143	return s.String()
32144}
32145
32146// SetLogLevel sets the LogLevel field's value.
32147func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
32148	s.LogLevel = &v
32149	return s
32150}
32151
32152// SetRoleArn sets the RoleArn field's value.
32153func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
32154	s.RoleArn = &v
32155	return s
32156}
32157
32158type GetOTAUpdateInput struct {
32159	_ struct{} `type:"structure"`
32160
32161	// The OTA update ID.
32162	//
32163	// OtaUpdateId is a required field
32164	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
32165}
32166
32167// String returns the string representation
32168func (s GetOTAUpdateInput) String() string {
32169	return awsutil.Prettify(s)
32170}
32171
32172// GoString returns the string representation
32173func (s GetOTAUpdateInput) GoString() string {
32174	return s.String()
32175}
32176
32177// Validate inspects the fields of the type to determine if they are valid.
32178func (s *GetOTAUpdateInput) Validate() error {
32179	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
32180	if s.OtaUpdateId == nil {
32181		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
32182	}
32183	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
32184		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
32185	}
32186
32187	if invalidParams.Len() > 0 {
32188		return invalidParams
32189	}
32190	return nil
32191}
32192
32193// SetOtaUpdateId sets the OtaUpdateId field's value.
32194func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
32195	s.OtaUpdateId = &v
32196	return s
32197}
32198
32199type GetOTAUpdateOutput struct {
32200	_ struct{} `type:"structure"`
32201
32202	// The OTA update info.
32203	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
32204}
32205
32206// String returns the string representation
32207func (s GetOTAUpdateOutput) String() string {
32208	return awsutil.Prettify(s)
32209}
32210
32211// GoString returns the string representation
32212func (s GetOTAUpdateOutput) GoString() string {
32213	return s.String()
32214}
32215
32216// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
32217func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
32218	s.OtaUpdateInfo = v
32219	return s
32220}
32221
32222type GetPercentilesInput struct {
32223	_ struct{} `type:"structure"`
32224
32225	// The field to aggregate.
32226	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
32227
32228	// The name of the index to search.
32229	IndexName *string `locationName:"indexName" min:"1" type:"string"`
32230
32231	// The percentile groups returned.
32232	Percents []*float64 `locationName:"percents" type:"list"`
32233
32234	// The query string.
32235	//
32236	// QueryString is a required field
32237	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
32238
32239	// The query version.
32240	QueryVersion *string `locationName:"queryVersion" type:"string"`
32241}
32242
32243// String returns the string representation
32244func (s GetPercentilesInput) String() string {
32245	return awsutil.Prettify(s)
32246}
32247
32248// GoString returns the string representation
32249func (s GetPercentilesInput) GoString() string {
32250	return s.String()
32251}
32252
32253// Validate inspects the fields of the type to determine if they are valid.
32254func (s *GetPercentilesInput) Validate() error {
32255	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
32256	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
32257		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
32258	}
32259	if s.IndexName != nil && len(*s.IndexName) < 1 {
32260		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
32261	}
32262	if s.QueryString == nil {
32263		invalidParams.Add(request.NewErrParamRequired("QueryString"))
32264	}
32265	if s.QueryString != nil && len(*s.QueryString) < 1 {
32266		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
32267	}
32268
32269	if invalidParams.Len() > 0 {
32270		return invalidParams
32271	}
32272	return nil
32273}
32274
32275// SetAggregationField sets the AggregationField field's value.
32276func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
32277	s.AggregationField = &v
32278	return s
32279}
32280
32281// SetIndexName sets the IndexName field's value.
32282func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
32283	s.IndexName = &v
32284	return s
32285}
32286
32287// SetPercents sets the Percents field's value.
32288func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
32289	s.Percents = v
32290	return s
32291}
32292
32293// SetQueryString sets the QueryString field's value.
32294func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
32295	s.QueryString = &v
32296	return s
32297}
32298
32299// SetQueryVersion sets the QueryVersion field's value.
32300func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
32301	s.QueryVersion = &v
32302	return s
32303}
32304
32305type GetPercentilesOutput struct {
32306	_ struct{} `type:"structure"`
32307
32308	// The percentile values of the aggregated fields.
32309	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
32310}
32311
32312// String returns the string representation
32313func (s GetPercentilesOutput) String() string {
32314	return awsutil.Prettify(s)
32315}
32316
32317// GoString returns the string representation
32318func (s GetPercentilesOutput) GoString() string {
32319	return s.String()
32320}
32321
32322// SetPercentiles sets the Percentiles field's value.
32323func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
32324	s.Percentiles = v
32325	return s
32326}
32327
32328// The input for the GetPolicy operation.
32329type GetPolicyInput struct {
32330	_ struct{} `type:"structure"`
32331
32332	// The name of the policy.
32333	//
32334	// PolicyName is a required field
32335	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32336}
32337
32338// String returns the string representation
32339func (s GetPolicyInput) String() string {
32340	return awsutil.Prettify(s)
32341}
32342
32343// GoString returns the string representation
32344func (s GetPolicyInput) GoString() string {
32345	return s.String()
32346}
32347
32348// Validate inspects the fields of the type to determine if they are valid.
32349func (s *GetPolicyInput) Validate() error {
32350	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
32351	if s.PolicyName == nil {
32352		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32353	}
32354	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32355		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32356	}
32357
32358	if invalidParams.Len() > 0 {
32359		return invalidParams
32360	}
32361	return nil
32362}
32363
32364// SetPolicyName sets the PolicyName field's value.
32365func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
32366	s.PolicyName = &v
32367	return s
32368}
32369
32370// The output from the GetPolicy operation.
32371type GetPolicyOutput struct {
32372	_ struct{} `type:"structure"`
32373
32374	// The date the policy was created.
32375	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
32376
32377	// The default policy version ID.
32378	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
32379
32380	// The generation ID of the policy.
32381	GenerationId *string `locationName:"generationId" type:"string"`
32382
32383	// The date the policy was last modified.
32384	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
32385
32386	// The policy ARN.
32387	PolicyArn *string `locationName:"policyArn" type:"string"`
32388
32389	// The JSON document that describes the policy.
32390	PolicyDocument *string `locationName:"policyDocument" type:"string"`
32391
32392	// The policy name.
32393	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
32394}
32395
32396// String returns the string representation
32397func (s GetPolicyOutput) String() string {
32398	return awsutil.Prettify(s)
32399}
32400
32401// GoString returns the string representation
32402func (s GetPolicyOutput) GoString() string {
32403	return s.String()
32404}
32405
32406// SetCreationDate sets the CreationDate field's value.
32407func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
32408	s.CreationDate = &v
32409	return s
32410}
32411
32412// SetDefaultVersionId sets the DefaultVersionId field's value.
32413func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
32414	s.DefaultVersionId = &v
32415	return s
32416}
32417
32418// SetGenerationId sets the GenerationId field's value.
32419func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
32420	s.GenerationId = &v
32421	return s
32422}
32423
32424// SetLastModifiedDate sets the LastModifiedDate field's value.
32425func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
32426	s.LastModifiedDate = &v
32427	return s
32428}
32429
32430// SetPolicyArn sets the PolicyArn field's value.
32431func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
32432	s.PolicyArn = &v
32433	return s
32434}
32435
32436// SetPolicyDocument sets the PolicyDocument field's value.
32437func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
32438	s.PolicyDocument = &v
32439	return s
32440}
32441
32442// SetPolicyName sets the PolicyName field's value.
32443func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
32444	s.PolicyName = &v
32445	return s
32446}
32447
32448// The input for the GetPolicyVersion operation.
32449type GetPolicyVersionInput struct {
32450	_ struct{} `type:"structure"`
32451
32452	// The name of the policy.
32453	//
32454	// PolicyName is a required field
32455	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32456
32457	// The policy version ID.
32458	//
32459	// PolicyVersionId is a required field
32460	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
32461}
32462
32463// String returns the string representation
32464func (s GetPolicyVersionInput) String() string {
32465	return awsutil.Prettify(s)
32466}
32467
32468// GoString returns the string representation
32469func (s GetPolicyVersionInput) GoString() string {
32470	return s.String()
32471}
32472
32473// Validate inspects the fields of the type to determine if they are valid.
32474func (s *GetPolicyVersionInput) Validate() error {
32475	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
32476	if s.PolicyName == nil {
32477		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32478	}
32479	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32480		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32481	}
32482	if s.PolicyVersionId == nil {
32483		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
32484	}
32485	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
32486		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
32487	}
32488
32489	if invalidParams.Len() > 0 {
32490		return invalidParams
32491	}
32492	return nil
32493}
32494
32495// SetPolicyName sets the PolicyName field's value.
32496func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
32497	s.PolicyName = &v
32498	return s
32499}
32500
32501// SetPolicyVersionId sets the PolicyVersionId field's value.
32502func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
32503	s.PolicyVersionId = &v
32504	return s
32505}
32506
32507// The output from the GetPolicyVersion operation.
32508type GetPolicyVersionOutput struct {
32509	_ struct{} `type:"structure"`
32510
32511	// The date the policy was created.
32512	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
32513
32514	// The generation ID of the policy version.
32515	GenerationId *string `locationName:"generationId" type:"string"`
32516
32517	// Specifies whether the policy version is the default.
32518	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
32519
32520	// The date the policy was last modified.
32521	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
32522
32523	// The policy ARN.
32524	PolicyArn *string `locationName:"policyArn" type:"string"`
32525
32526	// The JSON document that describes the policy.
32527	PolicyDocument *string `locationName:"policyDocument" type:"string"`
32528
32529	// The policy name.
32530	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
32531
32532	// The policy version ID.
32533	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
32534}
32535
32536// String returns the string representation
32537func (s GetPolicyVersionOutput) String() string {
32538	return awsutil.Prettify(s)
32539}
32540
32541// GoString returns the string representation
32542func (s GetPolicyVersionOutput) GoString() string {
32543	return s.String()
32544}
32545
32546// SetCreationDate sets the CreationDate field's value.
32547func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
32548	s.CreationDate = &v
32549	return s
32550}
32551
32552// SetGenerationId sets the GenerationId field's value.
32553func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
32554	s.GenerationId = &v
32555	return s
32556}
32557
32558// SetIsDefaultVersion sets the IsDefaultVersion field's value.
32559func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
32560	s.IsDefaultVersion = &v
32561	return s
32562}
32563
32564// SetLastModifiedDate sets the LastModifiedDate field's value.
32565func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
32566	s.LastModifiedDate = &v
32567	return s
32568}
32569
32570// SetPolicyArn sets the PolicyArn field's value.
32571func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
32572	s.PolicyArn = &v
32573	return s
32574}
32575
32576// SetPolicyDocument sets the PolicyDocument field's value.
32577func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
32578	s.PolicyDocument = &v
32579	return s
32580}
32581
32582// SetPolicyName sets the PolicyName field's value.
32583func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
32584	s.PolicyName = &v
32585	return s
32586}
32587
32588// SetPolicyVersionId sets the PolicyVersionId field's value.
32589func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
32590	s.PolicyVersionId = &v
32591	return s
32592}
32593
32594// The input to the GetRegistrationCode operation.
32595type GetRegistrationCodeInput struct {
32596	_ struct{} `type:"structure"`
32597}
32598
32599// String returns the string representation
32600func (s GetRegistrationCodeInput) String() string {
32601	return awsutil.Prettify(s)
32602}
32603
32604// GoString returns the string representation
32605func (s GetRegistrationCodeInput) GoString() string {
32606	return s.String()
32607}
32608
32609// The output from the GetRegistrationCode operation.
32610type GetRegistrationCodeOutput struct {
32611	_ struct{} `type:"structure"`
32612
32613	// The CA certificate registration code.
32614	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
32615}
32616
32617// String returns the string representation
32618func (s GetRegistrationCodeOutput) String() string {
32619	return awsutil.Prettify(s)
32620}
32621
32622// GoString returns the string representation
32623func (s GetRegistrationCodeOutput) GoString() string {
32624	return s.String()
32625}
32626
32627// SetRegistrationCode sets the RegistrationCode field's value.
32628func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
32629	s.RegistrationCode = &v
32630	return s
32631}
32632
32633type GetStatisticsInput struct {
32634	_ struct{} `type:"structure"`
32635
32636	// The aggregation field name.
32637	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
32638
32639	// The name of the index to search. The default value is AWS_Things.
32640	IndexName *string `locationName:"indexName" min:"1" type:"string"`
32641
32642	// The query used to search. You can specify "*" for the query string to get
32643	// the count of all indexed things in your AWS account.
32644	//
32645	// QueryString is a required field
32646	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
32647
32648	// The version of the query used to search.
32649	QueryVersion *string `locationName:"queryVersion" type:"string"`
32650}
32651
32652// String returns the string representation
32653func (s GetStatisticsInput) String() string {
32654	return awsutil.Prettify(s)
32655}
32656
32657// GoString returns the string representation
32658func (s GetStatisticsInput) GoString() string {
32659	return s.String()
32660}
32661
32662// Validate inspects the fields of the type to determine if they are valid.
32663func (s *GetStatisticsInput) Validate() error {
32664	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
32665	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
32666		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
32667	}
32668	if s.IndexName != nil && len(*s.IndexName) < 1 {
32669		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
32670	}
32671	if s.QueryString == nil {
32672		invalidParams.Add(request.NewErrParamRequired("QueryString"))
32673	}
32674	if s.QueryString != nil && len(*s.QueryString) < 1 {
32675		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
32676	}
32677
32678	if invalidParams.Len() > 0 {
32679		return invalidParams
32680	}
32681	return nil
32682}
32683
32684// SetAggregationField sets the AggregationField field's value.
32685func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
32686	s.AggregationField = &v
32687	return s
32688}
32689
32690// SetIndexName sets the IndexName field's value.
32691func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
32692	s.IndexName = &v
32693	return s
32694}
32695
32696// SetQueryString sets the QueryString field's value.
32697func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
32698	s.QueryString = &v
32699	return s
32700}
32701
32702// SetQueryVersion sets the QueryVersion field's value.
32703func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
32704	s.QueryVersion = &v
32705	return s
32706}
32707
32708type GetStatisticsOutput struct {
32709	_ struct{} `type:"structure"`
32710
32711	// The statistics returned by the Fleet Indexing service based on the query
32712	// and aggregation field.
32713	Statistics *Statistics `locationName:"statistics" type:"structure"`
32714}
32715
32716// String returns the string representation
32717func (s GetStatisticsOutput) String() string {
32718	return awsutil.Prettify(s)
32719}
32720
32721// GoString returns the string representation
32722func (s GetStatisticsOutput) GoString() string {
32723	return s.String()
32724}
32725
32726// SetStatistics sets the Statistics field's value.
32727func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
32728	s.Statistics = v
32729	return s
32730}
32731
32732type GetTopicRuleDestinationInput struct {
32733	_ struct{} `type:"structure"`
32734
32735	// The ARN of the topic rule destination.
32736	//
32737	// Arn is a required field
32738	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
32739}
32740
32741// String returns the string representation
32742func (s GetTopicRuleDestinationInput) String() string {
32743	return awsutil.Prettify(s)
32744}
32745
32746// GoString returns the string representation
32747func (s GetTopicRuleDestinationInput) GoString() string {
32748	return s.String()
32749}
32750
32751// Validate inspects the fields of the type to determine if they are valid.
32752func (s *GetTopicRuleDestinationInput) Validate() error {
32753	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
32754	if s.Arn == nil {
32755		invalidParams.Add(request.NewErrParamRequired("Arn"))
32756	}
32757	if s.Arn != nil && len(*s.Arn) < 1 {
32758		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
32759	}
32760
32761	if invalidParams.Len() > 0 {
32762		return invalidParams
32763	}
32764	return nil
32765}
32766
32767// SetArn sets the Arn field's value.
32768func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
32769	s.Arn = &v
32770	return s
32771}
32772
32773type GetTopicRuleDestinationOutput struct {
32774	_ struct{} `type:"structure"`
32775
32776	// The topic rule destination.
32777	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
32778}
32779
32780// String returns the string representation
32781func (s GetTopicRuleDestinationOutput) String() string {
32782	return awsutil.Prettify(s)
32783}
32784
32785// GoString returns the string representation
32786func (s GetTopicRuleDestinationOutput) GoString() string {
32787	return s.String()
32788}
32789
32790// SetTopicRuleDestination sets the TopicRuleDestination field's value.
32791func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
32792	s.TopicRuleDestination = v
32793	return s
32794}
32795
32796// The input for the GetTopicRule operation.
32797type GetTopicRuleInput struct {
32798	_ struct{} `type:"structure"`
32799
32800	// The name of the rule.
32801	//
32802	// RuleName is a required field
32803	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
32804}
32805
32806// String returns the string representation
32807func (s GetTopicRuleInput) String() string {
32808	return awsutil.Prettify(s)
32809}
32810
32811// GoString returns the string representation
32812func (s GetTopicRuleInput) GoString() string {
32813	return s.String()
32814}
32815
32816// Validate inspects the fields of the type to determine if they are valid.
32817func (s *GetTopicRuleInput) Validate() error {
32818	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
32819	if s.RuleName == nil {
32820		invalidParams.Add(request.NewErrParamRequired("RuleName"))
32821	}
32822	if s.RuleName != nil && len(*s.RuleName) < 1 {
32823		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
32824	}
32825
32826	if invalidParams.Len() > 0 {
32827		return invalidParams
32828	}
32829	return nil
32830}
32831
32832// SetRuleName sets the RuleName field's value.
32833func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
32834	s.RuleName = &v
32835	return s
32836}
32837
32838// The output from the GetTopicRule operation.
32839type GetTopicRuleOutput struct {
32840	_ struct{} `type:"structure"`
32841
32842	// The rule.
32843	Rule *TopicRule `locationName:"rule" type:"structure"`
32844
32845	// The rule ARN.
32846	RuleArn *string `locationName:"ruleArn" type:"string"`
32847}
32848
32849// String returns the string representation
32850func (s GetTopicRuleOutput) String() string {
32851	return awsutil.Prettify(s)
32852}
32853
32854// GoString returns the string representation
32855func (s GetTopicRuleOutput) GoString() string {
32856	return s.String()
32857}
32858
32859// SetRule sets the Rule field's value.
32860func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
32861	s.Rule = v
32862	return s
32863}
32864
32865// SetRuleArn sets the RuleArn field's value.
32866func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
32867	s.RuleArn = &v
32868	return s
32869}
32870
32871type GetV2LoggingOptionsInput struct {
32872	_ struct{} `type:"structure"`
32873}
32874
32875// String returns the string representation
32876func (s GetV2LoggingOptionsInput) String() string {
32877	return awsutil.Prettify(s)
32878}
32879
32880// GoString returns the string representation
32881func (s GetV2LoggingOptionsInput) GoString() string {
32882	return s.String()
32883}
32884
32885type GetV2LoggingOptionsOutput struct {
32886	_ struct{} `type:"structure"`
32887
32888	// The default log level.
32889	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
32890
32891	// Disables all logs.
32892	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
32893
32894	// The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
32895	RoleArn *string `locationName:"roleArn" type:"string"`
32896}
32897
32898// String returns the string representation
32899func (s GetV2LoggingOptionsOutput) String() string {
32900	return awsutil.Prettify(s)
32901}
32902
32903// GoString returns the string representation
32904func (s GetV2LoggingOptionsOutput) GoString() string {
32905	return s.String()
32906}
32907
32908// SetDefaultLogLevel sets the DefaultLogLevel field's value.
32909func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
32910	s.DefaultLogLevel = &v
32911	return s
32912}
32913
32914// SetDisableAllLogs sets the DisableAllLogs field's value.
32915func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
32916	s.DisableAllLogs = &v
32917	return s
32918}
32919
32920// SetRoleArn sets the RoleArn field's value.
32921func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
32922	s.RoleArn = &v
32923	return s
32924}
32925
32926// The name and ARN of a group.
32927type GroupNameAndArn struct {
32928	_ struct{} `type:"structure"`
32929
32930	// The group ARN.
32931	GroupArn *string `locationName:"groupArn" type:"string"`
32932
32933	// The group name.
32934	GroupName *string `locationName:"groupName" min:"1" type:"string"`
32935}
32936
32937// String returns the string representation
32938func (s GroupNameAndArn) String() string {
32939	return awsutil.Prettify(s)
32940}
32941
32942// GoString returns the string representation
32943func (s GroupNameAndArn) GoString() string {
32944	return s.String()
32945}
32946
32947// SetGroupArn sets the GroupArn field's value.
32948func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
32949	s.GroupArn = &v
32950	return s
32951}
32952
32953// SetGroupName sets the GroupName field's value.
32954func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
32955	s.GroupName = &v
32956	return s
32957}
32958
32959// Send data to an HTTPS endpoint.
32960type HttpAction struct {
32961	_ struct{} `type:"structure"`
32962
32963	// The authentication method to use when sending data to an HTTPS endpoint.
32964	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
32965
32966	// The URL to which AWS IoT sends a confirmation message. The value of the confirmation
32967	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
32968	// URL AWS IoT uses the endpoint URL as the confirmation URL. If you use substitution
32969	// templates in the confirmationUrl, you must create and enable topic rule destinations
32970	// that match each possible value of the substitution template before traffic
32971	// is allowed to your endpoint URL.
32972	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
32973
32974	// The HTTP headers to send with the message data.
32975	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
32976
32977	// The endpoint URL. If substitution templates are used in the URL, you must
32978	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
32979	// is created if possible.
32980	//
32981	// Url is a required field
32982	Url *string `locationName:"url" type:"string" required:"true"`
32983}
32984
32985// String returns the string representation
32986func (s HttpAction) String() string {
32987	return awsutil.Prettify(s)
32988}
32989
32990// GoString returns the string representation
32991func (s HttpAction) GoString() string {
32992	return s.String()
32993}
32994
32995// Validate inspects the fields of the type to determine if they are valid.
32996func (s *HttpAction) Validate() error {
32997	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
32998	if s.Url == nil {
32999		invalidParams.Add(request.NewErrParamRequired("Url"))
33000	}
33001	if s.Auth != nil {
33002		if err := s.Auth.Validate(); err != nil {
33003			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
33004		}
33005	}
33006	if s.Headers != nil {
33007		for i, v := range s.Headers {
33008			if v == nil {
33009				continue
33010			}
33011			if err := v.Validate(); err != nil {
33012				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
33013			}
33014		}
33015	}
33016
33017	if invalidParams.Len() > 0 {
33018		return invalidParams
33019	}
33020	return nil
33021}
33022
33023// SetAuth sets the Auth field's value.
33024func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
33025	s.Auth = v
33026	return s
33027}
33028
33029// SetConfirmationUrl sets the ConfirmationUrl field's value.
33030func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
33031	s.ConfirmationUrl = &v
33032	return s
33033}
33034
33035// SetHeaders sets the Headers field's value.
33036func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
33037	s.Headers = v
33038	return s
33039}
33040
33041// SetUrl sets the Url field's value.
33042func (s *HttpAction) SetUrl(v string) *HttpAction {
33043	s.Url = &v
33044	return s
33045}
33046
33047// The HTTP action header.
33048type HttpActionHeader struct {
33049	_ struct{} `type:"structure"`
33050
33051	// The HTTP header key.
33052	//
33053	// Key is a required field
33054	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
33055
33056	// The HTTP header value. Substitution templates are supported.
33057	//
33058	// Value is a required field
33059	Value *string `locationName:"value" type:"string" required:"true"`
33060}
33061
33062// String returns the string representation
33063func (s HttpActionHeader) String() string {
33064	return awsutil.Prettify(s)
33065}
33066
33067// GoString returns the string representation
33068func (s HttpActionHeader) GoString() string {
33069	return s.String()
33070}
33071
33072// Validate inspects the fields of the type to determine if they are valid.
33073func (s *HttpActionHeader) Validate() error {
33074	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
33075	if s.Key == nil {
33076		invalidParams.Add(request.NewErrParamRequired("Key"))
33077	}
33078	if s.Key != nil && len(*s.Key) < 1 {
33079		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
33080	}
33081	if s.Value == nil {
33082		invalidParams.Add(request.NewErrParamRequired("Value"))
33083	}
33084
33085	if invalidParams.Len() > 0 {
33086		return invalidParams
33087	}
33088	return nil
33089}
33090
33091// SetKey sets the Key field's value.
33092func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
33093	s.Key = &v
33094	return s
33095}
33096
33097// SetValue sets the Value field's value.
33098func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
33099	s.Value = &v
33100	return s
33101}
33102
33103// The authorization method used to send messages.
33104type HttpAuthorization struct {
33105	_ struct{} `type:"structure"`
33106
33107	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
33108	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
33109	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
33110}
33111
33112// String returns the string representation
33113func (s HttpAuthorization) String() string {
33114	return awsutil.Prettify(s)
33115}
33116
33117// GoString returns the string representation
33118func (s HttpAuthorization) GoString() string {
33119	return s.String()
33120}
33121
33122// Validate inspects the fields of the type to determine if they are valid.
33123func (s *HttpAuthorization) Validate() error {
33124	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
33125	if s.Sigv4 != nil {
33126		if err := s.Sigv4.Validate(); err != nil {
33127			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
33128		}
33129	}
33130
33131	if invalidParams.Len() > 0 {
33132		return invalidParams
33133	}
33134	return nil
33135}
33136
33137// SetSigv4 sets the Sigv4 field's value.
33138func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
33139	s.Sigv4 = v
33140	return s
33141}
33142
33143// Specifies the HTTP context to use for the test authorizer request.
33144type HttpContext struct {
33145	_ struct{} `type:"structure"`
33146
33147	// The header keys and values in an HTTP authorization request.
33148	Headers map[string]*string `locationName:"headers" type:"map"`
33149
33150	// The query string keys and values in an HTTP authorization request.
33151	QueryString *string `locationName:"queryString" min:"1" type:"string"`
33152}
33153
33154// String returns the string representation
33155func (s HttpContext) String() string {
33156	return awsutil.Prettify(s)
33157}
33158
33159// GoString returns the string representation
33160func (s HttpContext) GoString() string {
33161	return s.String()
33162}
33163
33164// Validate inspects the fields of the type to determine if they are valid.
33165func (s *HttpContext) Validate() error {
33166	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
33167	if s.QueryString != nil && len(*s.QueryString) < 1 {
33168		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
33169	}
33170
33171	if invalidParams.Len() > 0 {
33172		return invalidParams
33173	}
33174	return nil
33175}
33176
33177// SetHeaders sets the Headers field's value.
33178func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
33179	s.Headers = v
33180	return s
33181}
33182
33183// SetQueryString sets the QueryString field's value.
33184func (s *HttpContext) SetQueryString(v string) *HttpContext {
33185	s.QueryString = &v
33186	return s
33187}
33188
33189// HTTP URL destination configuration used by the topic rule's HTTP action.
33190type HttpUrlDestinationConfiguration struct {
33191	_ struct{} `type:"structure"`
33192
33193	// The URL AWS IoT uses to confirm ownership of or access to the topic rule
33194	// destination URL.
33195	//
33196	// ConfirmationUrl is a required field
33197	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
33198}
33199
33200// String returns the string representation
33201func (s HttpUrlDestinationConfiguration) String() string {
33202	return awsutil.Prettify(s)
33203}
33204
33205// GoString returns the string representation
33206func (s HttpUrlDestinationConfiguration) GoString() string {
33207	return s.String()
33208}
33209
33210// Validate inspects the fields of the type to determine if they are valid.
33211func (s *HttpUrlDestinationConfiguration) Validate() error {
33212	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
33213	if s.ConfirmationUrl == nil {
33214		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
33215	}
33216
33217	if invalidParams.Len() > 0 {
33218		return invalidParams
33219	}
33220	return nil
33221}
33222
33223// SetConfirmationUrl sets the ConfirmationUrl field's value.
33224func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
33225	s.ConfirmationUrl = &v
33226	return s
33227}
33228
33229// HTTP URL destination properties.
33230type HttpUrlDestinationProperties struct {
33231	_ struct{} `type:"structure"`
33232
33233	// The URL used to confirm the HTTP topic rule destination URL.
33234	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
33235}
33236
33237// String returns the string representation
33238func (s HttpUrlDestinationProperties) String() string {
33239	return awsutil.Prettify(s)
33240}
33241
33242// GoString returns the string representation
33243func (s HttpUrlDestinationProperties) GoString() string {
33244	return s.String()
33245}
33246
33247// SetConfirmationUrl sets the ConfirmationUrl field's value.
33248func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
33249	s.ConfirmationUrl = &v
33250	return s
33251}
33252
33253// Information about an HTTP URL destination.
33254type HttpUrlDestinationSummary struct {
33255	_ struct{} `type:"structure"`
33256
33257	// The URL used to confirm ownership of or access to the HTTP topic rule destination
33258	// URL.
33259	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
33260}
33261
33262// String returns the string representation
33263func (s HttpUrlDestinationSummary) String() string {
33264	return awsutil.Prettify(s)
33265}
33266
33267// GoString returns the string representation
33268func (s HttpUrlDestinationSummary) GoString() string {
33269	return s.String()
33270}
33271
33272// SetConfirmationUrl sets the ConfirmationUrl field's value.
33273func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
33274	s.ConfirmationUrl = &v
33275	return s
33276}
33277
33278// Information that implicitly denies authorization. When policy doesn't explicitly
33279// deny or allow an action on a resource it is considered an implicit deny.
33280type ImplicitDeny struct {
33281	_ struct{} `type:"structure"`
33282
33283	// Policies that don't contain a matching allow or deny statement for the specified
33284	// action on the specified resource.
33285	Policies []*Policy `locationName:"policies" type:"list"`
33286}
33287
33288// String returns the string representation
33289func (s ImplicitDeny) String() string {
33290	return awsutil.Prettify(s)
33291}
33292
33293// GoString returns the string representation
33294func (s ImplicitDeny) GoString() string {
33295	return s.String()
33296}
33297
33298// SetPolicies sets the Policies field's value.
33299func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
33300	s.Policies = v
33301	return s
33302}
33303
33304// The index is not ready.
33305type IndexNotReadyException struct {
33306	_            struct{}                  `type:"structure"`
33307	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33308
33309	// The message for the exception.
33310	Message_ *string `locationName:"message" type:"string"`
33311}
33312
33313// String returns the string representation
33314func (s IndexNotReadyException) String() string {
33315	return awsutil.Prettify(s)
33316}
33317
33318// GoString returns the string representation
33319func (s IndexNotReadyException) GoString() string {
33320	return s.String()
33321}
33322
33323func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
33324	return &IndexNotReadyException{
33325		RespMetadata: v,
33326	}
33327}
33328
33329// Code returns the exception type name.
33330func (s *IndexNotReadyException) Code() string {
33331	return "IndexNotReadyException"
33332}
33333
33334// Message returns the exception's message.
33335func (s *IndexNotReadyException) Message() string {
33336	if s.Message_ != nil {
33337		return *s.Message_
33338	}
33339	return ""
33340}
33341
33342// OrigErr always returns nil, satisfies awserr.Error interface.
33343func (s *IndexNotReadyException) OrigErr() error {
33344	return nil
33345}
33346
33347func (s *IndexNotReadyException) Error() string {
33348	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33349}
33350
33351// Status code returns the HTTP status code for the request's response error.
33352func (s *IndexNotReadyException) StatusCode() int {
33353	return s.RespMetadata.StatusCode
33354}
33355
33356// RequestID returns the service's response RequestID for request.
33357func (s *IndexNotReadyException) RequestID() string {
33358	return s.RespMetadata.RequestID
33359}
33360
33361// An unexpected error has occurred.
33362type InternalException struct {
33363	_            struct{}                  `type:"structure"`
33364	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33365
33366	// The message for the exception.
33367	Message_ *string `locationName:"message" type:"string"`
33368}
33369
33370// String returns the string representation
33371func (s InternalException) String() string {
33372	return awsutil.Prettify(s)
33373}
33374
33375// GoString returns the string representation
33376func (s InternalException) GoString() string {
33377	return s.String()
33378}
33379
33380func newErrorInternalException(v protocol.ResponseMetadata) error {
33381	return &InternalException{
33382		RespMetadata: v,
33383	}
33384}
33385
33386// Code returns the exception type name.
33387func (s *InternalException) Code() string {
33388	return "InternalException"
33389}
33390
33391// Message returns the exception's message.
33392func (s *InternalException) Message() string {
33393	if s.Message_ != nil {
33394		return *s.Message_
33395	}
33396	return ""
33397}
33398
33399// OrigErr always returns nil, satisfies awserr.Error interface.
33400func (s *InternalException) OrigErr() error {
33401	return nil
33402}
33403
33404func (s *InternalException) Error() string {
33405	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33406}
33407
33408// Status code returns the HTTP status code for the request's response error.
33409func (s *InternalException) StatusCode() int {
33410	return s.RespMetadata.StatusCode
33411}
33412
33413// RequestID returns the service's response RequestID for request.
33414func (s *InternalException) RequestID() string {
33415	return s.RespMetadata.RequestID
33416}
33417
33418// An unexpected error has occurred.
33419type InternalFailureException struct {
33420	_            struct{}                  `type:"structure"`
33421	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33422
33423	// The message for the exception.
33424	Message_ *string `locationName:"message" type:"string"`
33425}
33426
33427// String returns the string representation
33428func (s InternalFailureException) String() string {
33429	return awsutil.Prettify(s)
33430}
33431
33432// GoString returns the string representation
33433func (s InternalFailureException) GoString() string {
33434	return s.String()
33435}
33436
33437func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
33438	return &InternalFailureException{
33439		RespMetadata: v,
33440	}
33441}
33442
33443// Code returns the exception type name.
33444func (s *InternalFailureException) Code() string {
33445	return "InternalFailureException"
33446}
33447
33448// Message returns the exception's message.
33449func (s *InternalFailureException) Message() string {
33450	if s.Message_ != nil {
33451		return *s.Message_
33452	}
33453	return ""
33454}
33455
33456// OrigErr always returns nil, satisfies awserr.Error interface.
33457func (s *InternalFailureException) OrigErr() error {
33458	return nil
33459}
33460
33461func (s *InternalFailureException) Error() string {
33462	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33463}
33464
33465// Status code returns the HTTP status code for the request's response error.
33466func (s *InternalFailureException) StatusCode() int {
33467	return s.RespMetadata.StatusCode
33468}
33469
33470// RequestID returns the service's response RequestID for request.
33471func (s *InternalFailureException) RequestID() string {
33472	return s.RespMetadata.RequestID
33473}
33474
33475// The aggregation is invalid.
33476type InvalidAggregationException struct {
33477	_            struct{}                  `type:"structure"`
33478	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33479
33480	Message_ *string `locationName:"message" type:"string"`
33481}
33482
33483// String returns the string representation
33484func (s InvalidAggregationException) String() string {
33485	return awsutil.Prettify(s)
33486}
33487
33488// GoString returns the string representation
33489func (s InvalidAggregationException) GoString() string {
33490	return s.String()
33491}
33492
33493func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
33494	return &InvalidAggregationException{
33495		RespMetadata: v,
33496	}
33497}
33498
33499// Code returns the exception type name.
33500func (s *InvalidAggregationException) Code() string {
33501	return "InvalidAggregationException"
33502}
33503
33504// Message returns the exception's message.
33505func (s *InvalidAggregationException) Message() string {
33506	if s.Message_ != nil {
33507		return *s.Message_
33508	}
33509	return ""
33510}
33511
33512// OrigErr always returns nil, satisfies awserr.Error interface.
33513func (s *InvalidAggregationException) OrigErr() error {
33514	return nil
33515}
33516
33517func (s *InvalidAggregationException) Error() string {
33518	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33519}
33520
33521// Status code returns the HTTP status code for the request's response error.
33522func (s *InvalidAggregationException) StatusCode() int {
33523	return s.RespMetadata.StatusCode
33524}
33525
33526// RequestID returns the service's response RequestID for request.
33527func (s *InvalidAggregationException) RequestID() string {
33528	return s.RespMetadata.RequestID
33529}
33530
33531// The query is invalid.
33532type InvalidQueryException struct {
33533	_            struct{}                  `type:"structure"`
33534	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33535
33536	// The message for the exception.
33537	Message_ *string `locationName:"message" type:"string"`
33538}
33539
33540// String returns the string representation
33541func (s InvalidQueryException) String() string {
33542	return awsutil.Prettify(s)
33543}
33544
33545// GoString returns the string representation
33546func (s InvalidQueryException) GoString() string {
33547	return s.String()
33548}
33549
33550func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
33551	return &InvalidQueryException{
33552		RespMetadata: v,
33553	}
33554}
33555
33556// Code returns the exception type name.
33557func (s *InvalidQueryException) Code() string {
33558	return "InvalidQueryException"
33559}
33560
33561// Message returns the exception's message.
33562func (s *InvalidQueryException) Message() string {
33563	if s.Message_ != nil {
33564		return *s.Message_
33565	}
33566	return ""
33567}
33568
33569// OrigErr always returns nil, satisfies awserr.Error interface.
33570func (s *InvalidQueryException) OrigErr() error {
33571	return nil
33572}
33573
33574func (s *InvalidQueryException) Error() string {
33575	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33576}
33577
33578// Status code returns the HTTP status code for the request's response error.
33579func (s *InvalidQueryException) StatusCode() int {
33580	return s.RespMetadata.StatusCode
33581}
33582
33583// RequestID returns the service's response RequestID for request.
33584func (s *InvalidQueryException) RequestID() string {
33585	return s.RespMetadata.RequestID
33586}
33587
33588// The request is not valid.
33589type InvalidRequestException struct {
33590	_            struct{}                  `type:"structure"`
33591	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33592
33593	// The message for the exception.
33594	Message_ *string `locationName:"message" type:"string"`
33595}
33596
33597// String returns the string representation
33598func (s InvalidRequestException) String() string {
33599	return awsutil.Prettify(s)
33600}
33601
33602// GoString returns the string representation
33603func (s InvalidRequestException) GoString() string {
33604	return s.String()
33605}
33606
33607func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
33608	return &InvalidRequestException{
33609		RespMetadata: v,
33610	}
33611}
33612
33613// Code returns the exception type name.
33614func (s *InvalidRequestException) Code() string {
33615	return "InvalidRequestException"
33616}
33617
33618// Message returns the exception's message.
33619func (s *InvalidRequestException) Message() string {
33620	if s.Message_ != nil {
33621		return *s.Message_
33622	}
33623	return ""
33624}
33625
33626// OrigErr always returns nil, satisfies awserr.Error interface.
33627func (s *InvalidRequestException) OrigErr() error {
33628	return nil
33629}
33630
33631func (s *InvalidRequestException) Error() string {
33632	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33633}
33634
33635// Status code returns the HTTP status code for the request's response error.
33636func (s *InvalidRequestException) StatusCode() int {
33637	return s.RespMetadata.StatusCode
33638}
33639
33640// RequestID returns the service's response RequestID for request.
33641func (s *InvalidRequestException) RequestID() string {
33642	return s.RespMetadata.RequestID
33643}
33644
33645// The response is invalid.
33646type InvalidResponseException struct {
33647	_            struct{}                  `type:"structure"`
33648	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33649
33650	// The message for the exception.
33651	Message_ *string `locationName:"message" type:"string"`
33652}
33653
33654// String returns the string representation
33655func (s InvalidResponseException) String() string {
33656	return awsutil.Prettify(s)
33657}
33658
33659// GoString returns the string representation
33660func (s InvalidResponseException) GoString() string {
33661	return s.String()
33662}
33663
33664func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
33665	return &InvalidResponseException{
33666		RespMetadata: v,
33667	}
33668}
33669
33670// Code returns the exception type name.
33671func (s *InvalidResponseException) Code() string {
33672	return "InvalidResponseException"
33673}
33674
33675// Message returns the exception's message.
33676func (s *InvalidResponseException) Message() string {
33677	if s.Message_ != nil {
33678		return *s.Message_
33679	}
33680	return ""
33681}
33682
33683// OrigErr always returns nil, satisfies awserr.Error interface.
33684func (s *InvalidResponseException) OrigErr() error {
33685	return nil
33686}
33687
33688func (s *InvalidResponseException) Error() string {
33689	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33690}
33691
33692// Status code returns the HTTP status code for the request's response error.
33693func (s *InvalidResponseException) StatusCode() int {
33694	return s.RespMetadata.StatusCode
33695}
33696
33697// RequestID returns the service's response RequestID for request.
33698func (s *InvalidResponseException) RequestID() string {
33699	return s.RespMetadata.RequestID
33700}
33701
33702// An attempt was made to change to an invalid state, for example by deleting
33703// a job or a job execution which is "IN_PROGRESS" without setting the force
33704// parameter.
33705type InvalidStateTransitionException struct {
33706	_            struct{}                  `type:"structure"`
33707	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
33708
33709	// The message for the exception.
33710	Message_ *string `locationName:"message" type:"string"`
33711}
33712
33713// String returns the string representation
33714func (s InvalidStateTransitionException) String() string {
33715	return awsutil.Prettify(s)
33716}
33717
33718// GoString returns the string representation
33719func (s InvalidStateTransitionException) GoString() string {
33720	return s.String()
33721}
33722
33723func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
33724	return &InvalidStateTransitionException{
33725		RespMetadata: v,
33726	}
33727}
33728
33729// Code returns the exception type name.
33730func (s *InvalidStateTransitionException) Code() string {
33731	return "InvalidStateTransitionException"
33732}
33733
33734// Message returns the exception's message.
33735func (s *InvalidStateTransitionException) Message() string {
33736	if s.Message_ != nil {
33737		return *s.Message_
33738	}
33739	return ""
33740}
33741
33742// OrigErr always returns nil, satisfies awserr.Error interface.
33743func (s *InvalidStateTransitionException) OrigErr() error {
33744	return nil
33745}
33746
33747func (s *InvalidStateTransitionException) Error() string {
33748	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
33749}
33750
33751// Status code returns the HTTP status code for the request's response error.
33752func (s *InvalidStateTransitionException) StatusCode() int {
33753	return s.RespMetadata.StatusCode
33754}
33755
33756// RequestID returns the service's response RequestID for request.
33757func (s *InvalidStateTransitionException) RequestID() string {
33758	return s.RespMetadata.RequestID
33759}
33760
33761// Sends message data to an AWS IoT Analytics channel.
33762type IotAnalyticsAction struct {
33763	_ struct{} `type:"structure"`
33764
33765	// (deprecated) The ARN of the IoT Analytics channel to which message data will
33766	// be sent.
33767	ChannelArn *string `locationName:"channelArn" type:"string"`
33768
33769	// The name of the IoT Analytics channel to which message data will be sent.
33770	ChannelName *string `locationName:"channelName" type:"string"`
33771
33772	// The ARN of the role which has a policy that grants IoT Analytics permission
33773	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
33774	RoleArn *string `locationName:"roleArn" type:"string"`
33775}
33776
33777// String returns the string representation
33778func (s IotAnalyticsAction) String() string {
33779	return awsutil.Prettify(s)
33780}
33781
33782// GoString returns the string representation
33783func (s IotAnalyticsAction) GoString() string {
33784	return s.String()
33785}
33786
33787// SetChannelArn sets the ChannelArn field's value.
33788func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
33789	s.ChannelArn = &v
33790	return s
33791}
33792
33793// SetChannelName sets the ChannelName field's value.
33794func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
33795	s.ChannelName = &v
33796	return s
33797}
33798
33799// SetRoleArn sets the RoleArn field's value.
33800func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
33801	s.RoleArn = &v
33802	return s
33803}
33804
33805// Sends an input to an AWS IoT Events detector.
33806type IotEventsAction struct {
33807	_ struct{} `type:"structure"`
33808
33809	// The name of the AWS IoT Events input.
33810	//
33811	// InputName is a required field
33812	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
33813
33814	// [Optional] Use this to ensure that only one input (message) with a given
33815	// messageId will be processed by an AWS IoT Events detector.
33816	MessageId *string `locationName:"messageId" type:"string"`
33817
33818	// The ARN of the role that grants AWS IoT permission to send an input to an
33819	// AWS IoT Events detector. ("Action":"iotevents:BatchPutMessage").
33820	//
33821	// RoleArn is a required field
33822	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
33823}
33824
33825// String returns the string representation
33826func (s IotEventsAction) String() string {
33827	return awsutil.Prettify(s)
33828}
33829
33830// GoString returns the string representation
33831func (s IotEventsAction) GoString() string {
33832	return s.String()
33833}
33834
33835// Validate inspects the fields of the type to determine if they are valid.
33836func (s *IotEventsAction) Validate() error {
33837	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
33838	if s.InputName == nil {
33839		invalidParams.Add(request.NewErrParamRequired("InputName"))
33840	}
33841	if s.InputName != nil && len(*s.InputName) < 1 {
33842		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
33843	}
33844	if s.RoleArn == nil {
33845		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
33846	}
33847
33848	if invalidParams.Len() > 0 {
33849		return invalidParams
33850	}
33851	return nil
33852}
33853
33854// SetInputName sets the InputName field's value.
33855func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
33856	s.InputName = &v
33857	return s
33858}
33859
33860// SetMessageId sets the MessageId field's value.
33861func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
33862	s.MessageId = &v
33863	return s
33864}
33865
33866// SetRoleArn sets the RoleArn field's value.
33867func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
33868	s.RoleArn = &v
33869	return s
33870}
33871
33872// Describes an action to send data from an MQTT message that triggered the
33873// rule to AWS IoT SiteWise asset properties.
33874type IotSiteWiseAction struct {
33875	_ struct{} `type:"structure"`
33876
33877	// A list of asset property value entries.
33878	//
33879	// PutAssetPropertyValueEntries is a required field
33880	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
33881
33882	// The ARN of the role that grants AWS IoT permission to send an asset property
33883	// value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
33884	// The trust policy can restrict access to specific asset hierarchy paths.
33885	//
33886	// RoleArn is a required field
33887	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
33888}
33889
33890// String returns the string representation
33891func (s IotSiteWiseAction) String() string {
33892	return awsutil.Prettify(s)
33893}
33894
33895// GoString returns the string representation
33896func (s IotSiteWiseAction) GoString() string {
33897	return s.String()
33898}
33899
33900// Validate inspects the fields of the type to determine if they are valid.
33901func (s *IotSiteWiseAction) Validate() error {
33902	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
33903	if s.PutAssetPropertyValueEntries == nil {
33904		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
33905	}
33906	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
33907		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
33908	}
33909	if s.RoleArn == nil {
33910		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
33911	}
33912	if s.PutAssetPropertyValueEntries != nil {
33913		for i, v := range s.PutAssetPropertyValueEntries {
33914			if v == nil {
33915				continue
33916			}
33917			if err := v.Validate(); err != nil {
33918				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
33919			}
33920		}
33921	}
33922
33923	if invalidParams.Len() > 0 {
33924		return invalidParams
33925	}
33926	return nil
33927}
33928
33929// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
33930func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
33931	s.PutAssetPropertyValueEntries = v
33932	return s
33933}
33934
33935// SetRoleArn sets the RoleArn field's value.
33936func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
33937	s.RoleArn = &v
33938	return s
33939}
33940
33941// The Job object contains details about a job.
33942type Job struct {
33943	_ struct{} `type:"structure"`
33944
33945	// Configuration for criteria to abort the job.
33946	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
33947
33948	// If the job was updated, describes the reason for the update.
33949	Comment *string `locationName:"comment" type:"string"`
33950
33951	// The time, in seconds since the epoch, when the job was completed.
33952	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
33953
33954	// The time, in seconds since the epoch, when the job was created.
33955	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
33956
33957	// A short text description of the job.
33958	Description *string `locationName:"description" type:"string"`
33959
33960	// Will be true if the job was canceled with the optional force parameter set
33961	// to true.
33962	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
33963
33964	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
33965	JobArn *string `locationName:"jobArn" type:"string"`
33966
33967	// Allows you to create a staged rollout of a job.
33968	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
33969
33970	// The unique identifier you assigned to this job when it was created.
33971	JobId *string `locationName:"jobId" min:"1" type:"string"`
33972
33973	// Details about the job process.
33974	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
33975
33976	// The time, in seconds since the epoch, when the job was last updated.
33977	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
33978
33979	// Configuration for pre-signed S3 URLs.
33980	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
33981
33982	// If the job was updated, provides the reason code for the update.
33983	ReasonCode *string `locationName:"reasonCode" type:"string"`
33984
33985	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
33986	// or COMPLETED.
33987	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
33988
33989	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
33990	// after all those things specified as targets have completed the job (SNAPSHOT).
33991	// If continuous, the job may also be run on a thing when a change is detected
33992	// in a target. For example, a job will run on a device when the thing representing
33993	// the device is added to a target group, even after the job was completed by
33994	// all things originally in the group.
33995	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
33996
33997	// A list of IoT things and thing groups to which the job should be sent.
33998	Targets []*string `locationName:"targets" min:"1" type:"list"`
33999
34000	// Specifies the amount of time each device has to finish its execution of the
34001	// job. A timer is started when the job execution status is set to IN_PROGRESS.
34002	// If the job execution status is not set to another terminal state before the
34003	// timer expires, it will be automatically set to TIMED_OUT.
34004	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
34005}
34006
34007// String returns the string representation
34008func (s Job) String() string {
34009	return awsutil.Prettify(s)
34010}
34011
34012// GoString returns the string representation
34013func (s Job) GoString() string {
34014	return s.String()
34015}
34016
34017// SetAbortConfig sets the AbortConfig field's value.
34018func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
34019	s.AbortConfig = v
34020	return s
34021}
34022
34023// SetComment sets the Comment field's value.
34024func (s *Job) SetComment(v string) *Job {
34025	s.Comment = &v
34026	return s
34027}
34028
34029// SetCompletedAt sets the CompletedAt field's value.
34030func (s *Job) SetCompletedAt(v time.Time) *Job {
34031	s.CompletedAt = &v
34032	return s
34033}
34034
34035// SetCreatedAt sets the CreatedAt field's value.
34036func (s *Job) SetCreatedAt(v time.Time) *Job {
34037	s.CreatedAt = &v
34038	return s
34039}
34040
34041// SetDescription sets the Description field's value.
34042func (s *Job) SetDescription(v string) *Job {
34043	s.Description = &v
34044	return s
34045}
34046
34047// SetForceCanceled sets the ForceCanceled field's value.
34048func (s *Job) SetForceCanceled(v bool) *Job {
34049	s.ForceCanceled = &v
34050	return s
34051}
34052
34053// SetJobArn sets the JobArn field's value.
34054func (s *Job) SetJobArn(v string) *Job {
34055	s.JobArn = &v
34056	return s
34057}
34058
34059// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
34060func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
34061	s.JobExecutionsRolloutConfig = v
34062	return s
34063}
34064
34065// SetJobId sets the JobId field's value.
34066func (s *Job) SetJobId(v string) *Job {
34067	s.JobId = &v
34068	return s
34069}
34070
34071// SetJobProcessDetails sets the JobProcessDetails field's value.
34072func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
34073	s.JobProcessDetails = v
34074	return s
34075}
34076
34077// SetLastUpdatedAt sets the LastUpdatedAt field's value.
34078func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
34079	s.LastUpdatedAt = &v
34080	return s
34081}
34082
34083// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
34084func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
34085	s.PresignedUrlConfig = v
34086	return s
34087}
34088
34089// SetReasonCode sets the ReasonCode field's value.
34090func (s *Job) SetReasonCode(v string) *Job {
34091	s.ReasonCode = &v
34092	return s
34093}
34094
34095// SetStatus sets the Status field's value.
34096func (s *Job) SetStatus(v string) *Job {
34097	s.Status = &v
34098	return s
34099}
34100
34101// SetTargetSelection sets the TargetSelection field's value.
34102func (s *Job) SetTargetSelection(v string) *Job {
34103	s.TargetSelection = &v
34104	return s
34105}
34106
34107// SetTargets sets the Targets field's value.
34108func (s *Job) SetTargets(v []*string) *Job {
34109	s.Targets = v
34110	return s
34111}
34112
34113// SetTimeoutConfig sets the TimeoutConfig field's value.
34114func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
34115	s.TimeoutConfig = v
34116	return s
34117}
34118
34119// The job execution object represents the execution of a job on a particular
34120// device.
34121type JobExecution struct {
34122	_ struct{} `type:"structure"`
34123
34124	// The estimated number of seconds that remain before the job execution status
34125	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
34126	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
34127	// can occur up to 60 seconds later than the estimated duration. This value
34128	// will not be included if the job execution has reached a terminal status.
34129	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
34130
34131	// A string (consisting of the digits "0" through "9") which identifies this
34132	// particular job execution on this particular device. It can be used in commands
34133	// which return or update job execution information.
34134	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
34135
34136	// Will be true if the job execution was canceled with the optional force parameter
34137	// set to true.
34138	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
34139
34140	// The unique identifier you assigned to the job when it was created.
34141	JobId *string `locationName:"jobId" min:"1" type:"string"`
34142
34143	// The time, in seconds since the epoch, when the job execution was last updated.
34144	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
34145
34146	// The time, in seconds since the epoch, when the job execution was queued.
34147	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
34148
34149	// The time, in seconds since the epoch, when the job execution started.
34150	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
34151
34152	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
34153	// TIMED_OUT, CANCELED, or REJECTED).
34154	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
34155
34156	// A collection of name/value pairs that describe the status of the job execution.
34157	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
34158
34159	// The ARN of the thing on which the job execution is running.
34160	ThingArn *string `locationName:"thingArn" type:"string"`
34161
34162	// The version of the job execution. Job execution versions are incremented
34163	// each time they are updated by a device.
34164	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
34165}
34166
34167// String returns the string representation
34168func (s JobExecution) String() string {
34169	return awsutil.Prettify(s)
34170}
34171
34172// GoString returns the string representation
34173func (s JobExecution) GoString() string {
34174	return s.String()
34175}
34176
34177// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
34178func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
34179	s.ApproximateSecondsBeforeTimedOut = &v
34180	return s
34181}
34182
34183// SetExecutionNumber sets the ExecutionNumber field's value.
34184func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
34185	s.ExecutionNumber = &v
34186	return s
34187}
34188
34189// SetForceCanceled sets the ForceCanceled field's value.
34190func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
34191	s.ForceCanceled = &v
34192	return s
34193}
34194
34195// SetJobId sets the JobId field's value.
34196func (s *JobExecution) SetJobId(v string) *JobExecution {
34197	s.JobId = &v
34198	return s
34199}
34200
34201// SetLastUpdatedAt sets the LastUpdatedAt field's value.
34202func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
34203	s.LastUpdatedAt = &v
34204	return s
34205}
34206
34207// SetQueuedAt sets the QueuedAt field's value.
34208func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
34209	s.QueuedAt = &v
34210	return s
34211}
34212
34213// SetStartedAt sets the StartedAt field's value.
34214func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
34215	s.StartedAt = &v
34216	return s
34217}
34218
34219// SetStatus sets the Status field's value.
34220func (s *JobExecution) SetStatus(v string) *JobExecution {
34221	s.Status = &v
34222	return s
34223}
34224
34225// SetStatusDetails sets the StatusDetails field's value.
34226func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
34227	s.StatusDetails = v
34228	return s
34229}
34230
34231// SetThingArn sets the ThingArn field's value.
34232func (s *JobExecution) SetThingArn(v string) *JobExecution {
34233	s.ThingArn = &v
34234	return s
34235}
34236
34237// SetVersionNumber sets the VersionNumber field's value.
34238func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
34239	s.VersionNumber = &v
34240	return s
34241}
34242
34243// Details of the job execution status.
34244type JobExecutionStatusDetails struct {
34245	_ struct{} `type:"structure"`
34246
34247	// The job execution status.
34248	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
34249}
34250
34251// String returns the string representation
34252func (s JobExecutionStatusDetails) String() string {
34253	return awsutil.Prettify(s)
34254}
34255
34256// GoString returns the string representation
34257func (s JobExecutionStatusDetails) GoString() string {
34258	return s.String()
34259}
34260
34261// SetDetailsMap sets the DetailsMap field's value.
34262func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
34263	s.DetailsMap = v
34264	return s
34265}
34266
34267// The job execution summary.
34268type JobExecutionSummary struct {
34269	_ struct{} `type:"structure"`
34270
34271	// A string (consisting of the digits "0" through "9") which identifies this
34272	// particular job execution on this particular device. It can be used later
34273	// in commands which return or update job execution information.
34274	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
34275
34276	// The time, in seconds since the epoch, when the job execution was last updated.
34277	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
34278
34279	// The time, in seconds since the epoch, when the job execution was queued.
34280	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
34281
34282	// The time, in seconds since the epoch, when the job execution started.
34283	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
34284
34285	// The status of the job execution.
34286	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
34287}
34288
34289// String returns the string representation
34290func (s JobExecutionSummary) String() string {
34291	return awsutil.Prettify(s)
34292}
34293
34294// GoString returns the string representation
34295func (s JobExecutionSummary) GoString() string {
34296	return s.String()
34297}
34298
34299// SetExecutionNumber sets the ExecutionNumber field's value.
34300func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
34301	s.ExecutionNumber = &v
34302	return s
34303}
34304
34305// SetLastUpdatedAt sets the LastUpdatedAt field's value.
34306func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
34307	s.LastUpdatedAt = &v
34308	return s
34309}
34310
34311// SetQueuedAt sets the QueuedAt field's value.
34312func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
34313	s.QueuedAt = &v
34314	return s
34315}
34316
34317// SetStartedAt sets the StartedAt field's value.
34318func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
34319	s.StartedAt = &v
34320	return s
34321}
34322
34323// SetStatus sets the Status field's value.
34324func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
34325	s.Status = &v
34326	return s
34327}
34328
34329// Contains a summary of information about job executions for a specific job.
34330type JobExecutionSummaryForJob struct {
34331	_ struct{} `type:"structure"`
34332
34333	// Contains a subset of information about a job execution.
34334	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
34335
34336	// The ARN of the thing on which the job execution is running.
34337	ThingArn *string `locationName:"thingArn" type:"string"`
34338}
34339
34340// String returns the string representation
34341func (s JobExecutionSummaryForJob) String() string {
34342	return awsutil.Prettify(s)
34343}
34344
34345// GoString returns the string representation
34346func (s JobExecutionSummaryForJob) GoString() string {
34347	return s.String()
34348}
34349
34350// SetJobExecutionSummary sets the JobExecutionSummary field's value.
34351func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
34352	s.JobExecutionSummary = v
34353	return s
34354}
34355
34356// SetThingArn sets the ThingArn field's value.
34357func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
34358	s.ThingArn = &v
34359	return s
34360}
34361
34362// The job execution summary for a thing.
34363type JobExecutionSummaryForThing struct {
34364	_ struct{} `type:"structure"`
34365
34366	// Contains a subset of information about a job execution.
34367	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
34368
34369	// The unique identifier you assigned to this job when it was created.
34370	JobId *string `locationName:"jobId" min:"1" type:"string"`
34371}
34372
34373// String returns the string representation
34374func (s JobExecutionSummaryForThing) String() string {
34375	return awsutil.Prettify(s)
34376}
34377
34378// GoString returns the string representation
34379func (s JobExecutionSummaryForThing) GoString() string {
34380	return s.String()
34381}
34382
34383// SetJobExecutionSummary sets the JobExecutionSummary field's value.
34384func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
34385	s.JobExecutionSummary = v
34386	return s
34387}
34388
34389// SetJobId sets the JobId field's value.
34390func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
34391	s.JobId = &v
34392	return s
34393}
34394
34395// Allows you to create a staged rollout of a job.
34396type JobExecutionsRolloutConfig struct {
34397	_ struct{} `type:"structure"`
34398
34399	// The rate of increase for a job rollout. This parameter allows you to define
34400	// an exponential rate for a job rollout.
34401	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
34402
34403	// The maximum number of things that will be notified of a pending job, per
34404	// minute. This parameter allows you to create a staged rollout.
34405	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
34406}
34407
34408// String returns the string representation
34409func (s JobExecutionsRolloutConfig) String() string {
34410	return awsutil.Prettify(s)
34411}
34412
34413// GoString returns the string representation
34414func (s JobExecutionsRolloutConfig) GoString() string {
34415	return s.String()
34416}
34417
34418// Validate inspects the fields of the type to determine if they are valid.
34419func (s *JobExecutionsRolloutConfig) Validate() error {
34420	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
34421	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
34422		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
34423	}
34424	if s.ExponentialRate != nil {
34425		if err := s.ExponentialRate.Validate(); err != nil {
34426			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
34427		}
34428	}
34429
34430	if invalidParams.Len() > 0 {
34431		return invalidParams
34432	}
34433	return nil
34434}
34435
34436// SetExponentialRate sets the ExponentialRate field's value.
34437func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
34438	s.ExponentialRate = v
34439	return s
34440}
34441
34442// SetMaximumPerMinute sets the MaximumPerMinute field's value.
34443func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
34444	s.MaximumPerMinute = &v
34445	return s
34446}
34447
34448// The job process details.
34449type JobProcessDetails struct {
34450	_ struct{} `type:"structure"`
34451
34452	// The number of things that cancelled the job.
34453	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
34454
34455	// The number of things that failed executing the job.
34456	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
34457
34458	// The number of things currently executing the job.
34459	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
34460
34461	// The number of things that are awaiting execution of the job.
34462	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
34463
34464	// The number of things that rejected the job.
34465	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
34466
34467	// The number of things that are no longer scheduled to execute the job because
34468	// they have been deleted or have been removed from the group that was a target
34469	// of the job.
34470	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
34471
34472	// The number of things which successfully completed the job.
34473	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
34474
34475	// The number of things whose job execution status is TIMED_OUT.
34476	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
34477
34478	// The target devices to which the job execution is being rolled out. This value
34479	// will be null after the job execution has finished rolling out to all the
34480	// target devices.
34481	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
34482}
34483
34484// String returns the string representation
34485func (s JobProcessDetails) String() string {
34486	return awsutil.Prettify(s)
34487}
34488
34489// GoString returns the string representation
34490func (s JobProcessDetails) GoString() string {
34491	return s.String()
34492}
34493
34494// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
34495func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
34496	s.NumberOfCanceledThings = &v
34497	return s
34498}
34499
34500// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
34501func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
34502	s.NumberOfFailedThings = &v
34503	return s
34504}
34505
34506// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
34507func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
34508	s.NumberOfInProgressThings = &v
34509	return s
34510}
34511
34512// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
34513func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
34514	s.NumberOfQueuedThings = &v
34515	return s
34516}
34517
34518// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
34519func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
34520	s.NumberOfRejectedThings = &v
34521	return s
34522}
34523
34524// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
34525func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
34526	s.NumberOfRemovedThings = &v
34527	return s
34528}
34529
34530// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
34531func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
34532	s.NumberOfSucceededThings = &v
34533	return s
34534}
34535
34536// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
34537func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
34538	s.NumberOfTimedOutThings = &v
34539	return s
34540}
34541
34542// SetProcessingTargets sets the ProcessingTargets field's value.
34543func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
34544	s.ProcessingTargets = v
34545	return s
34546}
34547
34548// The job summary.
34549type JobSummary struct {
34550	_ struct{} `type:"structure"`
34551
34552	// The time, in seconds since the epoch, when the job completed.
34553	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
34554
34555	// The time, in seconds since the epoch, when the job was created.
34556	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
34557
34558	// The job ARN.
34559	JobArn *string `locationName:"jobArn" type:"string"`
34560
34561	// The unique identifier you assigned to this job when it was created.
34562	JobId *string `locationName:"jobId" min:"1" type:"string"`
34563
34564	// The time, in seconds since the epoch, when the job was last updated.
34565	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
34566
34567	// The job summary status.
34568	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
34569
34570	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
34571	// after all those things specified as targets have completed the job (SNAPSHOT).
34572	// If continuous, the job may also be run on a thing when a change is detected
34573	// in a target. For example, a job will run on a thing when the thing is added
34574	// to a target group, even after the job was completed by all things originally
34575	// in the group.
34576	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
34577
34578	// The ID of the thing group.
34579	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
34580}
34581
34582// String returns the string representation
34583func (s JobSummary) String() string {
34584	return awsutil.Prettify(s)
34585}
34586
34587// GoString returns the string representation
34588func (s JobSummary) GoString() string {
34589	return s.String()
34590}
34591
34592// SetCompletedAt sets the CompletedAt field's value.
34593func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
34594	s.CompletedAt = &v
34595	return s
34596}
34597
34598// SetCreatedAt sets the CreatedAt field's value.
34599func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
34600	s.CreatedAt = &v
34601	return s
34602}
34603
34604// SetJobArn sets the JobArn field's value.
34605func (s *JobSummary) SetJobArn(v string) *JobSummary {
34606	s.JobArn = &v
34607	return s
34608}
34609
34610// SetJobId sets the JobId field's value.
34611func (s *JobSummary) SetJobId(v string) *JobSummary {
34612	s.JobId = &v
34613	return s
34614}
34615
34616// SetLastUpdatedAt sets the LastUpdatedAt field's value.
34617func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
34618	s.LastUpdatedAt = &v
34619	return s
34620}
34621
34622// SetStatus sets the Status field's value.
34623func (s *JobSummary) SetStatus(v string) *JobSummary {
34624	s.Status = &v
34625	return s
34626}
34627
34628// SetTargetSelection sets the TargetSelection field's value.
34629func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
34630	s.TargetSelection = &v
34631	return s
34632}
34633
34634// SetThingGroupId sets the ThingGroupId field's value.
34635func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
34636	s.ThingGroupId = &v
34637	return s
34638}
34639
34640// Describes a key pair.
34641type KeyPair struct {
34642	_ struct{} `type:"structure"`
34643
34644	// The private key.
34645	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
34646
34647	// The public key.
34648	PublicKey *string `min:"1" type:"string"`
34649}
34650
34651// String returns the string representation
34652func (s KeyPair) String() string {
34653	return awsutil.Prettify(s)
34654}
34655
34656// GoString returns the string representation
34657func (s KeyPair) GoString() string {
34658	return s.String()
34659}
34660
34661// SetPrivateKey sets the PrivateKey field's value.
34662func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
34663	s.PrivateKey = &v
34664	return s
34665}
34666
34667// SetPublicKey sets the PublicKey field's value.
34668func (s *KeyPair) SetPublicKey(v string) *KeyPair {
34669	s.PublicKey = &v
34670	return s
34671}
34672
34673// Describes an action to write data to an Amazon Kinesis stream.
34674type KinesisAction struct {
34675	_ struct{} `type:"structure"`
34676
34677	// The partition key.
34678	PartitionKey *string `locationName:"partitionKey" type:"string"`
34679
34680	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
34681	//
34682	// RoleArn is a required field
34683	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
34684
34685	// The name of the Amazon Kinesis stream.
34686	//
34687	// StreamName is a required field
34688	StreamName *string `locationName:"streamName" type:"string" required:"true"`
34689}
34690
34691// String returns the string representation
34692func (s KinesisAction) String() string {
34693	return awsutil.Prettify(s)
34694}
34695
34696// GoString returns the string representation
34697func (s KinesisAction) GoString() string {
34698	return s.String()
34699}
34700
34701// Validate inspects the fields of the type to determine if they are valid.
34702func (s *KinesisAction) Validate() error {
34703	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
34704	if s.RoleArn == nil {
34705		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
34706	}
34707	if s.StreamName == nil {
34708		invalidParams.Add(request.NewErrParamRequired("StreamName"))
34709	}
34710
34711	if invalidParams.Len() > 0 {
34712		return invalidParams
34713	}
34714	return nil
34715}
34716
34717// SetPartitionKey sets the PartitionKey field's value.
34718func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
34719	s.PartitionKey = &v
34720	return s
34721}
34722
34723// SetRoleArn sets the RoleArn field's value.
34724func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
34725	s.RoleArn = &v
34726	return s
34727}
34728
34729// SetStreamName sets the StreamName field's value.
34730func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
34731	s.StreamName = &v
34732	return s
34733}
34734
34735// Describes an action to invoke a Lambda function.
34736type LambdaAction struct {
34737	_ struct{} `type:"structure"`
34738
34739	// The ARN of the Lambda function.
34740	//
34741	// FunctionArn is a required field
34742	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
34743}
34744
34745// String returns the string representation
34746func (s LambdaAction) String() string {
34747	return awsutil.Prettify(s)
34748}
34749
34750// GoString returns the string representation
34751func (s LambdaAction) GoString() string {
34752	return s.String()
34753}
34754
34755// Validate inspects the fields of the type to determine if they are valid.
34756func (s *LambdaAction) Validate() error {
34757	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
34758	if s.FunctionArn == nil {
34759		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
34760	}
34761
34762	if invalidParams.Len() > 0 {
34763		return invalidParams
34764	}
34765	return nil
34766}
34767
34768// SetFunctionArn sets the FunctionArn field's value.
34769func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
34770	s.FunctionArn = &v
34771	return s
34772}
34773
34774// A limit has been exceeded.
34775type LimitExceededException struct {
34776	_            struct{}                  `type:"structure"`
34777	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
34778
34779	// The message for the exception.
34780	Message_ *string `locationName:"message" type:"string"`
34781}
34782
34783// String returns the string representation
34784func (s LimitExceededException) String() string {
34785	return awsutil.Prettify(s)
34786}
34787
34788// GoString returns the string representation
34789func (s LimitExceededException) GoString() string {
34790	return s.String()
34791}
34792
34793func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
34794	return &LimitExceededException{
34795		RespMetadata: v,
34796	}
34797}
34798
34799// Code returns the exception type name.
34800func (s *LimitExceededException) Code() string {
34801	return "LimitExceededException"
34802}
34803
34804// Message returns the exception's message.
34805func (s *LimitExceededException) Message() string {
34806	if s.Message_ != nil {
34807		return *s.Message_
34808	}
34809	return ""
34810}
34811
34812// OrigErr always returns nil, satisfies awserr.Error interface.
34813func (s *LimitExceededException) OrigErr() error {
34814	return nil
34815}
34816
34817func (s *LimitExceededException) Error() string {
34818	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
34819}
34820
34821// Status code returns the HTTP status code for the request's response error.
34822func (s *LimitExceededException) StatusCode() int {
34823	return s.RespMetadata.StatusCode
34824}
34825
34826// RequestID returns the service's response RequestID for request.
34827func (s *LimitExceededException) RequestID() string {
34828	return s.RespMetadata.RequestID
34829}
34830
34831type ListActiveViolationsInput struct {
34832	_ struct{} `type:"structure"`
34833
34834	// The maximum number of results to return at one time.
34835	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
34836
34837	// The token for the next set of results.
34838	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
34839
34840	// The name of the Device Defender security profile for which violations are
34841	// listed.
34842	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
34843
34844	// The name of the thing whose active violations are listed.
34845	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
34846}
34847
34848// String returns the string representation
34849func (s ListActiveViolationsInput) String() string {
34850	return awsutil.Prettify(s)
34851}
34852
34853// GoString returns the string representation
34854func (s ListActiveViolationsInput) GoString() string {
34855	return s.String()
34856}
34857
34858// Validate inspects the fields of the type to determine if they are valid.
34859func (s *ListActiveViolationsInput) Validate() error {
34860	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
34861	if s.MaxResults != nil && *s.MaxResults < 1 {
34862		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
34863	}
34864	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
34865		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
34866	}
34867	if s.ThingName != nil && len(*s.ThingName) < 1 {
34868		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
34869	}
34870
34871	if invalidParams.Len() > 0 {
34872		return invalidParams
34873	}
34874	return nil
34875}
34876
34877// SetMaxResults sets the MaxResults field's value.
34878func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
34879	s.MaxResults = &v
34880	return s
34881}
34882
34883// SetNextToken sets the NextToken field's value.
34884func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
34885	s.NextToken = &v
34886	return s
34887}
34888
34889// SetSecurityProfileName sets the SecurityProfileName field's value.
34890func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
34891	s.SecurityProfileName = &v
34892	return s
34893}
34894
34895// SetThingName sets the ThingName field's value.
34896func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
34897	s.ThingName = &v
34898	return s
34899}
34900
34901type ListActiveViolationsOutput struct {
34902	_ struct{} `type:"structure"`
34903
34904	// The list of active violations.
34905	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
34906
34907	// A token that can be used to retrieve the next set of results, or null if
34908	// there are no additional results.
34909	NextToken *string `locationName:"nextToken" type:"string"`
34910}
34911
34912// String returns the string representation
34913func (s ListActiveViolationsOutput) String() string {
34914	return awsutil.Prettify(s)
34915}
34916
34917// GoString returns the string representation
34918func (s ListActiveViolationsOutput) GoString() string {
34919	return s.String()
34920}
34921
34922// SetActiveViolations sets the ActiveViolations field's value.
34923func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
34924	s.ActiveViolations = v
34925	return s
34926}
34927
34928// SetNextToken sets the NextToken field's value.
34929func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
34930	s.NextToken = &v
34931	return s
34932}
34933
34934type ListAttachedPoliciesInput struct {
34935	_ struct{} `type:"structure"`
34936
34937	// The token to retrieve the next set of results.
34938	Marker *string `location:"querystring" locationName:"marker" type:"string"`
34939
34940	// The maximum number of results to be returned per request.
34941	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
34942
34943	// When true, recursively list attached policies.
34944	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
34945
34946	// The group or principal for which the policies will be listed.
34947	//
34948	// Target is a required field
34949	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
34950}
34951
34952// String returns the string representation
34953func (s ListAttachedPoliciesInput) String() string {
34954	return awsutil.Prettify(s)
34955}
34956
34957// GoString returns the string representation
34958func (s ListAttachedPoliciesInput) GoString() string {
34959	return s.String()
34960}
34961
34962// Validate inspects the fields of the type to determine if they are valid.
34963func (s *ListAttachedPoliciesInput) Validate() error {
34964	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
34965	if s.PageSize != nil && *s.PageSize < 1 {
34966		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
34967	}
34968	if s.Target == nil {
34969		invalidParams.Add(request.NewErrParamRequired("Target"))
34970	}
34971	if s.Target != nil && len(*s.Target) < 1 {
34972		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
34973	}
34974
34975	if invalidParams.Len() > 0 {
34976		return invalidParams
34977	}
34978	return nil
34979}
34980
34981// SetMarker sets the Marker field's value.
34982func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
34983	s.Marker = &v
34984	return s
34985}
34986
34987// SetPageSize sets the PageSize field's value.
34988func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
34989	s.PageSize = &v
34990	return s
34991}
34992
34993// SetRecursive sets the Recursive field's value.
34994func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
34995	s.Recursive = &v
34996	return s
34997}
34998
34999// SetTarget sets the Target field's value.
35000func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
35001	s.Target = &v
35002	return s
35003}
35004
35005type ListAttachedPoliciesOutput struct {
35006	_ struct{} `type:"structure"`
35007
35008	// The token to retrieve the next set of results, or ``null`` if there are no
35009	// more results.
35010	NextMarker *string `locationName:"nextMarker" type:"string"`
35011
35012	// The policies.
35013	Policies []*Policy `locationName:"policies" type:"list"`
35014}
35015
35016// String returns the string representation
35017func (s ListAttachedPoliciesOutput) String() string {
35018	return awsutil.Prettify(s)
35019}
35020
35021// GoString returns the string representation
35022func (s ListAttachedPoliciesOutput) GoString() string {
35023	return s.String()
35024}
35025
35026// SetNextMarker sets the NextMarker field's value.
35027func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
35028	s.NextMarker = &v
35029	return s
35030}
35031
35032// SetPolicies sets the Policies field's value.
35033func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
35034	s.Policies = v
35035	return s
35036}
35037
35038type ListAuditFindingsInput struct {
35039	_ struct{} `type:"structure"`
35040
35041	// A filter to limit results to the findings for the specified audit check.
35042	CheckName *string `locationName:"checkName" type:"string"`
35043
35044	// A filter to limit results to those found before the specified time. You must
35045	// specify either the startTime and endTime or the taskId, but not both.
35046	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
35047
35048	// The maximum number of results to return at one time. The default is 25.
35049	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
35050
35051	// The token for the next set of results.
35052	NextToken *string `locationName:"nextToken" type:"string"`
35053
35054	// Information identifying the noncompliant resource.
35055	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
35056
35057	// A filter to limit results to those found after the specified time. You must
35058	// specify either the startTime and endTime or the taskId, but not both.
35059	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
35060
35061	// A filter to limit results to the audit with the specified ID. You must specify
35062	// either the taskId or the startTime and endTime, but not both.
35063	TaskId *string `locationName:"taskId" min:"1" type:"string"`
35064}
35065
35066// String returns the string representation
35067func (s ListAuditFindingsInput) String() string {
35068	return awsutil.Prettify(s)
35069}
35070
35071// GoString returns the string representation
35072func (s ListAuditFindingsInput) GoString() string {
35073	return s.String()
35074}
35075
35076// Validate inspects the fields of the type to determine if they are valid.
35077func (s *ListAuditFindingsInput) Validate() error {
35078	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
35079	if s.MaxResults != nil && *s.MaxResults < 1 {
35080		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
35081	}
35082	if s.TaskId != nil && len(*s.TaskId) < 1 {
35083		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
35084	}
35085	if s.ResourceIdentifier != nil {
35086		if err := s.ResourceIdentifier.Validate(); err != nil {
35087			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
35088		}
35089	}
35090
35091	if invalidParams.Len() > 0 {
35092		return invalidParams
35093	}
35094	return nil
35095}
35096
35097// SetCheckName sets the CheckName field's value.
35098func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
35099	s.CheckName = &v
35100	return s
35101}
35102
35103// SetEndTime sets the EndTime field's value.
35104func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
35105	s.EndTime = &v
35106	return s
35107}
35108
35109// SetMaxResults sets the MaxResults field's value.
35110func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
35111	s.MaxResults = &v
35112	return s
35113}
35114
35115// SetNextToken sets the NextToken field's value.
35116func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
35117	s.NextToken = &v
35118	return s
35119}
35120
35121// SetResourceIdentifier sets the ResourceIdentifier field's value.
35122func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
35123	s.ResourceIdentifier = v
35124	return s
35125}
35126
35127// SetStartTime sets the StartTime field's value.
35128func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
35129	s.StartTime = &v
35130	return s
35131}
35132
35133// SetTaskId sets the TaskId field's value.
35134func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
35135	s.TaskId = &v
35136	return s
35137}
35138
35139type ListAuditFindingsOutput struct {
35140	_ struct{} `type:"structure"`
35141
35142	// The findings (results) of the audit.
35143	Findings []*AuditFinding `locationName:"findings" type:"list"`
35144
35145	// A token that can be used to retrieve the next set of results, or null if
35146	// there are no additional results.
35147	NextToken *string `locationName:"nextToken" type:"string"`
35148}
35149
35150// String returns the string representation
35151func (s ListAuditFindingsOutput) String() string {
35152	return awsutil.Prettify(s)
35153}
35154
35155// GoString returns the string representation
35156func (s ListAuditFindingsOutput) GoString() string {
35157	return s.String()
35158}
35159
35160// SetFindings sets the Findings field's value.
35161func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
35162	s.Findings = v
35163	return s
35164}
35165
35166// SetNextToken sets the NextToken field's value.
35167func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
35168	s.NextToken = &v
35169	return s
35170}
35171
35172type ListAuditMitigationActionsExecutionsInput struct {
35173	_ struct{} `type:"structure"`
35174
35175	// Specify this filter to limit results to those with a specific status.
35176	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
35177
35178	// Specify this filter to limit results to those that were applied to a specific
35179	// audit finding.
35180	//
35181	// FindingId is a required field
35182	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
35183
35184	// The maximum number of results to return at one time. The default is 25.
35185	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
35186
35187	// The token for the next set of results.
35188	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
35189
35190	// Specify this filter to limit results to actions for a specific audit mitigation
35191	// actions task.
35192	//
35193	// TaskId is a required field
35194	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
35195}
35196
35197// String returns the string representation
35198func (s ListAuditMitigationActionsExecutionsInput) String() string {
35199	return awsutil.Prettify(s)
35200}
35201
35202// GoString returns the string representation
35203func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
35204	return s.String()
35205}
35206
35207// Validate inspects the fields of the type to determine if they are valid.
35208func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
35209	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
35210	if s.FindingId == nil {
35211		invalidParams.Add(request.NewErrParamRequired("FindingId"))
35212	}
35213	if s.FindingId != nil && len(*s.FindingId) < 1 {
35214		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
35215	}
35216	if s.MaxResults != nil && *s.MaxResults < 1 {
35217		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
35218	}
35219	if s.TaskId == nil {
35220		invalidParams.Add(request.NewErrParamRequired("TaskId"))
35221	}
35222	if s.TaskId != nil && len(*s.TaskId) < 1 {
35223		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
35224	}
35225
35226	if invalidParams.Len() > 0 {
35227		return invalidParams
35228	}
35229	return nil
35230}
35231
35232// SetActionStatus sets the ActionStatus field's value.
35233func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
35234	s.ActionStatus = &v
35235	return s
35236}
35237
35238// SetFindingId sets the FindingId field's value.
35239func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
35240	s.FindingId = &v
35241	return s
35242}
35243
35244// SetMaxResults sets the MaxResults field's value.
35245func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
35246	s.MaxResults = &v
35247	return s
35248}
35249
35250// SetNextToken sets the NextToken field's value.
35251func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
35252	s.NextToken = &v
35253	return s
35254}
35255
35256// SetTaskId sets the TaskId field's value.
35257func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
35258	s.TaskId = &v
35259	return s
35260}
35261
35262type ListAuditMitigationActionsExecutionsOutput struct {
35263	_ struct{} `type:"structure"`
35264
35265	// A set of task execution results based on the input parameters. Details include
35266	// the mitigation action applied, start time, and task status.
35267	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
35268
35269	// The token for the next set of results.
35270	NextToken *string `locationName:"nextToken" type:"string"`
35271}
35272
35273// String returns the string representation
35274func (s ListAuditMitigationActionsExecutionsOutput) String() string {
35275	return awsutil.Prettify(s)
35276}
35277
35278// GoString returns the string representation
35279func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
35280	return s.String()
35281}
35282
35283// SetActionsExecutions sets the ActionsExecutions field's value.
35284func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
35285	s.ActionsExecutions = v
35286	return s
35287}
35288
35289// SetNextToken sets the NextToken field's value.
35290func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
35291	s.NextToken = &v
35292	return s
35293}
35294
35295type ListAuditMitigationActionsTasksInput struct {
35296	_ struct{} `type:"structure"`
35297
35298	// Specify this filter to limit results to tasks that were applied to results
35299	// for a specific audit.
35300	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
35301
35302	// Specify this filter to limit results to tasks that were completed or canceled
35303	// on or before a specific date and time.
35304	//
35305	// EndTime is a required field
35306	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
35307
35308	// Specify this filter to limit results to tasks that were applied to a specific
35309	// audit finding.
35310	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
35311
35312	// The maximum number of results to return at one time. The default is 25.
35313	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
35314
35315	// The token for the next set of results.
35316	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
35317
35318	// Specify this filter to limit results to tasks that began on or after a specific
35319	// date and time.
35320	//
35321	// StartTime is a required field
35322	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
35323
35324	// Specify this filter to limit results to tasks that are in a specific state.
35325	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
35326}
35327
35328// String returns the string representation
35329func (s ListAuditMitigationActionsTasksInput) String() string {
35330	return awsutil.Prettify(s)
35331}
35332
35333// GoString returns the string representation
35334func (s ListAuditMitigationActionsTasksInput) GoString() string {
35335	return s.String()
35336}
35337
35338// Validate inspects the fields of the type to determine if they are valid.
35339func (s *ListAuditMitigationActionsTasksInput) Validate() error {
35340	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
35341	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
35342		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
35343	}
35344	if s.EndTime == nil {
35345		invalidParams.Add(request.NewErrParamRequired("EndTime"))
35346	}
35347	if s.FindingId != nil && len(*s.FindingId) < 1 {
35348		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
35349	}
35350	if s.MaxResults != nil && *s.MaxResults < 1 {
35351		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
35352	}
35353	if s.StartTime == nil {
35354		invalidParams.Add(request.NewErrParamRequired("StartTime"))
35355	}
35356
35357	if invalidParams.Len() > 0 {
35358		return invalidParams
35359	}
35360	return nil
35361}
35362
35363// SetAuditTaskId sets the AuditTaskId field's value.
35364func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
35365	s.AuditTaskId = &v
35366	return s
35367}
35368
35369// SetEndTime sets the EndTime field's value.
35370func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
35371	s.EndTime = &v
35372	return s
35373}
35374
35375// SetFindingId sets the FindingId field's value.
35376func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
35377	s.FindingId = &v
35378	return s
35379}
35380
35381// SetMaxResults sets the MaxResults field's value.
35382func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
35383	s.MaxResults = &v
35384	return s
35385}
35386
35387// SetNextToken sets the NextToken field's value.
35388func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
35389	s.NextToken = &v
35390	return s
35391}
35392
35393// SetStartTime sets the StartTime field's value.
35394func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
35395	s.StartTime = &v
35396	return s
35397}
35398
35399// SetTaskStatus sets the TaskStatus field's value.
35400func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
35401	s.TaskStatus = &v
35402	return s
35403}
35404
35405type ListAuditMitigationActionsTasksOutput struct {
35406	_ struct{} `type:"structure"`
35407
35408	// The token for the next set of results.
35409	NextToken *string `locationName:"nextToken" type:"string"`
35410
35411	// The collection of audit mitigation tasks that matched the filter criteria.
35412	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
35413}
35414
35415// String returns the string representation
35416func (s ListAuditMitigationActionsTasksOutput) String() string {
35417	return awsutil.Prettify(s)
35418}
35419
35420// GoString returns the string representation
35421func (s ListAuditMitigationActionsTasksOutput) GoString() string {
35422	return s.String()
35423}
35424
35425// SetNextToken sets the NextToken field's value.
35426func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
35427	s.NextToken = &v
35428	return s
35429}
35430
35431// SetTasks sets the Tasks field's value.
35432func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
35433	s.Tasks = v
35434	return s
35435}
35436
35437type ListAuditTasksInput struct {
35438	_ struct{} `type:"structure"`
35439
35440	// The end of the time period.
35441	//
35442	// EndTime is a required field
35443	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
35444
35445	// The maximum number of results to return at one time. The default is 25.
35446	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
35447
35448	// The token for the next set of results.
35449	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
35450
35451	// The beginning of the time period. Audit information is retained for a limited
35452	// time (180 days). Requesting a start time prior to what is retained results
35453	// in an "InvalidRequestException".
35454	//
35455	// StartTime is a required field
35456	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
35457
35458	// A filter to limit the output to audits with the specified completion status:
35459	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
35460	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
35461
35462	// A filter to limit the output to the specified type of audit: can be one of
35463	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
35464	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
35465}
35466
35467// String returns the string representation
35468func (s ListAuditTasksInput) String() string {
35469	return awsutil.Prettify(s)
35470}
35471
35472// GoString returns the string representation
35473func (s ListAuditTasksInput) GoString() string {
35474	return s.String()
35475}
35476
35477// Validate inspects the fields of the type to determine if they are valid.
35478func (s *ListAuditTasksInput) Validate() error {
35479	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
35480	if s.EndTime == nil {
35481		invalidParams.Add(request.NewErrParamRequired("EndTime"))
35482	}
35483	if s.MaxResults != nil && *s.MaxResults < 1 {
35484		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
35485	}
35486	if s.StartTime == nil {
35487		invalidParams.Add(request.NewErrParamRequired("StartTime"))
35488	}
35489
35490	if invalidParams.Len() > 0 {
35491		return invalidParams
35492	}
35493	return nil
35494}
35495
35496// SetEndTime sets the EndTime field's value.
35497func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
35498	s.EndTime = &v
35499	return s
35500}
35501
35502// SetMaxResults sets the MaxResults field's value.
35503func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
35504	s.MaxResults = &v
35505	return s
35506}
35507
35508// SetNextToken sets the NextToken field's value.
35509func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
35510	s.NextToken = &v
35511	return s
35512}
35513
35514// SetStartTime sets the StartTime field's value.
35515func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
35516	s.StartTime = &v
35517	return s
35518}
35519
35520// SetTaskStatus sets the TaskStatus field's value.
35521func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
35522	s.TaskStatus = &v
35523	return s
35524}
35525
35526// SetTaskType sets the TaskType field's value.
35527func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
35528	s.TaskType = &v
35529	return s
35530}
35531
35532type ListAuditTasksOutput struct {
35533	_ struct{} `type:"structure"`
35534
35535	// A token that can be used to retrieve the next set of results, or null if
35536	// there are no additional results.
35537	NextToken *string `locationName:"nextToken" type:"string"`
35538
35539	// The audits that were performed during the specified time period.
35540	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
35541}
35542
35543// String returns the string representation
35544func (s ListAuditTasksOutput) String() string {
35545	return awsutil.Prettify(s)
35546}
35547
35548// GoString returns the string representation
35549func (s ListAuditTasksOutput) GoString() string {
35550	return s.String()
35551}
35552
35553// SetNextToken sets the NextToken field's value.
35554func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
35555	s.NextToken = &v
35556	return s
35557}
35558
35559// SetTasks sets the Tasks field's value.
35560func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
35561	s.Tasks = v
35562	return s
35563}
35564
35565type ListAuthorizersInput struct {
35566	_ struct{} `type:"structure"`
35567
35568	// Return the list of authorizers in ascending alphabetical order.
35569	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
35570
35571	// A marker used to get the next set of results.
35572	Marker *string `location:"querystring" locationName:"marker" type:"string"`
35573
35574	// The maximum number of results to return at one time.
35575	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
35576
35577	// The status of the list authorizers request.
35578	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
35579}
35580
35581// String returns the string representation
35582func (s ListAuthorizersInput) String() string {
35583	return awsutil.Prettify(s)
35584}
35585
35586// GoString returns the string representation
35587func (s ListAuthorizersInput) GoString() string {
35588	return s.String()
35589}
35590
35591// Validate inspects the fields of the type to determine if they are valid.
35592func (s *ListAuthorizersInput) Validate() error {
35593	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
35594	if s.PageSize != nil && *s.PageSize < 1 {
35595		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
35596	}
35597
35598	if invalidParams.Len() > 0 {
35599		return invalidParams
35600	}
35601	return nil
35602}
35603
35604// SetAscendingOrder sets the AscendingOrder field's value.
35605func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
35606	s.AscendingOrder = &v
35607	return s
35608}
35609
35610// SetMarker sets the Marker field's value.
35611func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
35612	s.Marker = &v
35613	return s
35614}
35615
35616// SetPageSize sets the PageSize field's value.
35617func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
35618	s.PageSize = &v
35619	return s
35620}
35621
35622// SetStatus sets the Status field's value.
35623func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
35624	s.Status = &v
35625	return s
35626}
35627
35628type ListAuthorizersOutput struct {
35629	_ struct{} `type:"structure"`
35630
35631	// The authorizers.
35632	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
35633
35634	// A marker used to get the next set of results.
35635	NextMarker *string `locationName:"nextMarker" type:"string"`
35636}
35637
35638// String returns the string representation
35639func (s ListAuthorizersOutput) String() string {
35640	return awsutil.Prettify(s)
35641}
35642
35643// GoString returns the string representation
35644func (s ListAuthorizersOutput) GoString() string {
35645	return s.String()
35646}
35647
35648// SetAuthorizers sets the Authorizers field's value.
35649func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
35650	s.Authorizers = v
35651	return s
35652}
35653
35654// SetNextMarker sets the NextMarker field's value.
35655func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
35656	s.NextMarker = &v
35657	return s
35658}
35659
35660type ListBillingGroupsInput struct {
35661	_ struct{} `type:"structure"`
35662
35663	// The maximum number of results to return per request.
35664	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
35665
35666	// Limit the results to billing groups whose names have the given prefix.
35667	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
35668
35669	// The token to retrieve the next set of results.
35670	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
35671}
35672
35673// String returns the string representation
35674func (s ListBillingGroupsInput) String() string {
35675	return awsutil.Prettify(s)
35676}
35677
35678// GoString returns the string representation
35679func (s ListBillingGroupsInput) GoString() string {
35680	return s.String()
35681}
35682
35683// Validate inspects the fields of the type to determine if they are valid.
35684func (s *ListBillingGroupsInput) Validate() error {
35685	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
35686	if s.MaxResults != nil && *s.MaxResults < 1 {
35687		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
35688	}
35689	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
35690		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
35691	}
35692
35693	if invalidParams.Len() > 0 {
35694		return invalidParams
35695	}
35696	return nil
35697}
35698
35699// SetMaxResults sets the MaxResults field's value.
35700func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
35701	s.MaxResults = &v
35702	return s
35703}
35704
35705// SetNamePrefixFilter sets the NamePrefixFilter field's value.
35706func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
35707	s.NamePrefixFilter = &v
35708	return s
35709}
35710
35711// SetNextToken sets the NextToken field's value.
35712func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
35713	s.NextToken = &v
35714	return s
35715}
35716
35717type ListBillingGroupsOutput struct {
35718	_ struct{} `type:"structure"`
35719
35720	// The list of billing groups.
35721	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
35722
35723	// The token used to get the next set of results, or null if there are no additional
35724	// results.
35725	NextToken *string `locationName:"nextToken" type:"string"`
35726}
35727
35728// String returns the string representation
35729func (s ListBillingGroupsOutput) String() string {
35730	return awsutil.Prettify(s)
35731}
35732
35733// GoString returns the string representation
35734func (s ListBillingGroupsOutput) GoString() string {
35735	return s.String()
35736}
35737
35738// SetBillingGroups sets the BillingGroups field's value.
35739func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
35740	s.BillingGroups = v
35741	return s
35742}
35743
35744// SetNextToken sets the NextToken field's value.
35745func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
35746	s.NextToken = &v
35747	return s
35748}
35749
35750// Input for the ListCACertificates operation.
35751type ListCACertificatesInput struct {
35752	_ struct{} `type:"structure"`
35753
35754	// Determines the order of the results.
35755	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
35756
35757	// The marker for the next set of results.
35758	Marker *string `location:"querystring" locationName:"marker" type:"string"`
35759
35760	// The result page size.
35761	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
35762}
35763
35764// String returns the string representation
35765func (s ListCACertificatesInput) String() string {
35766	return awsutil.Prettify(s)
35767}
35768
35769// GoString returns the string representation
35770func (s ListCACertificatesInput) GoString() string {
35771	return s.String()
35772}
35773
35774// Validate inspects the fields of the type to determine if they are valid.
35775func (s *ListCACertificatesInput) Validate() error {
35776	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
35777	if s.PageSize != nil && *s.PageSize < 1 {
35778		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
35779	}
35780
35781	if invalidParams.Len() > 0 {
35782		return invalidParams
35783	}
35784	return nil
35785}
35786
35787// SetAscendingOrder sets the AscendingOrder field's value.
35788func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
35789	s.AscendingOrder = &v
35790	return s
35791}
35792
35793// SetMarker sets the Marker field's value.
35794func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
35795	s.Marker = &v
35796	return s
35797}
35798
35799// SetPageSize sets the PageSize field's value.
35800func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
35801	s.PageSize = &v
35802	return s
35803}
35804
35805// The output from the ListCACertificates operation.
35806type ListCACertificatesOutput struct {
35807	_ struct{} `type:"structure"`
35808
35809	// The CA certificates registered in your AWS account.
35810	Certificates []*CACertificate `locationName:"certificates" type:"list"`
35811
35812	// The current position within the list of CA certificates.
35813	NextMarker *string `locationName:"nextMarker" type:"string"`
35814}
35815
35816// String returns the string representation
35817func (s ListCACertificatesOutput) String() string {
35818	return awsutil.Prettify(s)
35819}
35820
35821// GoString returns the string representation
35822func (s ListCACertificatesOutput) GoString() string {
35823	return s.String()
35824}
35825
35826// SetCertificates sets the Certificates field's value.
35827func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
35828	s.Certificates = v
35829	return s
35830}
35831
35832// SetNextMarker sets the NextMarker field's value.
35833func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
35834	s.NextMarker = &v
35835	return s
35836}
35837
35838// The input to the ListCertificatesByCA operation.
35839type ListCertificatesByCAInput struct {
35840	_ struct{} `type:"structure"`
35841
35842	// Specifies the order for results. If True, the results are returned in ascending
35843	// order, based on the creation date.
35844	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
35845
35846	// The ID of the CA certificate. This operation will list all registered device
35847	// certificate that were signed by this CA certificate.
35848	//
35849	// CaCertificateId is a required field
35850	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
35851
35852	// The marker for the next set of results.
35853	Marker *string `location:"querystring" locationName:"marker" type:"string"`
35854
35855	// The result page size.
35856	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
35857}
35858
35859// String returns the string representation
35860func (s ListCertificatesByCAInput) String() string {
35861	return awsutil.Prettify(s)
35862}
35863
35864// GoString returns the string representation
35865func (s ListCertificatesByCAInput) GoString() string {
35866	return s.String()
35867}
35868
35869// Validate inspects the fields of the type to determine if they are valid.
35870func (s *ListCertificatesByCAInput) Validate() error {
35871	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
35872	if s.CaCertificateId == nil {
35873		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
35874	}
35875	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
35876		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
35877	}
35878	if s.PageSize != nil && *s.PageSize < 1 {
35879		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
35880	}
35881
35882	if invalidParams.Len() > 0 {
35883		return invalidParams
35884	}
35885	return nil
35886}
35887
35888// SetAscendingOrder sets the AscendingOrder field's value.
35889func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
35890	s.AscendingOrder = &v
35891	return s
35892}
35893
35894// SetCaCertificateId sets the CaCertificateId field's value.
35895func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
35896	s.CaCertificateId = &v
35897	return s
35898}
35899
35900// SetMarker sets the Marker field's value.
35901func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
35902	s.Marker = &v
35903	return s
35904}
35905
35906// SetPageSize sets the PageSize field's value.
35907func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
35908	s.PageSize = &v
35909	return s
35910}
35911
35912// The output of the ListCertificatesByCA operation.
35913type ListCertificatesByCAOutput struct {
35914	_ struct{} `type:"structure"`
35915
35916	// The device certificates signed by the specified CA certificate.
35917	Certificates []*Certificate `locationName:"certificates" type:"list"`
35918
35919	// The marker for the next set of results, or null if there are no additional
35920	// results.
35921	NextMarker *string `locationName:"nextMarker" type:"string"`
35922}
35923
35924// String returns the string representation
35925func (s ListCertificatesByCAOutput) String() string {
35926	return awsutil.Prettify(s)
35927}
35928
35929// GoString returns the string representation
35930func (s ListCertificatesByCAOutput) GoString() string {
35931	return s.String()
35932}
35933
35934// SetCertificates sets the Certificates field's value.
35935func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
35936	s.Certificates = v
35937	return s
35938}
35939
35940// SetNextMarker sets the NextMarker field's value.
35941func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
35942	s.NextMarker = &v
35943	return s
35944}
35945
35946// The input for the ListCertificates operation.
35947type ListCertificatesInput struct {
35948	_ struct{} `type:"structure"`
35949
35950	// Specifies the order for results. If True, the results are returned in ascending
35951	// order, based on the creation date.
35952	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
35953
35954	// The marker for the next set of results.
35955	Marker *string `location:"querystring" locationName:"marker" type:"string"`
35956
35957	// The result page size.
35958	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
35959}
35960
35961// String returns the string representation
35962func (s ListCertificatesInput) String() string {
35963	return awsutil.Prettify(s)
35964}
35965
35966// GoString returns the string representation
35967func (s ListCertificatesInput) GoString() string {
35968	return s.String()
35969}
35970
35971// Validate inspects the fields of the type to determine if they are valid.
35972func (s *ListCertificatesInput) Validate() error {
35973	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
35974	if s.PageSize != nil && *s.PageSize < 1 {
35975		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
35976	}
35977
35978	if invalidParams.Len() > 0 {
35979		return invalidParams
35980	}
35981	return nil
35982}
35983
35984// SetAscendingOrder sets the AscendingOrder field's value.
35985func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
35986	s.AscendingOrder = &v
35987	return s
35988}
35989
35990// SetMarker sets the Marker field's value.
35991func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
35992	s.Marker = &v
35993	return s
35994}
35995
35996// SetPageSize sets the PageSize field's value.
35997func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
35998	s.PageSize = &v
35999	return s
36000}
36001
36002// The output of the ListCertificates operation.
36003type ListCertificatesOutput struct {
36004	_ struct{} `type:"structure"`
36005
36006	// The descriptions of the certificates.
36007	Certificates []*Certificate `locationName:"certificates" type:"list"`
36008
36009	// The marker for the next set of results, or null if there are no additional
36010	// results.
36011	NextMarker *string `locationName:"nextMarker" type:"string"`
36012}
36013
36014// String returns the string representation
36015func (s ListCertificatesOutput) String() string {
36016	return awsutil.Prettify(s)
36017}
36018
36019// GoString returns the string representation
36020func (s ListCertificatesOutput) GoString() string {
36021	return s.String()
36022}
36023
36024// SetCertificates sets the Certificates field's value.
36025func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
36026	s.Certificates = v
36027	return s
36028}
36029
36030// SetNextMarker sets the NextMarker field's value.
36031func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
36032	s.NextMarker = &v
36033	return s
36034}
36035
36036type ListDimensionsInput struct {
36037	_ struct{} `type:"structure"`
36038
36039	// The maximum number of results to retrieve at one time.
36040	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36041
36042	// The token for the next set of results.
36043	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36044}
36045
36046// String returns the string representation
36047func (s ListDimensionsInput) String() string {
36048	return awsutil.Prettify(s)
36049}
36050
36051// GoString returns the string representation
36052func (s ListDimensionsInput) GoString() string {
36053	return s.String()
36054}
36055
36056// Validate inspects the fields of the type to determine if they are valid.
36057func (s *ListDimensionsInput) Validate() error {
36058	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
36059	if s.MaxResults != nil && *s.MaxResults < 1 {
36060		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36061	}
36062
36063	if invalidParams.Len() > 0 {
36064		return invalidParams
36065	}
36066	return nil
36067}
36068
36069// SetMaxResults sets the MaxResults field's value.
36070func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
36071	s.MaxResults = &v
36072	return s
36073}
36074
36075// SetNextToken sets the NextToken field's value.
36076func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
36077	s.NextToken = &v
36078	return s
36079}
36080
36081type ListDimensionsOutput struct {
36082	_ struct{} `type:"structure"`
36083
36084	// A list of the names of the defined dimensions. Use DescribeDimension to get
36085	// details for a dimension.
36086	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
36087
36088	// A token that can be used to retrieve the next set of results, or null if
36089	// there are no additional results.
36090	NextToken *string `locationName:"nextToken" type:"string"`
36091}
36092
36093// String returns the string representation
36094func (s ListDimensionsOutput) String() string {
36095	return awsutil.Prettify(s)
36096}
36097
36098// GoString returns the string representation
36099func (s ListDimensionsOutput) GoString() string {
36100	return s.String()
36101}
36102
36103// SetDimensionNames sets the DimensionNames field's value.
36104func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
36105	s.DimensionNames = v
36106	return s
36107}
36108
36109// SetNextToken sets the NextToken field's value.
36110func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
36111	s.NextToken = &v
36112	return s
36113}
36114
36115type ListDomainConfigurationsInput struct {
36116	_ struct{} `type:"structure"`
36117
36118	// The marker for the next set of results.
36119	Marker *string `location:"querystring" locationName:"marker" type:"string"`
36120
36121	// The result page size.
36122	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
36123
36124	// The type of service delivered by the endpoint.
36125	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
36126}
36127
36128// String returns the string representation
36129func (s ListDomainConfigurationsInput) String() string {
36130	return awsutil.Prettify(s)
36131}
36132
36133// GoString returns the string representation
36134func (s ListDomainConfigurationsInput) GoString() string {
36135	return s.String()
36136}
36137
36138// Validate inspects the fields of the type to determine if they are valid.
36139func (s *ListDomainConfigurationsInput) Validate() error {
36140	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
36141	if s.PageSize != nil && *s.PageSize < 1 {
36142		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
36143	}
36144
36145	if invalidParams.Len() > 0 {
36146		return invalidParams
36147	}
36148	return nil
36149}
36150
36151// SetMarker sets the Marker field's value.
36152func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
36153	s.Marker = &v
36154	return s
36155}
36156
36157// SetPageSize sets the PageSize field's value.
36158func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
36159	s.PageSize = &v
36160	return s
36161}
36162
36163// SetServiceType sets the ServiceType field's value.
36164func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
36165	s.ServiceType = &v
36166	return s
36167}
36168
36169type ListDomainConfigurationsOutput struct {
36170	_ struct{} `type:"structure"`
36171
36172	// A list of objects that contain summary information about the user's domain
36173	// configurations.
36174	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
36175
36176	// The marker for the next set of results.
36177	NextMarker *string `locationName:"nextMarker" type:"string"`
36178}
36179
36180// String returns the string representation
36181func (s ListDomainConfigurationsOutput) String() string {
36182	return awsutil.Prettify(s)
36183}
36184
36185// GoString returns the string representation
36186func (s ListDomainConfigurationsOutput) GoString() string {
36187	return s.String()
36188}
36189
36190// SetDomainConfigurations sets the DomainConfigurations field's value.
36191func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
36192	s.DomainConfigurations = v
36193	return s
36194}
36195
36196// SetNextMarker sets the NextMarker field's value.
36197func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
36198	s.NextMarker = &v
36199	return s
36200}
36201
36202type ListIndicesInput struct {
36203	_ struct{} `type:"structure"`
36204
36205	// The maximum number of results to return at one time.
36206	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36207
36208	// The token used to get the next set of results, or null if there are no additional
36209	// results.
36210	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36211}
36212
36213// String returns the string representation
36214func (s ListIndicesInput) String() string {
36215	return awsutil.Prettify(s)
36216}
36217
36218// GoString returns the string representation
36219func (s ListIndicesInput) GoString() string {
36220	return s.String()
36221}
36222
36223// Validate inspects the fields of the type to determine if they are valid.
36224func (s *ListIndicesInput) Validate() error {
36225	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
36226	if s.MaxResults != nil && *s.MaxResults < 1 {
36227		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36228	}
36229
36230	if invalidParams.Len() > 0 {
36231		return invalidParams
36232	}
36233	return nil
36234}
36235
36236// SetMaxResults sets the MaxResults field's value.
36237func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
36238	s.MaxResults = &v
36239	return s
36240}
36241
36242// SetNextToken sets the NextToken field's value.
36243func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
36244	s.NextToken = &v
36245	return s
36246}
36247
36248type ListIndicesOutput struct {
36249	_ struct{} `type:"structure"`
36250
36251	// The index names.
36252	IndexNames []*string `locationName:"indexNames" type:"list"`
36253
36254	// The token used to get the next set of results, or null if there are no additional
36255	// results.
36256	NextToken *string `locationName:"nextToken" type:"string"`
36257}
36258
36259// String returns the string representation
36260func (s ListIndicesOutput) String() string {
36261	return awsutil.Prettify(s)
36262}
36263
36264// GoString returns the string representation
36265func (s ListIndicesOutput) GoString() string {
36266	return s.String()
36267}
36268
36269// SetIndexNames sets the IndexNames field's value.
36270func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
36271	s.IndexNames = v
36272	return s
36273}
36274
36275// SetNextToken sets the NextToken field's value.
36276func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
36277	s.NextToken = &v
36278	return s
36279}
36280
36281type ListJobExecutionsForJobInput struct {
36282	_ struct{} `type:"structure"`
36283
36284	// The unique identifier you assigned to this job when it was created.
36285	//
36286	// JobId is a required field
36287	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
36288
36289	// The maximum number of results to be returned per request.
36290	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36291
36292	// The token to retrieve the next set of results.
36293	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36294
36295	// The status of the job.
36296	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
36297}
36298
36299// String returns the string representation
36300func (s ListJobExecutionsForJobInput) String() string {
36301	return awsutil.Prettify(s)
36302}
36303
36304// GoString returns the string representation
36305func (s ListJobExecutionsForJobInput) GoString() string {
36306	return s.String()
36307}
36308
36309// Validate inspects the fields of the type to determine if they are valid.
36310func (s *ListJobExecutionsForJobInput) Validate() error {
36311	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
36312	if s.JobId == nil {
36313		invalidParams.Add(request.NewErrParamRequired("JobId"))
36314	}
36315	if s.JobId != nil && len(*s.JobId) < 1 {
36316		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
36317	}
36318	if s.MaxResults != nil && *s.MaxResults < 1 {
36319		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36320	}
36321
36322	if invalidParams.Len() > 0 {
36323		return invalidParams
36324	}
36325	return nil
36326}
36327
36328// SetJobId sets the JobId field's value.
36329func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
36330	s.JobId = &v
36331	return s
36332}
36333
36334// SetMaxResults sets the MaxResults field's value.
36335func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
36336	s.MaxResults = &v
36337	return s
36338}
36339
36340// SetNextToken sets the NextToken field's value.
36341func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
36342	s.NextToken = &v
36343	return s
36344}
36345
36346// SetStatus sets the Status field's value.
36347func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
36348	s.Status = &v
36349	return s
36350}
36351
36352type ListJobExecutionsForJobOutput struct {
36353	_ struct{} `type:"structure"`
36354
36355	// A list of job execution summaries.
36356	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
36357
36358	// The token for the next set of results, or null if there are no additional
36359	// results.
36360	NextToken *string `locationName:"nextToken" type:"string"`
36361}
36362
36363// String returns the string representation
36364func (s ListJobExecutionsForJobOutput) String() string {
36365	return awsutil.Prettify(s)
36366}
36367
36368// GoString returns the string representation
36369func (s ListJobExecutionsForJobOutput) GoString() string {
36370	return s.String()
36371}
36372
36373// SetExecutionSummaries sets the ExecutionSummaries field's value.
36374func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
36375	s.ExecutionSummaries = v
36376	return s
36377}
36378
36379// SetNextToken sets the NextToken field's value.
36380func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
36381	s.NextToken = &v
36382	return s
36383}
36384
36385type ListJobExecutionsForThingInput struct {
36386	_ struct{} `type:"structure"`
36387
36388	// The maximum number of results to be returned per request.
36389	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36390
36391	// The token to retrieve the next set of results.
36392	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36393
36394	// An optional filter that lets you search for jobs that have the specified
36395	// status.
36396	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
36397
36398	// The thing name.
36399	//
36400	// ThingName is a required field
36401	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36402}
36403
36404// String returns the string representation
36405func (s ListJobExecutionsForThingInput) String() string {
36406	return awsutil.Prettify(s)
36407}
36408
36409// GoString returns the string representation
36410func (s ListJobExecutionsForThingInput) GoString() string {
36411	return s.String()
36412}
36413
36414// Validate inspects the fields of the type to determine if they are valid.
36415func (s *ListJobExecutionsForThingInput) Validate() error {
36416	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
36417	if s.MaxResults != nil && *s.MaxResults < 1 {
36418		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36419	}
36420	if s.ThingName == nil {
36421		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36422	}
36423	if s.ThingName != nil && len(*s.ThingName) < 1 {
36424		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36425	}
36426
36427	if invalidParams.Len() > 0 {
36428		return invalidParams
36429	}
36430	return nil
36431}
36432
36433// SetMaxResults sets the MaxResults field's value.
36434func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
36435	s.MaxResults = &v
36436	return s
36437}
36438
36439// SetNextToken sets the NextToken field's value.
36440func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
36441	s.NextToken = &v
36442	return s
36443}
36444
36445// SetStatus sets the Status field's value.
36446func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
36447	s.Status = &v
36448	return s
36449}
36450
36451// SetThingName sets the ThingName field's value.
36452func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
36453	s.ThingName = &v
36454	return s
36455}
36456
36457type ListJobExecutionsForThingOutput struct {
36458	_ struct{} `type:"structure"`
36459
36460	// A list of job execution summaries.
36461	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
36462
36463	// The token for the next set of results, or null if there are no additional
36464	// results.
36465	NextToken *string `locationName:"nextToken" type:"string"`
36466}
36467
36468// String returns the string representation
36469func (s ListJobExecutionsForThingOutput) String() string {
36470	return awsutil.Prettify(s)
36471}
36472
36473// GoString returns the string representation
36474func (s ListJobExecutionsForThingOutput) GoString() string {
36475	return s.String()
36476}
36477
36478// SetExecutionSummaries sets the ExecutionSummaries field's value.
36479func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
36480	s.ExecutionSummaries = v
36481	return s
36482}
36483
36484// SetNextToken sets the NextToken field's value.
36485func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
36486	s.NextToken = &v
36487	return s
36488}
36489
36490type ListJobsInput struct {
36491	_ struct{} `type:"structure"`
36492
36493	// The maximum number of results to return per request.
36494	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36495
36496	// The token to retrieve the next set of results.
36497	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36498
36499	// An optional filter that lets you search for jobs that have the specified
36500	// status.
36501	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
36502
36503	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
36504	// after all those things specified as targets have completed the job (SNAPSHOT).
36505	// If continuous, the job may also be run on a thing when a change is detected
36506	// in a target. For example, a job will run on a thing when the thing is added
36507	// to a target group, even after the job was completed by all things originally
36508	// in the group.
36509	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
36510
36511	// A filter that limits the returned jobs to those for the specified group.
36512	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
36513
36514	// A filter that limits the returned jobs to those for the specified group.
36515	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
36516}
36517
36518// String returns the string representation
36519func (s ListJobsInput) String() string {
36520	return awsutil.Prettify(s)
36521}
36522
36523// GoString returns the string representation
36524func (s ListJobsInput) GoString() string {
36525	return s.String()
36526}
36527
36528// Validate inspects the fields of the type to determine if they are valid.
36529func (s *ListJobsInput) Validate() error {
36530	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
36531	if s.MaxResults != nil && *s.MaxResults < 1 {
36532		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36533	}
36534	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
36535		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
36536	}
36537	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
36538		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
36539	}
36540
36541	if invalidParams.Len() > 0 {
36542		return invalidParams
36543	}
36544	return nil
36545}
36546
36547// SetMaxResults sets the MaxResults field's value.
36548func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
36549	s.MaxResults = &v
36550	return s
36551}
36552
36553// SetNextToken sets the NextToken field's value.
36554func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
36555	s.NextToken = &v
36556	return s
36557}
36558
36559// SetStatus sets the Status field's value.
36560func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
36561	s.Status = &v
36562	return s
36563}
36564
36565// SetTargetSelection sets the TargetSelection field's value.
36566func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
36567	s.TargetSelection = &v
36568	return s
36569}
36570
36571// SetThingGroupId sets the ThingGroupId field's value.
36572func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
36573	s.ThingGroupId = &v
36574	return s
36575}
36576
36577// SetThingGroupName sets the ThingGroupName field's value.
36578func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
36579	s.ThingGroupName = &v
36580	return s
36581}
36582
36583type ListJobsOutput struct {
36584	_ struct{} `type:"structure"`
36585
36586	// A list of jobs.
36587	Jobs []*JobSummary `locationName:"jobs" type:"list"`
36588
36589	// The token for the next set of results, or null if there are no additional
36590	// results.
36591	NextToken *string `locationName:"nextToken" type:"string"`
36592}
36593
36594// String returns the string representation
36595func (s ListJobsOutput) String() string {
36596	return awsutil.Prettify(s)
36597}
36598
36599// GoString returns the string representation
36600func (s ListJobsOutput) GoString() string {
36601	return s.String()
36602}
36603
36604// SetJobs sets the Jobs field's value.
36605func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
36606	s.Jobs = v
36607	return s
36608}
36609
36610// SetNextToken sets the NextToken field's value.
36611func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
36612	s.NextToken = &v
36613	return s
36614}
36615
36616type ListMitigationActionsInput struct {
36617	_ struct{} `type:"structure"`
36618
36619	// Specify a value to limit the result to mitigation actions with a specific
36620	// action type.
36621	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
36622
36623	// The maximum number of results to return at one time. The default is 25.
36624	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36625
36626	// The token for the next set of results.
36627	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36628}
36629
36630// String returns the string representation
36631func (s ListMitigationActionsInput) String() string {
36632	return awsutil.Prettify(s)
36633}
36634
36635// GoString returns the string representation
36636func (s ListMitigationActionsInput) GoString() string {
36637	return s.String()
36638}
36639
36640// Validate inspects the fields of the type to determine if they are valid.
36641func (s *ListMitigationActionsInput) Validate() error {
36642	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
36643	if s.MaxResults != nil && *s.MaxResults < 1 {
36644		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36645	}
36646
36647	if invalidParams.Len() > 0 {
36648		return invalidParams
36649	}
36650	return nil
36651}
36652
36653// SetActionType sets the ActionType field's value.
36654func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
36655	s.ActionType = &v
36656	return s
36657}
36658
36659// SetMaxResults sets the MaxResults field's value.
36660func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
36661	s.MaxResults = &v
36662	return s
36663}
36664
36665// SetNextToken sets the NextToken field's value.
36666func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
36667	s.NextToken = &v
36668	return s
36669}
36670
36671type ListMitigationActionsOutput struct {
36672	_ struct{} `type:"structure"`
36673
36674	// A set of actions that matched the specified filter criteria.
36675	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
36676
36677	// The token for the next set of results.
36678	NextToken *string `locationName:"nextToken" type:"string"`
36679}
36680
36681// String returns the string representation
36682func (s ListMitigationActionsOutput) String() string {
36683	return awsutil.Prettify(s)
36684}
36685
36686// GoString returns the string representation
36687func (s ListMitigationActionsOutput) GoString() string {
36688	return s.String()
36689}
36690
36691// SetActionIdentifiers sets the ActionIdentifiers field's value.
36692func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
36693	s.ActionIdentifiers = v
36694	return s
36695}
36696
36697// SetNextToken sets the NextToken field's value.
36698func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
36699	s.NextToken = &v
36700	return s
36701}
36702
36703type ListOTAUpdatesInput struct {
36704	_ struct{} `type:"structure"`
36705
36706	// The maximum number of results to return at one time.
36707	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
36708
36709	// A token used to retrieve the next set of results.
36710	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
36711
36712	// The OTA update job status.
36713	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
36714}
36715
36716// String returns the string representation
36717func (s ListOTAUpdatesInput) String() string {
36718	return awsutil.Prettify(s)
36719}
36720
36721// GoString returns the string representation
36722func (s ListOTAUpdatesInput) GoString() string {
36723	return s.String()
36724}
36725
36726// Validate inspects the fields of the type to determine if they are valid.
36727func (s *ListOTAUpdatesInput) Validate() error {
36728	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
36729	if s.MaxResults != nil && *s.MaxResults < 1 {
36730		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
36731	}
36732
36733	if invalidParams.Len() > 0 {
36734		return invalidParams
36735	}
36736	return nil
36737}
36738
36739// SetMaxResults sets the MaxResults field's value.
36740func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
36741	s.MaxResults = &v
36742	return s
36743}
36744
36745// SetNextToken sets the NextToken field's value.
36746func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
36747	s.NextToken = &v
36748	return s
36749}
36750
36751// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
36752func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
36753	s.OtaUpdateStatus = &v
36754	return s
36755}
36756
36757type ListOTAUpdatesOutput struct {
36758	_ struct{} `type:"structure"`
36759
36760	// A token to use to get the next set of results.
36761	NextToken *string `locationName:"nextToken" type:"string"`
36762
36763	// A list of OTA update jobs.
36764	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
36765}
36766
36767// String returns the string representation
36768func (s ListOTAUpdatesOutput) String() string {
36769	return awsutil.Prettify(s)
36770}
36771
36772// GoString returns the string representation
36773func (s ListOTAUpdatesOutput) GoString() string {
36774	return s.String()
36775}
36776
36777// SetNextToken sets the NextToken field's value.
36778func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
36779	s.NextToken = &v
36780	return s
36781}
36782
36783// SetOtaUpdates sets the OtaUpdates field's value.
36784func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
36785	s.OtaUpdates = v
36786	return s
36787}
36788
36789// The input to the ListOutgoingCertificates operation.
36790type ListOutgoingCertificatesInput struct {
36791	_ struct{} `type:"structure"`
36792
36793	// Specifies the order for results. If True, the results are returned in ascending
36794	// order, based on the creation date.
36795	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
36796
36797	// The marker for the next set of results.
36798	Marker *string `location:"querystring" locationName:"marker" type:"string"`
36799
36800	// The result page size.
36801	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
36802}
36803
36804// String returns the string representation
36805func (s ListOutgoingCertificatesInput) String() string {
36806	return awsutil.Prettify(s)
36807}
36808
36809// GoString returns the string representation
36810func (s ListOutgoingCertificatesInput) GoString() string {
36811	return s.String()
36812}
36813
36814// Validate inspects the fields of the type to determine if they are valid.
36815func (s *ListOutgoingCertificatesInput) Validate() error {
36816	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
36817	if s.PageSize != nil && *s.PageSize < 1 {
36818		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
36819	}
36820
36821	if invalidParams.Len() > 0 {
36822		return invalidParams
36823	}
36824	return nil
36825}
36826
36827// SetAscendingOrder sets the AscendingOrder field's value.
36828func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
36829	s.AscendingOrder = &v
36830	return s
36831}
36832
36833// SetMarker sets the Marker field's value.
36834func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
36835	s.Marker = &v
36836	return s
36837}
36838
36839// SetPageSize sets the PageSize field's value.
36840func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
36841	s.PageSize = &v
36842	return s
36843}
36844
36845// The output from the ListOutgoingCertificates operation.
36846type ListOutgoingCertificatesOutput struct {
36847	_ struct{} `type:"structure"`
36848
36849	// The marker for the next set of results.
36850	NextMarker *string `locationName:"nextMarker" type:"string"`
36851
36852	// The certificates that are being transferred but not yet accepted.
36853	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
36854}
36855
36856// String returns the string representation
36857func (s ListOutgoingCertificatesOutput) String() string {
36858	return awsutil.Prettify(s)
36859}
36860
36861// GoString returns the string representation
36862func (s ListOutgoingCertificatesOutput) GoString() string {
36863	return s.String()
36864}
36865
36866// SetNextMarker sets the NextMarker field's value.
36867func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
36868	s.NextMarker = &v
36869	return s
36870}
36871
36872// SetOutgoingCertificates sets the OutgoingCertificates field's value.
36873func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
36874	s.OutgoingCertificates = v
36875	return s
36876}
36877
36878// The input for the ListPolicies operation.
36879type ListPoliciesInput struct {
36880	_ struct{} `type:"structure"`
36881
36882	// Specifies the order for results. If true, the results are returned in ascending
36883	// creation order.
36884	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
36885
36886	// The marker for the next set of results.
36887	Marker *string `location:"querystring" locationName:"marker" type:"string"`
36888
36889	// The result page size.
36890	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
36891}
36892
36893// String returns the string representation
36894func (s ListPoliciesInput) String() string {
36895	return awsutil.Prettify(s)
36896}
36897
36898// GoString returns the string representation
36899func (s ListPoliciesInput) GoString() string {
36900	return s.String()
36901}
36902
36903// Validate inspects the fields of the type to determine if they are valid.
36904func (s *ListPoliciesInput) Validate() error {
36905	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
36906	if s.PageSize != nil && *s.PageSize < 1 {
36907		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
36908	}
36909
36910	if invalidParams.Len() > 0 {
36911		return invalidParams
36912	}
36913	return nil
36914}
36915
36916// SetAscendingOrder sets the AscendingOrder field's value.
36917func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
36918	s.AscendingOrder = &v
36919	return s
36920}
36921
36922// SetMarker sets the Marker field's value.
36923func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
36924	s.Marker = &v
36925	return s
36926}
36927
36928// SetPageSize sets the PageSize field's value.
36929func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
36930	s.PageSize = &v
36931	return s
36932}
36933
36934// The output from the ListPolicies operation.
36935type ListPoliciesOutput struct {
36936	_ struct{} `type:"structure"`
36937
36938	// The marker for the next set of results, or null if there are no additional
36939	// results.
36940	NextMarker *string `locationName:"nextMarker" type:"string"`
36941
36942	// The descriptions of the policies.
36943	Policies []*Policy `locationName:"policies" type:"list"`
36944}
36945
36946// String returns the string representation
36947func (s ListPoliciesOutput) String() string {
36948	return awsutil.Prettify(s)
36949}
36950
36951// GoString returns the string representation
36952func (s ListPoliciesOutput) GoString() string {
36953	return s.String()
36954}
36955
36956// SetNextMarker sets the NextMarker field's value.
36957func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
36958	s.NextMarker = &v
36959	return s
36960}
36961
36962// SetPolicies sets the Policies field's value.
36963func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
36964	s.Policies = v
36965	return s
36966}
36967
36968// The input for the ListPolicyPrincipals operation.
36969type ListPolicyPrincipalsInput struct {
36970	_ struct{} `type:"structure"`
36971
36972	// Specifies the order for results. If true, the results are returned in ascending
36973	// creation order.
36974	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
36975
36976	// The marker for the next set of results.
36977	Marker *string `location:"querystring" locationName:"marker" type:"string"`
36978
36979	// The result page size.
36980	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
36981
36982	// The policy name.
36983	//
36984	// PolicyName is a required field
36985	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
36986}
36987
36988// String returns the string representation
36989func (s ListPolicyPrincipalsInput) String() string {
36990	return awsutil.Prettify(s)
36991}
36992
36993// GoString returns the string representation
36994func (s ListPolicyPrincipalsInput) GoString() string {
36995	return s.String()
36996}
36997
36998// Validate inspects the fields of the type to determine if they are valid.
36999func (s *ListPolicyPrincipalsInput) Validate() error {
37000	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
37001	if s.PageSize != nil && *s.PageSize < 1 {
37002		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
37003	}
37004	if s.PolicyName == nil {
37005		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37006	}
37007	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37008		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37009	}
37010
37011	if invalidParams.Len() > 0 {
37012		return invalidParams
37013	}
37014	return nil
37015}
37016
37017// SetAscendingOrder sets the AscendingOrder field's value.
37018func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
37019	s.AscendingOrder = &v
37020	return s
37021}
37022
37023// SetMarker sets the Marker field's value.
37024func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
37025	s.Marker = &v
37026	return s
37027}
37028
37029// SetPageSize sets the PageSize field's value.
37030func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
37031	s.PageSize = &v
37032	return s
37033}
37034
37035// SetPolicyName sets the PolicyName field's value.
37036func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
37037	s.PolicyName = &v
37038	return s
37039}
37040
37041// The output from the ListPolicyPrincipals operation.
37042type ListPolicyPrincipalsOutput struct {
37043	_ struct{} `type:"structure"`
37044
37045	// The marker for the next set of results, or null if there are no additional
37046	// results.
37047	NextMarker *string `locationName:"nextMarker" type:"string"`
37048
37049	// The descriptions of the principals.
37050	Principals []*string `locationName:"principals" type:"list"`
37051}
37052
37053// String returns the string representation
37054func (s ListPolicyPrincipalsOutput) String() string {
37055	return awsutil.Prettify(s)
37056}
37057
37058// GoString returns the string representation
37059func (s ListPolicyPrincipalsOutput) GoString() string {
37060	return s.String()
37061}
37062
37063// SetNextMarker sets the NextMarker field's value.
37064func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
37065	s.NextMarker = &v
37066	return s
37067}
37068
37069// SetPrincipals sets the Principals field's value.
37070func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
37071	s.Principals = v
37072	return s
37073}
37074
37075// The input for the ListPolicyVersions operation.
37076type ListPolicyVersionsInput struct {
37077	_ struct{} `type:"structure"`
37078
37079	// The policy name.
37080	//
37081	// PolicyName is a required field
37082	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
37083}
37084
37085// String returns the string representation
37086func (s ListPolicyVersionsInput) String() string {
37087	return awsutil.Prettify(s)
37088}
37089
37090// GoString returns the string representation
37091func (s ListPolicyVersionsInput) GoString() string {
37092	return s.String()
37093}
37094
37095// Validate inspects the fields of the type to determine if they are valid.
37096func (s *ListPolicyVersionsInput) Validate() error {
37097	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
37098	if s.PolicyName == nil {
37099		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37100	}
37101	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37102		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37103	}
37104
37105	if invalidParams.Len() > 0 {
37106		return invalidParams
37107	}
37108	return nil
37109}
37110
37111// SetPolicyName sets the PolicyName field's value.
37112func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
37113	s.PolicyName = &v
37114	return s
37115}
37116
37117// The output from the ListPolicyVersions operation.
37118type ListPolicyVersionsOutput struct {
37119	_ struct{} `type:"structure"`
37120
37121	// The policy versions.
37122	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
37123}
37124
37125// String returns the string representation
37126func (s ListPolicyVersionsOutput) String() string {
37127	return awsutil.Prettify(s)
37128}
37129
37130// GoString returns the string representation
37131func (s ListPolicyVersionsOutput) GoString() string {
37132	return s.String()
37133}
37134
37135// SetPolicyVersions sets the PolicyVersions field's value.
37136func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
37137	s.PolicyVersions = v
37138	return s
37139}
37140
37141// The input for the ListPrincipalPolicies operation.
37142type ListPrincipalPoliciesInput struct {
37143	_ struct{} `type:"structure"`
37144
37145	// Specifies the order for results. If true, results are returned in ascending
37146	// creation order.
37147	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
37148
37149	// The marker for the next set of results.
37150	Marker *string `location:"querystring" locationName:"marker" type:"string"`
37151
37152	// The result page size.
37153	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
37154
37155	// The principal.
37156	//
37157	// Principal is a required field
37158	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
37159}
37160
37161// String returns the string representation
37162func (s ListPrincipalPoliciesInput) String() string {
37163	return awsutil.Prettify(s)
37164}
37165
37166// GoString returns the string representation
37167func (s ListPrincipalPoliciesInput) GoString() string {
37168	return s.String()
37169}
37170
37171// Validate inspects the fields of the type to determine if they are valid.
37172func (s *ListPrincipalPoliciesInput) Validate() error {
37173	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
37174	if s.PageSize != nil && *s.PageSize < 1 {
37175		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
37176	}
37177	if s.Principal == nil {
37178		invalidParams.Add(request.NewErrParamRequired("Principal"))
37179	}
37180
37181	if invalidParams.Len() > 0 {
37182		return invalidParams
37183	}
37184	return nil
37185}
37186
37187// SetAscendingOrder sets the AscendingOrder field's value.
37188func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
37189	s.AscendingOrder = &v
37190	return s
37191}
37192
37193// SetMarker sets the Marker field's value.
37194func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
37195	s.Marker = &v
37196	return s
37197}
37198
37199// SetPageSize sets the PageSize field's value.
37200func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
37201	s.PageSize = &v
37202	return s
37203}
37204
37205// SetPrincipal sets the Principal field's value.
37206func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
37207	s.Principal = &v
37208	return s
37209}
37210
37211// The output from the ListPrincipalPolicies operation.
37212type ListPrincipalPoliciesOutput struct {
37213	_ struct{} `type:"structure"`
37214
37215	// The marker for the next set of results, or null if there are no additional
37216	// results.
37217	NextMarker *string `locationName:"nextMarker" type:"string"`
37218
37219	// The policies.
37220	Policies []*Policy `locationName:"policies" type:"list"`
37221}
37222
37223// String returns the string representation
37224func (s ListPrincipalPoliciesOutput) String() string {
37225	return awsutil.Prettify(s)
37226}
37227
37228// GoString returns the string representation
37229func (s ListPrincipalPoliciesOutput) GoString() string {
37230	return s.String()
37231}
37232
37233// SetNextMarker sets the NextMarker field's value.
37234func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
37235	s.NextMarker = &v
37236	return s
37237}
37238
37239// SetPolicies sets the Policies field's value.
37240func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
37241	s.Policies = v
37242	return s
37243}
37244
37245// The input for the ListPrincipalThings operation.
37246type ListPrincipalThingsInput struct {
37247	_ struct{} `type:"structure"`
37248
37249	// The maximum number of results to return in this operation.
37250	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37251
37252	// The token to retrieve the next set of results.
37253	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37254
37255	// The principal.
37256	//
37257	// Principal is a required field
37258	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
37259}
37260
37261// String returns the string representation
37262func (s ListPrincipalThingsInput) String() string {
37263	return awsutil.Prettify(s)
37264}
37265
37266// GoString returns the string representation
37267func (s ListPrincipalThingsInput) GoString() string {
37268	return s.String()
37269}
37270
37271// Validate inspects the fields of the type to determine if they are valid.
37272func (s *ListPrincipalThingsInput) Validate() error {
37273	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
37274	if s.MaxResults != nil && *s.MaxResults < 1 {
37275		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37276	}
37277	if s.Principal == nil {
37278		invalidParams.Add(request.NewErrParamRequired("Principal"))
37279	}
37280
37281	if invalidParams.Len() > 0 {
37282		return invalidParams
37283	}
37284	return nil
37285}
37286
37287// SetMaxResults sets the MaxResults field's value.
37288func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
37289	s.MaxResults = &v
37290	return s
37291}
37292
37293// SetNextToken sets the NextToken field's value.
37294func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
37295	s.NextToken = &v
37296	return s
37297}
37298
37299// SetPrincipal sets the Principal field's value.
37300func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
37301	s.Principal = &v
37302	return s
37303}
37304
37305// The output from the ListPrincipalThings operation.
37306type ListPrincipalThingsOutput struct {
37307	_ struct{} `type:"structure"`
37308
37309	// The token used to get the next set of results, or null if there are no additional
37310	// results.
37311	NextToken *string `locationName:"nextToken" type:"string"`
37312
37313	// The things.
37314	Things []*string `locationName:"things" type:"list"`
37315}
37316
37317// String returns the string representation
37318func (s ListPrincipalThingsOutput) String() string {
37319	return awsutil.Prettify(s)
37320}
37321
37322// GoString returns the string representation
37323func (s ListPrincipalThingsOutput) GoString() string {
37324	return s.String()
37325}
37326
37327// SetNextToken sets the NextToken field's value.
37328func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
37329	s.NextToken = &v
37330	return s
37331}
37332
37333// SetThings sets the Things field's value.
37334func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
37335	s.Things = v
37336	return s
37337}
37338
37339type ListProvisioningTemplateVersionsInput struct {
37340	_ struct{} `type:"structure"`
37341
37342	// The maximum number of results to return at one time.
37343	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37344
37345	// A token to retrieve the next set of results.
37346	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37347
37348	// The name of the fleet provisioning template.
37349	//
37350	// TemplateName is a required field
37351	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
37352}
37353
37354// String returns the string representation
37355func (s ListProvisioningTemplateVersionsInput) String() string {
37356	return awsutil.Prettify(s)
37357}
37358
37359// GoString returns the string representation
37360func (s ListProvisioningTemplateVersionsInput) GoString() string {
37361	return s.String()
37362}
37363
37364// Validate inspects the fields of the type to determine if they are valid.
37365func (s *ListProvisioningTemplateVersionsInput) Validate() error {
37366	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
37367	if s.MaxResults != nil && *s.MaxResults < 1 {
37368		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37369	}
37370	if s.TemplateName == nil {
37371		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
37372	}
37373	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
37374		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
37375	}
37376
37377	if invalidParams.Len() > 0 {
37378		return invalidParams
37379	}
37380	return nil
37381}
37382
37383// SetMaxResults sets the MaxResults field's value.
37384func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
37385	s.MaxResults = &v
37386	return s
37387}
37388
37389// SetNextToken sets the NextToken field's value.
37390func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
37391	s.NextToken = &v
37392	return s
37393}
37394
37395// SetTemplateName sets the TemplateName field's value.
37396func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
37397	s.TemplateName = &v
37398	return s
37399}
37400
37401type ListProvisioningTemplateVersionsOutput struct {
37402	_ struct{} `type:"structure"`
37403
37404	// A token to retrieve the next set of results.
37405	NextToken *string `locationName:"nextToken" type:"string"`
37406
37407	// The list of fleet provisioning template versions.
37408	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
37409}
37410
37411// String returns the string representation
37412func (s ListProvisioningTemplateVersionsOutput) String() string {
37413	return awsutil.Prettify(s)
37414}
37415
37416// GoString returns the string representation
37417func (s ListProvisioningTemplateVersionsOutput) GoString() string {
37418	return s.String()
37419}
37420
37421// SetNextToken sets the NextToken field's value.
37422func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
37423	s.NextToken = &v
37424	return s
37425}
37426
37427// SetVersions sets the Versions field's value.
37428func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
37429	s.Versions = v
37430	return s
37431}
37432
37433type ListProvisioningTemplatesInput struct {
37434	_ struct{} `type:"structure"`
37435
37436	// The maximum number of results to return at one time.
37437	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37438
37439	// A token to retrieve the next set of results.
37440	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37441}
37442
37443// String returns the string representation
37444func (s ListProvisioningTemplatesInput) String() string {
37445	return awsutil.Prettify(s)
37446}
37447
37448// GoString returns the string representation
37449func (s ListProvisioningTemplatesInput) GoString() string {
37450	return s.String()
37451}
37452
37453// Validate inspects the fields of the type to determine if they are valid.
37454func (s *ListProvisioningTemplatesInput) Validate() error {
37455	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
37456	if s.MaxResults != nil && *s.MaxResults < 1 {
37457		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37458	}
37459
37460	if invalidParams.Len() > 0 {
37461		return invalidParams
37462	}
37463	return nil
37464}
37465
37466// SetMaxResults sets the MaxResults field's value.
37467func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
37468	s.MaxResults = &v
37469	return s
37470}
37471
37472// SetNextToken sets the NextToken field's value.
37473func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
37474	s.NextToken = &v
37475	return s
37476}
37477
37478type ListProvisioningTemplatesOutput struct {
37479	_ struct{} `type:"structure"`
37480
37481	// A token to retrieve the next set of results.
37482	NextToken *string `locationName:"nextToken" type:"string"`
37483
37484	// A list of fleet provisioning templates
37485	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
37486}
37487
37488// String returns the string representation
37489func (s ListProvisioningTemplatesOutput) String() string {
37490	return awsutil.Prettify(s)
37491}
37492
37493// GoString returns the string representation
37494func (s ListProvisioningTemplatesOutput) GoString() string {
37495	return s.String()
37496}
37497
37498// SetNextToken sets the NextToken field's value.
37499func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
37500	s.NextToken = &v
37501	return s
37502}
37503
37504// SetTemplates sets the Templates field's value.
37505func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
37506	s.Templates = v
37507	return s
37508}
37509
37510type ListRoleAliasesInput struct {
37511	_ struct{} `type:"structure"`
37512
37513	// Return the list of role aliases in ascending alphabetical order.
37514	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
37515
37516	// A marker used to get the next set of results.
37517	Marker *string `location:"querystring" locationName:"marker" type:"string"`
37518
37519	// The maximum number of results to return at one time.
37520	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
37521}
37522
37523// String returns the string representation
37524func (s ListRoleAliasesInput) String() string {
37525	return awsutil.Prettify(s)
37526}
37527
37528// GoString returns the string representation
37529func (s ListRoleAliasesInput) GoString() string {
37530	return s.String()
37531}
37532
37533// Validate inspects the fields of the type to determine if they are valid.
37534func (s *ListRoleAliasesInput) Validate() error {
37535	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
37536	if s.PageSize != nil && *s.PageSize < 1 {
37537		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
37538	}
37539
37540	if invalidParams.Len() > 0 {
37541		return invalidParams
37542	}
37543	return nil
37544}
37545
37546// SetAscendingOrder sets the AscendingOrder field's value.
37547func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
37548	s.AscendingOrder = &v
37549	return s
37550}
37551
37552// SetMarker sets the Marker field's value.
37553func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
37554	s.Marker = &v
37555	return s
37556}
37557
37558// SetPageSize sets the PageSize field's value.
37559func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
37560	s.PageSize = &v
37561	return s
37562}
37563
37564type ListRoleAliasesOutput struct {
37565	_ struct{} `type:"structure"`
37566
37567	// A marker used to get the next set of results.
37568	NextMarker *string `locationName:"nextMarker" type:"string"`
37569
37570	// The role aliases.
37571	RoleAliases []*string `locationName:"roleAliases" type:"list"`
37572}
37573
37574// String returns the string representation
37575func (s ListRoleAliasesOutput) String() string {
37576	return awsutil.Prettify(s)
37577}
37578
37579// GoString returns the string representation
37580func (s ListRoleAliasesOutput) GoString() string {
37581	return s.String()
37582}
37583
37584// SetNextMarker sets the NextMarker field's value.
37585func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
37586	s.NextMarker = &v
37587	return s
37588}
37589
37590// SetRoleAliases sets the RoleAliases field's value.
37591func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
37592	s.RoleAliases = v
37593	return s
37594}
37595
37596type ListScheduledAuditsInput struct {
37597	_ struct{} `type:"structure"`
37598
37599	// The maximum number of results to return at one time. The default is 25.
37600	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37601
37602	// The token for the next set of results.
37603	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37604}
37605
37606// String returns the string representation
37607func (s ListScheduledAuditsInput) String() string {
37608	return awsutil.Prettify(s)
37609}
37610
37611// GoString returns the string representation
37612func (s ListScheduledAuditsInput) GoString() string {
37613	return s.String()
37614}
37615
37616// Validate inspects the fields of the type to determine if they are valid.
37617func (s *ListScheduledAuditsInput) Validate() error {
37618	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
37619	if s.MaxResults != nil && *s.MaxResults < 1 {
37620		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37621	}
37622
37623	if invalidParams.Len() > 0 {
37624		return invalidParams
37625	}
37626	return nil
37627}
37628
37629// SetMaxResults sets the MaxResults field's value.
37630func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
37631	s.MaxResults = &v
37632	return s
37633}
37634
37635// SetNextToken sets the NextToken field's value.
37636func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
37637	s.NextToken = &v
37638	return s
37639}
37640
37641type ListScheduledAuditsOutput struct {
37642	_ struct{} `type:"structure"`
37643
37644	// A token that can be used to retrieve the next set of results, or null if
37645	// there are no additional results.
37646	NextToken *string `locationName:"nextToken" type:"string"`
37647
37648	// The list of scheduled audits.
37649	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
37650}
37651
37652// String returns the string representation
37653func (s ListScheduledAuditsOutput) String() string {
37654	return awsutil.Prettify(s)
37655}
37656
37657// GoString returns the string representation
37658func (s ListScheduledAuditsOutput) GoString() string {
37659	return s.String()
37660}
37661
37662// SetNextToken sets the NextToken field's value.
37663func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
37664	s.NextToken = &v
37665	return s
37666}
37667
37668// SetScheduledAudits sets the ScheduledAudits field's value.
37669func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
37670	s.ScheduledAudits = v
37671	return s
37672}
37673
37674type ListSecurityProfilesForTargetInput struct {
37675	_ struct{} `type:"structure"`
37676
37677	// The maximum number of results to return at one time.
37678	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37679
37680	// The token for the next set of results.
37681	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37682
37683	// If true, return child groups too.
37684	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
37685
37686	// The ARN of the target (thing group) whose attached security profiles you
37687	// want to get.
37688	//
37689	// SecurityProfileTargetArn is a required field
37690	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
37691}
37692
37693// String returns the string representation
37694func (s ListSecurityProfilesForTargetInput) String() string {
37695	return awsutil.Prettify(s)
37696}
37697
37698// GoString returns the string representation
37699func (s ListSecurityProfilesForTargetInput) GoString() string {
37700	return s.String()
37701}
37702
37703// Validate inspects the fields of the type to determine if they are valid.
37704func (s *ListSecurityProfilesForTargetInput) Validate() error {
37705	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
37706	if s.MaxResults != nil && *s.MaxResults < 1 {
37707		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37708	}
37709	if s.SecurityProfileTargetArn == nil {
37710		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
37711	}
37712
37713	if invalidParams.Len() > 0 {
37714		return invalidParams
37715	}
37716	return nil
37717}
37718
37719// SetMaxResults sets the MaxResults field's value.
37720func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
37721	s.MaxResults = &v
37722	return s
37723}
37724
37725// SetNextToken sets the NextToken field's value.
37726func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
37727	s.NextToken = &v
37728	return s
37729}
37730
37731// SetRecursive sets the Recursive field's value.
37732func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
37733	s.Recursive = &v
37734	return s
37735}
37736
37737// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
37738func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
37739	s.SecurityProfileTargetArn = &v
37740	return s
37741}
37742
37743type ListSecurityProfilesForTargetOutput struct {
37744	_ struct{} `type:"structure"`
37745
37746	// A token that can be used to retrieve the next set of results, or null if
37747	// there are no additional results.
37748	NextToken *string `locationName:"nextToken" type:"string"`
37749
37750	// A list of security profiles and their associated targets.
37751	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
37752}
37753
37754// String returns the string representation
37755func (s ListSecurityProfilesForTargetOutput) String() string {
37756	return awsutil.Prettify(s)
37757}
37758
37759// GoString returns the string representation
37760func (s ListSecurityProfilesForTargetOutput) GoString() string {
37761	return s.String()
37762}
37763
37764// SetNextToken sets the NextToken field's value.
37765func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
37766	s.NextToken = &v
37767	return s
37768}
37769
37770// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
37771func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
37772	s.SecurityProfileTargetMappings = v
37773	return s
37774}
37775
37776type ListSecurityProfilesInput struct {
37777	_ struct{} `type:"structure"`
37778
37779	// A filter to limit results to the security profiles that use the defined dimension.
37780	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
37781
37782	// The maximum number of results to return at one time.
37783	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37784
37785	// The token for the next set of results.
37786	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37787}
37788
37789// String returns the string representation
37790func (s ListSecurityProfilesInput) String() string {
37791	return awsutil.Prettify(s)
37792}
37793
37794// GoString returns the string representation
37795func (s ListSecurityProfilesInput) GoString() string {
37796	return s.String()
37797}
37798
37799// Validate inspects the fields of the type to determine if they are valid.
37800func (s *ListSecurityProfilesInput) Validate() error {
37801	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
37802	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
37803		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
37804	}
37805	if s.MaxResults != nil && *s.MaxResults < 1 {
37806		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37807	}
37808
37809	if invalidParams.Len() > 0 {
37810		return invalidParams
37811	}
37812	return nil
37813}
37814
37815// SetDimensionName sets the DimensionName field's value.
37816func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
37817	s.DimensionName = &v
37818	return s
37819}
37820
37821// SetMaxResults sets the MaxResults field's value.
37822func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
37823	s.MaxResults = &v
37824	return s
37825}
37826
37827// SetNextToken sets the NextToken field's value.
37828func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
37829	s.NextToken = &v
37830	return s
37831}
37832
37833type ListSecurityProfilesOutput struct {
37834	_ struct{} `type:"structure"`
37835
37836	// A token that can be used to retrieve the next set of results, or null if
37837	// there are no additional results.
37838	NextToken *string `locationName:"nextToken" type:"string"`
37839
37840	// A list of security profile identifiers (names and ARNs).
37841	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
37842}
37843
37844// String returns the string representation
37845func (s ListSecurityProfilesOutput) String() string {
37846	return awsutil.Prettify(s)
37847}
37848
37849// GoString returns the string representation
37850func (s ListSecurityProfilesOutput) GoString() string {
37851	return s.String()
37852}
37853
37854// SetNextToken sets the NextToken field's value.
37855func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
37856	s.NextToken = &v
37857	return s
37858}
37859
37860// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
37861func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
37862	s.SecurityProfileIdentifiers = v
37863	return s
37864}
37865
37866type ListStreamsInput struct {
37867	_ struct{} `type:"structure"`
37868
37869	// Set to true to return the list of streams in ascending order.
37870	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
37871
37872	// The maximum number of results to return at a time.
37873	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37874
37875	// A token used to get the next set of results.
37876	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37877}
37878
37879// String returns the string representation
37880func (s ListStreamsInput) String() string {
37881	return awsutil.Prettify(s)
37882}
37883
37884// GoString returns the string representation
37885func (s ListStreamsInput) GoString() string {
37886	return s.String()
37887}
37888
37889// Validate inspects the fields of the type to determine if they are valid.
37890func (s *ListStreamsInput) Validate() error {
37891	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
37892	if s.MaxResults != nil && *s.MaxResults < 1 {
37893		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37894	}
37895
37896	if invalidParams.Len() > 0 {
37897		return invalidParams
37898	}
37899	return nil
37900}
37901
37902// SetAscendingOrder sets the AscendingOrder field's value.
37903func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
37904	s.AscendingOrder = &v
37905	return s
37906}
37907
37908// SetMaxResults sets the MaxResults field's value.
37909func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
37910	s.MaxResults = &v
37911	return s
37912}
37913
37914// SetNextToken sets the NextToken field's value.
37915func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
37916	s.NextToken = &v
37917	return s
37918}
37919
37920type ListStreamsOutput struct {
37921	_ struct{} `type:"structure"`
37922
37923	// A token used to get the next set of results.
37924	NextToken *string `locationName:"nextToken" type:"string"`
37925
37926	// A list of streams.
37927	Streams []*StreamSummary `locationName:"streams" type:"list"`
37928}
37929
37930// String returns the string representation
37931func (s ListStreamsOutput) String() string {
37932	return awsutil.Prettify(s)
37933}
37934
37935// GoString returns the string representation
37936func (s ListStreamsOutput) GoString() string {
37937	return s.String()
37938}
37939
37940// SetNextToken sets the NextToken field's value.
37941func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
37942	s.NextToken = &v
37943	return s
37944}
37945
37946// SetStreams sets the Streams field's value.
37947func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
37948	s.Streams = v
37949	return s
37950}
37951
37952type ListTagsForResourceInput struct {
37953	_ struct{} `type:"structure"`
37954
37955	// The token to retrieve the next set of results.
37956	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37957
37958	// The ARN of the resource.
37959	//
37960	// ResourceArn is a required field
37961	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
37962}
37963
37964// String returns the string representation
37965func (s ListTagsForResourceInput) String() string {
37966	return awsutil.Prettify(s)
37967}
37968
37969// GoString returns the string representation
37970func (s ListTagsForResourceInput) GoString() string {
37971	return s.String()
37972}
37973
37974// Validate inspects the fields of the type to determine if they are valid.
37975func (s *ListTagsForResourceInput) Validate() error {
37976	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
37977	if s.ResourceArn == nil {
37978		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
37979	}
37980
37981	if invalidParams.Len() > 0 {
37982		return invalidParams
37983	}
37984	return nil
37985}
37986
37987// SetNextToken sets the NextToken field's value.
37988func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
37989	s.NextToken = &v
37990	return s
37991}
37992
37993// SetResourceArn sets the ResourceArn field's value.
37994func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
37995	s.ResourceArn = &v
37996	return s
37997}
37998
37999type ListTagsForResourceOutput struct {
38000	_ struct{} `type:"structure"`
38001
38002	// The token used to get the next set of results, or null if there are no additional
38003	// results.
38004	NextToken *string `locationName:"nextToken" type:"string"`
38005
38006	// The list of tags assigned to the resource.
38007	Tags []*Tag `locationName:"tags" type:"list"`
38008}
38009
38010// String returns the string representation
38011func (s ListTagsForResourceOutput) String() string {
38012	return awsutil.Prettify(s)
38013}
38014
38015// GoString returns the string representation
38016func (s ListTagsForResourceOutput) GoString() string {
38017	return s.String()
38018}
38019
38020// SetNextToken sets the NextToken field's value.
38021func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
38022	s.NextToken = &v
38023	return s
38024}
38025
38026// SetTags sets the Tags field's value.
38027func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
38028	s.Tags = v
38029	return s
38030}
38031
38032type ListTargetsForPolicyInput struct {
38033	_ struct{} `type:"structure"`
38034
38035	// A marker used to get the next set of results.
38036	Marker *string `location:"querystring" locationName:"marker" type:"string"`
38037
38038	// The maximum number of results to return at one time.
38039	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
38040
38041	// The policy name.
38042	//
38043	// PolicyName is a required field
38044	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
38045}
38046
38047// String returns the string representation
38048func (s ListTargetsForPolicyInput) String() string {
38049	return awsutil.Prettify(s)
38050}
38051
38052// GoString returns the string representation
38053func (s ListTargetsForPolicyInput) GoString() string {
38054	return s.String()
38055}
38056
38057// Validate inspects the fields of the type to determine if they are valid.
38058func (s *ListTargetsForPolicyInput) Validate() error {
38059	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
38060	if s.PageSize != nil && *s.PageSize < 1 {
38061		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
38062	}
38063	if s.PolicyName == nil {
38064		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
38065	}
38066	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
38067		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
38068	}
38069
38070	if invalidParams.Len() > 0 {
38071		return invalidParams
38072	}
38073	return nil
38074}
38075
38076// SetMarker sets the Marker field's value.
38077func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
38078	s.Marker = &v
38079	return s
38080}
38081
38082// SetPageSize sets the PageSize field's value.
38083func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
38084	s.PageSize = &v
38085	return s
38086}
38087
38088// SetPolicyName sets the PolicyName field's value.
38089func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
38090	s.PolicyName = &v
38091	return s
38092}
38093
38094type ListTargetsForPolicyOutput struct {
38095	_ struct{} `type:"structure"`
38096
38097	// A marker used to get the next set of results.
38098	NextMarker *string `locationName:"nextMarker" type:"string"`
38099
38100	// The policy targets.
38101	Targets []*string `locationName:"targets" type:"list"`
38102}
38103
38104// String returns the string representation
38105func (s ListTargetsForPolicyOutput) String() string {
38106	return awsutil.Prettify(s)
38107}
38108
38109// GoString returns the string representation
38110func (s ListTargetsForPolicyOutput) GoString() string {
38111	return s.String()
38112}
38113
38114// SetNextMarker sets the NextMarker field's value.
38115func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
38116	s.NextMarker = &v
38117	return s
38118}
38119
38120// SetTargets sets the Targets field's value.
38121func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
38122	s.Targets = v
38123	return s
38124}
38125
38126type ListTargetsForSecurityProfileInput struct {
38127	_ struct{} `type:"structure"`
38128
38129	// The maximum number of results to return at one time.
38130	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38131
38132	// The token for the next set of results.
38133	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38134
38135	// The security profile.
38136	//
38137	// SecurityProfileName is a required field
38138	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
38139}
38140
38141// String returns the string representation
38142func (s ListTargetsForSecurityProfileInput) String() string {
38143	return awsutil.Prettify(s)
38144}
38145
38146// GoString returns the string representation
38147func (s ListTargetsForSecurityProfileInput) GoString() string {
38148	return s.String()
38149}
38150
38151// Validate inspects the fields of the type to determine if they are valid.
38152func (s *ListTargetsForSecurityProfileInput) Validate() error {
38153	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
38154	if s.MaxResults != nil && *s.MaxResults < 1 {
38155		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38156	}
38157	if s.SecurityProfileName == nil {
38158		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
38159	}
38160	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
38161		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
38162	}
38163
38164	if invalidParams.Len() > 0 {
38165		return invalidParams
38166	}
38167	return nil
38168}
38169
38170// SetMaxResults sets the MaxResults field's value.
38171func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
38172	s.MaxResults = &v
38173	return s
38174}
38175
38176// SetNextToken sets the NextToken field's value.
38177func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
38178	s.NextToken = &v
38179	return s
38180}
38181
38182// SetSecurityProfileName sets the SecurityProfileName field's value.
38183func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
38184	s.SecurityProfileName = &v
38185	return s
38186}
38187
38188type ListTargetsForSecurityProfileOutput struct {
38189	_ struct{} `type:"structure"`
38190
38191	// A token that can be used to retrieve the next set of results, or null if
38192	// there are no additional results.
38193	NextToken *string `locationName:"nextToken" type:"string"`
38194
38195	// The thing groups to which the security profile is attached.
38196	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
38197}
38198
38199// String returns the string representation
38200func (s ListTargetsForSecurityProfileOutput) String() string {
38201	return awsutil.Prettify(s)
38202}
38203
38204// GoString returns the string representation
38205func (s ListTargetsForSecurityProfileOutput) GoString() string {
38206	return s.String()
38207}
38208
38209// SetNextToken sets the NextToken field's value.
38210func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
38211	s.NextToken = &v
38212	return s
38213}
38214
38215// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
38216func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
38217	s.SecurityProfileTargets = v
38218	return s
38219}
38220
38221type ListThingGroupsForThingInput struct {
38222	_ struct{} `type:"structure"`
38223
38224	// The maximum number of results to return at one time.
38225	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38226
38227	// The token to retrieve the next set of results.
38228	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38229
38230	// The thing name.
38231	//
38232	// ThingName is a required field
38233	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
38234}
38235
38236// String returns the string representation
38237func (s ListThingGroupsForThingInput) String() string {
38238	return awsutil.Prettify(s)
38239}
38240
38241// GoString returns the string representation
38242func (s ListThingGroupsForThingInput) GoString() string {
38243	return s.String()
38244}
38245
38246// Validate inspects the fields of the type to determine if they are valid.
38247func (s *ListThingGroupsForThingInput) Validate() error {
38248	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
38249	if s.MaxResults != nil && *s.MaxResults < 1 {
38250		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38251	}
38252	if s.ThingName == nil {
38253		invalidParams.Add(request.NewErrParamRequired("ThingName"))
38254	}
38255	if s.ThingName != nil && len(*s.ThingName) < 1 {
38256		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38257	}
38258
38259	if invalidParams.Len() > 0 {
38260		return invalidParams
38261	}
38262	return nil
38263}
38264
38265// SetMaxResults sets the MaxResults field's value.
38266func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
38267	s.MaxResults = &v
38268	return s
38269}
38270
38271// SetNextToken sets the NextToken field's value.
38272func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
38273	s.NextToken = &v
38274	return s
38275}
38276
38277// SetThingName sets the ThingName field's value.
38278func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
38279	s.ThingName = &v
38280	return s
38281}
38282
38283type ListThingGroupsForThingOutput struct {
38284	_ struct{} `type:"structure"`
38285
38286	// The token used to get the next set of results, or null if there are no additional
38287	// results.
38288	NextToken *string `locationName:"nextToken" type:"string"`
38289
38290	// The thing groups.
38291	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
38292}
38293
38294// String returns the string representation
38295func (s ListThingGroupsForThingOutput) String() string {
38296	return awsutil.Prettify(s)
38297}
38298
38299// GoString returns the string representation
38300func (s ListThingGroupsForThingOutput) GoString() string {
38301	return s.String()
38302}
38303
38304// SetNextToken sets the NextToken field's value.
38305func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
38306	s.NextToken = &v
38307	return s
38308}
38309
38310// SetThingGroups sets the ThingGroups field's value.
38311func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
38312	s.ThingGroups = v
38313	return s
38314}
38315
38316type ListThingGroupsInput struct {
38317	_ struct{} `type:"structure"`
38318
38319	// The maximum number of results to return at one time.
38320	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38321
38322	// A filter that limits the results to those with the specified name prefix.
38323	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
38324
38325	// The token to retrieve the next set of results.
38326	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38327
38328	// A filter that limits the results to those with the specified parent group.
38329	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
38330
38331	// If true, return child groups as well.
38332	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
38333}
38334
38335// String returns the string representation
38336func (s ListThingGroupsInput) String() string {
38337	return awsutil.Prettify(s)
38338}
38339
38340// GoString returns the string representation
38341func (s ListThingGroupsInput) GoString() string {
38342	return s.String()
38343}
38344
38345// Validate inspects the fields of the type to determine if they are valid.
38346func (s *ListThingGroupsInput) Validate() error {
38347	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
38348	if s.MaxResults != nil && *s.MaxResults < 1 {
38349		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38350	}
38351	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
38352		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
38353	}
38354	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
38355		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
38356	}
38357
38358	if invalidParams.Len() > 0 {
38359		return invalidParams
38360	}
38361	return nil
38362}
38363
38364// SetMaxResults sets the MaxResults field's value.
38365func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
38366	s.MaxResults = &v
38367	return s
38368}
38369
38370// SetNamePrefixFilter sets the NamePrefixFilter field's value.
38371func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
38372	s.NamePrefixFilter = &v
38373	return s
38374}
38375
38376// SetNextToken sets the NextToken field's value.
38377func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
38378	s.NextToken = &v
38379	return s
38380}
38381
38382// SetParentGroup sets the ParentGroup field's value.
38383func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
38384	s.ParentGroup = &v
38385	return s
38386}
38387
38388// SetRecursive sets the Recursive field's value.
38389func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
38390	s.Recursive = &v
38391	return s
38392}
38393
38394type ListThingGroupsOutput struct {
38395	_ struct{} `type:"structure"`
38396
38397	// The token used to get the next set of results, or null if there are no additional
38398	// results.
38399	NextToken *string `locationName:"nextToken" type:"string"`
38400
38401	// The thing groups.
38402	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
38403}
38404
38405// String returns the string representation
38406func (s ListThingGroupsOutput) String() string {
38407	return awsutil.Prettify(s)
38408}
38409
38410// GoString returns the string representation
38411func (s ListThingGroupsOutput) GoString() string {
38412	return s.String()
38413}
38414
38415// SetNextToken sets the NextToken field's value.
38416func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
38417	s.NextToken = &v
38418	return s
38419}
38420
38421// SetThingGroups sets the ThingGroups field's value.
38422func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
38423	s.ThingGroups = v
38424	return s
38425}
38426
38427// The input for the ListThingPrincipal operation.
38428type ListThingPrincipalsInput struct {
38429	_ struct{} `type:"structure"`
38430
38431	// The name of the thing.
38432	//
38433	// ThingName is a required field
38434	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
38435}
38436
38437// String returns the string representation
38438func (s ListThingPrincipalsInput) String() string {
38439	return awsutil.Prettify(s)
38440}
38441
38442// GoString returns the string representation
38443func (s ListThingPrincipalsInput) GoString() string {
38444	return s.String()
38445}
38446
38447// Validate inspects the fields of the type to determine if they are valid.
38448func (s *ListThingPrincipalsInput) Validate() error {
38449	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
38450	if s.ThingName == nil {
38451		invalidParams.Add(request.NewErrParamRequired("ThingName"))
38452	}
38453	if s.ThingName != nil && len(*s.ThingName) < 1 {
38454		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38455	}
38456
38457	if invalidParams.Len() > 0 {
38458		return invalidParams
38459	}
38460	return nil
38461}
38462
38463// SetThingName sets the ThingName field's value.
38464func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
38465	s.ThingName = &v
38466	return s
38467}
38468
38469// The output from the ListThingPrincipals operation.
38470type ListThingPrincipalsOutput struct {
38471	_ struct{} `type:"structure"`
38472
38473	// The principals associated with the thing.
38474	Principals []*string `locationName:"principals" type:"list"`
38475}
38476
38477// String returns the string representation
38478func (s ListThingPrincipalsOutput) String() string {
38479	return awsutil.Prettify(s)
38480}
38481
38482// GoString returns the string representation
38483func (s ListThingPrincipalsOutput) GoString() string {
38484	return s.String()
38485}
38486
38487// SetPrincipals sets the Principals field's value.
38488func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
38489	s.Principals = v
38490	return s
38491}
38492
38493type ListThingRegistrationTaskReportsInput struct {
38494	_ struct{} `type:"structure"`
38495
38496	// The maximum number of results to return per request.
38497	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38498
38499	// The token to retrieve the next set of results.
38500	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38501
38502	// The type of task report.
38503	//
38504	// ReportType is a required field
38505	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
38506
38507	// The id of the task.
38508	//
38509	// TaskId is a required field
38510	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
38511}
38512
38513// String returns the string representation
38514func (s ListThingRegistrationTaskReportsInput) String() string {
38515	return awsutil.Prettify(s)
38516}
38517
38518// GoString returns the string representation
38519func (s ListThingRegistrationTaskReportsInput) GoString() string {
38520	return s.String()
38521}
38522
38523// Validate inspects the fields of the type to determine if they are valid.
38524func (s *ListThingRegistrationTaskReportsInput) Validate() error {
38525	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
38526	if s.MaxResults != nil && *s.MaxResults < 1 {
38527		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38528	}
38529	if s.ReportType == nil {
38530		invalidParams.Add(request.NewErrParamRequired("ReportType"))
38531	}
38532	if s.TaskId == nil {
38533		invalidParams.Add(request.NewErrParamRequired("TaskId"))
38534	}
38535	if s.TaskId != nil && len(*s.TaskId) < 1 {
38536		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
38537	}
38538
38539	if invalidParams.Len() > 0 {
38540		return invalidParams
38541	}
38542	return nil
38543}
38544
38545// SetMaxResults sets the MaxResults field's value.
38546func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
38547	s.MaxResults = &v
38548	return s
38549}
38550
38551// SetNextToken sets the NextToken field's value.
38552func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
38553	s.NextToken = &v
38554	return s
38555}
38556
38557// SetReportType sets the ReportType field's value.
38558func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
38559	s.ReportType = &v
38560	return s
38561}
38562
38563// SetTaskId sets the TaskId field's value.
38564func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
38565	s.TaskId = &v
38566	return s
38567}
38568
38569type ListThingRegistrationTaskReportsOutput struct {
38570	_ struct{} `type:"structure"`
38571
38572	// The token used to get the next set of results, or null if there are no additional
38573	// results.
38574	NextToken *string `locationName:"nextToken" type:"string"`
38575
38576	// The type of task report.
38577	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
38578
38579	// Links to the task resources.
38580	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
38581}
38582
38583// String returns the string representation
38584func (s ListThingRegistrationTaskReportsOutput) String() string {
38585	return awsutil.Prettify(s)
38586}
38587
38588// GoString returns the string representation
38589func (s ListThingRegistrationTaskReportsOutput) GoString() string {
38590	return s.String()
38591}
38592
38593// SetNextToken sets the NextToken field's value.
38594func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
38595	s.NextToken = &v
38596	return s
38597}
38598
38599// SetReportType sets the ReportType field's value.
38600func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
38601	s.ReportType = &v
38602	return s
38603}
38604
38605// SetResourceLinks sets the ResourceLinks field's value.
38606func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
38607	s.ResourceLinks = v
38608	return s
38609}
38610
38611type ListThingRegistrationTasksInput struct {
38612	_ struct{} `type:"structure"`
38613
38614	// The maximum number of results to return at one time.
38615	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38616
38617	// The token to retrieve the next set of results.
38618	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38619
38620	// The status of the bulk thing provisioning task.
38621	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
38622}
38623
38624// String returns the string representation
38625func (s ListThingRegistrationTasksInput) String() string {
38626	return awsutil.Prettify(s)
38627}
38628
38629// GoString returns the string representation
38630func (s ListThingRegistrationTasksInput) GoString() string {
38631	return s.String()
38632}
38633
38634// Validate inspects the fields of the type to determine if they are valid.
38635func (s *ListThingRegistrationTasksInput) Validate() error {
38636	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
38637	if s.MaxResults != nil && *s.MaxResults < 1 {
38638		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38639	}
38640
38641	if invalidParams.Len() > 0 {
38642		return invalidParams
38643	}
38644	return nil
38645}
38646
38647// SetMaxResults sets the MaxResults field's value.
38648func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
38649	s.MaxResults = &v
38650	return s
38651}
38652
38653// SetNextToken sets the NextToken field's value.
38654func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
38655	s.NextToken = &v
38656	return s
38657}
38658
38659// SetStatus sets the Status field's value.
38660func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
38661	s.Status = &v
38662	return s
38663}
38664
38665type ListThingRegistrationTasksOutput struct {
38666	_ struct{} `type:"structure"`
38667
38668	// The token used to get the next set of results, or null if there are no additional
38669	// results.
38670	NextToken *string `locationName:"nextToken" type:"string"`
38671
38672	// A list of bulk thing provisioning task IDs.
38673	TaskIds []*string `locationName:"taskIds" type:"list"`
38674}
38675
38676// String returns the string representation
38677func (s ListThingRegistrationTasksOutput) String() string {
38678	return awsutil.Prettify(s)
38679}
38680
38681// GoString returns the string representation
38682func (s ListThingRegistrationTasksOutput) GoString() string {
38683	return s.String()
38684}
38685
38686// SetNextToken sets the NextToken field's value.
38687func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
38688	s.NextToken = &v
38689	return s
38690}
38691
38692// SetTaskIds sets the TaskIds field's value.
38693func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
38694	s.TaskIds = v
38695	return s
38696}
38697
38698// The input for the ListThingTypes operation.
38699type ListThingTypesInput struct {
38700	_ struct{} `type:"structure"`
38701
38702	// The maximum number of results to return in this operation.
38703	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38704
38705	// The token to retrieve the next set of results.
38706	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38707
38708	// The name of the thing type.
38709	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
38710}
38711
38712// String returns the string representation
38713func (s ListThingTypesInput) String() string {
38714	return awsutil.Prettify(s)
38715}
38716
38717// GoString returns the string representation
38718func (s ListThingTypesInput) GoString() string {
38719	return s.String()
38720}
38721
38722// Validate inspects the fields of the type to determine if they are valid.
38723func (s *ListThingTypesInput) Validate() error {
38724	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
38725	if s.MaxResults != nil && *s.MaxResults < 1 {
38726		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38727	}
38728	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
38729		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
38730	}
38731
38732	if invalidParams.Len() > 0 {
38733		return invalidParams
38734	}
38735	return nil
38736}
38737
38738// SetMaxResults sets the MaxResults field's value.
38739func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
38740	s.MaxResults = &v
38741	return s
38742}
38743
38744// SetNextToken sets the NextToken field's value.
38745func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
38746	s.NextToken = &v
38747	return s
38748}
38749
38750// SetThingTypeName sets the ThingTypeName field's value.
38751func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
38752	s.ThingTypeName = &v
38753	return s
38754}
38755
38756// The output for the ListThingTypes operation.
38757type ListThingTypesOutput struct {
38758	_ struct{} `type:"structure"`
38759
38760	// The token for the next set of results, or null if there are no additional
38761	// results.
38762	NextToken *string `locationName:"nextToken" type:"string"`
38763
38764	// The thing types.
38765	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
38766}
38767
38768// String returns the string representation
38769func (s ListThingTypesOutput) String() string {
38770	return awsutil.Prettify(s)
38771}
38772
38773// GoString returns the string representation
38774func (s ListThingTypesOutput) GoString() string {
38775	return s.String()
38776}
38777
38778// SetNextToken sets the NextToken field's value.
38779func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
38780	s.NextToken = &v
38781	return s
38782}
38783
38784// SetThingTypes sets the ThingTypes field's value.
38785func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
38786	s.ThingTypes = v
38787	return s
38788}
38789
38790type ListThingsInBillingGroupInput struct {
38791	_ struct{} `type:"structure"`
38792
38793	// The name of the billing group.
38794	//
38795	// BillingGroupName is a required field
38796	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
38797
38798	// The maximum number of results to return per request.
38799	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38800
38801	// The token to retrieve the next set of results.
38802	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38803}
38804
38805// String returns the string representation
38806func (s ListThingsInBillingGroupInput) String() string {
38807	return awsutil.Prettify(s)
38808}
38809
38810// GoString returns the string representation
38811func (s ListThingsInBillingGroupInput) GoString() string {
38812	return s.String()
38813}
38814
38815// Validate inspects the fields of the type to determine if they are valid.
38816func (s *ListThingsInBillingGroupInput) Validate() error {
38817	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
38818	if s.BillingGroupName == nil {
38819		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
38820	}
38821	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
38822		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
38823	}
38824	if s.MaxResults != nil && *s.MaxResults < 1 {
38825		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38826	}
38827
38828	if invalidParams.Len() > 0 {
38829		return invalidParams
38830	}
38831	return nil
38832}
38833
38834// SetBillingGroupName sets the BillingGroupName field's value.
38835func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
38836	s.BillingGroupName = &v
38837	return s
38838}
38839
38840// SetMaxResults sets the MaxResults field's value.
38841func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
38842	s.MaxResults = &v
38843	return s
38844}
38845
38846// SetNextToken sets the NextToken field's value.
38847func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
38848	s.NextToken = &v
38849	return s
38850}
38851
38852type ListThingsInBillingGroupOutput struct {
38853	_ struct{} `type:"structure"`
38854
38855	// The token used to get the next set of results, or null if there are no additional
38856	// results.
38857	NextToken *string `locationName:"nextToken" type:"string"`
38858
38859	// A list of things in the billing group.
38860	Things []*string `locationName:"things" type:"list"`
38861}
38862
38863// String returns the string representation
38864func (s ListThingsInBillingGroupOutput) String() string {
38865	return awsutil.Prettify(s)
38866}
38867
38868// GoString returns the string representation
38869func (s ListThingsInBillingGroupOutput) GoString() string {
38870	return s.String()
38871}
38872
38873// SetNextToken sets the NextToken field's value.
38874func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
38875	s.NextToken = &v
38876	return s
38877}
38878
38879// SetThings sets the Things field's value.
38880func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
38881	s.Things = v
38882	return s
38883}
38884
38885type ListThingsInThingGroupInput struct {
38886	_ struct{} `type:"structure"`
38887
38888	// The maximum number of results to return at one time.
38889	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38890
38891	// The token to retrieve the next set of results.
38892	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38893
38894	// When true, list things in this thing group and in all child groups as well.
38895	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
38896
38897	// The thing group name.
38898	//
38899	// ThingGroupName is a required field
38900	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
38901}
38902
38903// String returns the string representation
38904func (s ListThingsInThingGroupInput) String() string {
38905	return awsutil.Prettify(s)
38906}
38907
38908// GoString returns the string representation
38909func (s ListThingsInThingGroupInput) GoString() string {
38910	return s.String()
38911}
38912
38913// Validate inspects the fields of the type to determine if they are valid.
38914func (s *ListThingsInThingGroupInput) Validate() error {
38915	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
38916	if s.MaxResults != nil && *s.MaxResults < 1 {
38917		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38918	}
38919	if s.ThingGroupName == nil {
38920		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
38921	}
38922	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
38923		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
38924	}
38925
38926	if invalidParams.Len() > 0 {
38927		return invalidParams
38928	}
38929	return nil
38930}
38931
38932// SetMaxResults sets the MaxResults field's value.
38933func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
38934	s.MaxResults = &v
38935	return s
38936}
38937
38938// SetNextToken sets the NextToken field's value.
38939func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
38940	s.NextToken = &v
38941	return s
38942}
38943
38944// SetRecursive sets the Recursive field's value.
38945func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
38946	s.Recursive = &v
38947	return s
38948}
38949
38950// SetThingGroupName sets the ThingGroupName field's value.
38951func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
38952	s.ThingGroupName = &v
38953	return s
38954}
38955
38956type ListThingsInThingGroupOutput struct {
38957	_ struct{} `type:"structure"`
38958
38959	// The token used to get the next set of results, or null if there are no additional
38960	// results.
38961	NextToken *string `locationName:"nextToken" type:"string"`
38962
38963	// The things in the specified thing group.
38964	Things []*string `locationName:"things" type:"list"`
38965}
38966
38967// String returns the string representation
38968func (s ListThingsInThingGroupOutput) String() string {
38969	return awsutil.Prettify(s)
38970}
38971
38972// GoString returns the string representation
38973func (s ListThingsInThingGroupOutput) GoString() string {
38974	return s.String()
38975}
38976
38977// SetNextToken sets the NextToken field's value.
38978func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
38979	s.NextToken = &v
38980	return s
38981}
38982
38983// SetThings sets the Things field's value.
38984func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
38985	s.Things = v
38986	return s
38987}
38988
38989// The input for the ListThings operation.
38990type ListThingsInput struct {
38991	_ struct{} `type:"structure"`
38992
38993	// The attribute name used to search for things.
38994	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
38995
38996	// The attribute value used to search for things.
38997	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
38998
38999	// The maximum number of results to return in this operation.
39000	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
39001
39002	// The token to retrieve the next set of results.
39003	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
39004
39005	// The name of the thing type used to search for things.
39006	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
39007}
39008
39009// String returns the string representation
39010func (s ListThingsInput) String() string {
39011	return awsutil.Prettify(s)
39012}
39013
39014// GoString returns the string representation
39015func (s ListThingsInput) GoString() string {
39016	return s.String()
39017}
39018
39019// Validate inspects the fields of the type to determine if they are valid.
39020func (s *ListThingsInput) Validate() error {
39021	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
39022	if s.MaxResults != nil && *s.MaxResults < 1 {
39023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
39024	}
39025	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
39026		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
39027	}
39028
39029	if invalidParams.Len() > 0 {
39030		return invalidParams
39031	}
39032	return nil
39033}
39034
39035// SetAttributeName sets the AttributeName field's value.
39036func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
39037	s.AttributeName = &v
39038	return s
39039}
39040
39041// SetAttributeValue sets the AttributeValue field's value.
39042func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
39043	s.AttributeValue = &v
39044	return s
39045}
39046
39047// SetMaxResults sets the MaxResults field's value.
39048func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
39049	s.MaxResults = &v
39050	return s
39051}
39052
39053// SetNextToken sets the NextToken field's value.
39054func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
39055	s.NextToken = &v
39056	return s
39057}
39058
39059// SetThingTypeName sets the ThingTypeName field's value.
39060func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
39061	s.ThingTypeName = &v
39062	return s
39063}
39064
39065// The output from the ListThings operation.
39066type ListThingsOutput struct {
39067	_ struct{} `type:"structure"`
39068
39069	// The token used to get the next set of results, or null if there are no additional
39070	// results.
39071	NextToken *string `locationName:"nextToken" type:"string"`
39072
39073	// The things.
39074	Things []*ThingAttribute `locationName:"things" type:"list"`
39075}
39076
39077// String returns the string representation
39078func (s ListThingsOutput) String() string {
39079	return awsutil.Prettify(s)
39080}
39081
39082// GoString returns the string representation
39083func (s ListThingsOutput) GoString() string {
39084	return s.String()
39085}
39086
39087// SetNextToken sets the NextToken field's value.
39088func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
39089	s.NextToken = &v
39090	return s
39091}
39092
39093// SetThings sets the Things field's value.
39094func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
39095	s.Things = v
39096	return s
39097}
39098
39099type ListTopicRuleDestinationsInput struct {
39100	_ struct{} `type:"structure"`
39101
39102	// The maximum number of results to return at one time.
39103	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
39104
39105	// The token to retrieve the next set of results.
39106	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
39107}
39108
39109// String returns the string representation
39110func (s ListTopicRuleDestinationsInput) String() string {
39111	return awsutil.Prettify(s)
39112}
39113
39114// GoString returns the string representation
39115func (s ListTopicRuleDestinationsInput) GoString() string {
39116	return s.String()
39117}
39118
39119// Validate inspects the fields of the type to determine if they are valid.
39120func (s *ListTopicRuleDestinationsInput) Validate() error {
39121	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
39122	if s.MaxResults != nil && *s.MaxResults < 1 {
39123		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
39124	}
39125
39126	if invalidParams.Len() > 0 {
39127		return invalidParams
39128	}
39129	return nil
39130}
39131
39132// SetMaxResults sets the MaxResults field's value.
39133func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
39134	s.MaxResults = &v
39135	return s
39136}
39137
39138// SetNextToken sets the NextToken field's value.
39139func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
39140	s.NextToken = &v
39141	return s
39142}
39143
39144type ListTopicRuleDestinationsOutput struct {
39145	_ struct{} `type:"structure"`
39146
39147	// Information about a topic rule destination.
39148	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
39149
39150	// The token to retrieve the next set of results.
39151	NextToken *string `locationName:"nextToken" type:"string"`
39152}
39153
39154// String returns the string representation
39155func (s ListTopicRuleDestinationsOutput) String() string {
39156	return awsutil.Prettify(s)
39157}
39158
39159// GoString returns the string representation
39160func (s ListTopicRuleDestinationsOutput) GoString() string {
39161	return s.String()
39162}
39163
39164// SetDestinationSummaries sets the DestinationSummaries field's value.
39165func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
39166	s.DestinationSummaries = v
39167	return s
39168}
39169
39170// SetNextToken sets the NextToken field's value.
39171func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
39172	s.NextToken = &v
39173	return s
39174}
39175
39176// The input for the ListTopicRules operation.
39177type ListTopicRulesInput struct {
39178	_ struct{} `type:"structure"`
39179
39180	// The maximum number of results to return.
39181	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
39182
39183	// A token used to retrieve the next value.
39184	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
39185
39186	// Specifies whether the rule is disabled.
39187	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
39188
39189	// The topic.
39190	Topic *string `location:"querystring" locationName:"topic" type:"string"`
39191}
39192
39193// String returns the string representation
39194func (s ListTopicRulesInput) String() string {
39195	return awsutil.Prettify(s)
39196}
39197
39198// GoString returns the string representation
39199func (s ListTopicRulesInput) GoString() string {
39200	return s.String()
39201}
39202
39203// Validate inspects the fields of the type to determine if they are valid.
39204func (s *ListTopicRulesInput) Validate() error {
39205	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
39206	if s.MaxResults != nil && *s.MaxResults < 1 {
39207		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
39208	}
39209
39210	if invalidParams.Len() > 0 {
39211		return invalidParams
39212	}
39213	return nil
39214}
39215
39216// SetMaxResults sets the MaxResults field's value.
39217func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
39218	s.MaxResults = &v
39219	return s
39220}
39221
39222// SetNextToken sets the NextToken field's value.
39223func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
39224	s.NextToken = &v
39225	return s
39226}
39227
39228// SetRuleDisabled sets the RuleDisabled field's value.
39229func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
39230	s.RuleDisabled = &v
39231	return s
39232}
39233
39234// SetTopic sets the Topic field's value.
39235func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
39236	s.Topic = &v
39237	return s
39238}
39239
39240// The output from the ListTopicRules operation.
39241type ListTopicRulesOutput struct {
39242	_ struct{} `type:"structure"`
39243
39244	// A token used to retrieve the next value.
39245	NextToken *string `locationName:"nextToken" type:"string"`
39246
39247	// The rules.
39248	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
39249}
39250
39251// String returns the string representation
39252func (s ListTopicRulesOutput) String() string {
39253	return awsutil.Prettify(s)
39254}
39255
39256// GoString returns the string representation
39257func (s ListTopicRulesOutput) GoString() string {
39258	return s.String()
39259}
39260
39261// SetNextToken sets the NextToken field's value.
39262func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
39263	s.NextToken = &v
39264	return s
39265}
39266
39267// SetRules sets the Rules field's value.
39268func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
39269	s.Rules = v
39270	return s
39271}
39272
39273type ListV2LoggingLevelsInput struct {
39274	_ struct{} `type:"structure"`
39275
39276	// The maximum number of results to return at one time.
39277	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
39278
39279	// The token used to get the next set of results, or null if there are no additional
39280	// results.
39281	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
39282
39283	// The type of resource for which you are configuring logging. Must be THING_Group.
39284	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
39285}
39286
39287// String returns the string representation
39288func (s ListV2LoggingLevelsInput) String() string {
39289	return awsutil.Prettify(s)
39290}
39291
39292// GoString returns the string representation
39293func (s ListV2LoggingLevelsInput) GoString() string {
39294	return s.String()
39295}
39296
39297// Validate inspects the fields of the type to determine if they are valid.
39298func (s *ListV2LoggingLevelsInput) Validate() error {
39299	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
39300	if s.MaxResults != nil && *s.MaxResults < 1 {
39301		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
39302	}
39303
39304	if invalidParams.Len() > 0 {
39305		return invalidParams
39306	}
39307	return nil
39308}
39309
39310// SetMaxResults sets the MaxResults field's value.
39311func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
39312	s.MaxResults = &v
39313	return s
39314}
39315
39316// SetNextToken sets the NextToken field's value.
39317func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
39318	s.NextToken = &v
39319	return s
39320}
39321
39322// SetTargetType sets the TargetType field's value.
39323func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
39324	s.TargetType = &v
39325	return s
39326}
39327
39328type ListV2LoggingLevelsOutput struct {
39329	_ struct{} `type:"structure"`
39330
39331	// The logging configuration for a target.
39332	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
39333
39334	// The token used to get the next set of results, or null if there are no additional
39335	// results.
39336	NextToken *string `locationName:"nextToken" type:"string"`
39337}
39338
39339// String returns the string representation
39340func (s ListV2LoggingLevelsOutput) String() string {
39341	return awsutil.Prettify(s)
39342}
39343
39344// GoString returns the string representation
39345func (s ListV2LoggingLevelsOutput) GoString() string {
39346	return s.String()
39347}
39348
39349// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
39350func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
39351	s.LogTargetConfigurations = v
39352	return s
39353}
39354
39355// SetNextToken sets the NextToken field's value.
39356func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
39357	s.NextToken = &v
39358	return s
39359}
39360
39361type ListViolationEventsInput struct {
39362	_ struct{} `type:"structure"`
39363
39364	// The end time for the alerts to be listed.
39365	//
39366	// EndTime is a required field
39367	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
39368
39369	// The maximum number of results to return at one time.
39370	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
39371
39372	// The token for the next set of results.
39373	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
39374
39375	// A filter to limit results to those alerts generated by the specified security
39376	// profile.
39377	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
39378
39379	// The start time for the alerts to be listed.
39380	//
39381	// StartTime is a required field
39382	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
39383
39384	// A filter to limit results to those alerts caused by the specified thing.
39385	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
39386}
39387
39388// String returns the string representation
39389func (s ListViolationEventsInput) String() string {
39390	return awsutil.Prettify(s)
39391}
39392
39393// GoString returns the string representation
39394func (s ListViolationEventsInput) GoString() string {
39395	return s.String()
39396}
39397
39398// Validate inspects the fields of the type to determine if they are valid.
39399func (s *ListViolationEventsInput) Validate() error {
39400	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
39401	if s.EndTime == nil {
39402		invalidParams.Add(request.NewErrParamRequired("EndTime"))
39403	}
39404	if s.MaxResults != nil && *s.MaxResults < 1 {
39405		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
39406	}
39407	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
39408		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
39409	}
39410	if s.StartTime == nil {
39411		invalidParams.Add(request.NewErrParamRequired("StartTime"))
39412	}
39413	if s.ThingName != nil && len(*s.ThingName) < 1 {
39414		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
39415	}
39416
39417	if invalidParams.Len() > 0 {
39418		return invalidParams
39419	}
39420	return nil
39421}
39422
39423// SetEndTime sets the EndTime field's value.
39424func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
39425	s.EndTime = &v
39426	return s
39427}
39428
39429// SetMaxResults sets the MaxResults field's value.
39430func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
39431	s.MaxResults = &v
39432	return s
39433}
39434
39435// SetNextToken sets the NextToken field's value.
39436func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
39437	s.NextToken = &v
39438	return s
39439}
39440
39441// SetSecurityProfileName sets the SecurityProfileName field's value.
39442func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
39443	s.SecurityProfileName = &v
39444	return s
39445}
39446
39447// SetStartTime sets the StartTime field's value.
39448func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
39449	s.StartTime = &v
39450	return s
39451}
39452
39453// SetThingName sets the ThingName field's value.
39454func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
39455	s.ThingName = &v
39456	return s
39457}
39458
39459type ListViolationEventsOutput struct {
39460	_ struct{} `type:"structure"`
39461
39462	// A token that can be used to retrieve the next set of results, or null if
39463	// there are no additional results.
39464	NextToken *string `locationName:"nextToken" type:"string"`
39465
39466	// The security profile violation alerts issued for this account during the
39467	// given time period, potentially filtered by security profile, behavior violated,
39468	// or thing (device) violating.
39469	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
39470}
39471
39472// String returns the string representation
39473func (s ListViolationEventsOutput) String() string {
39474	return awsutil.Prettify(s)
39475}
39476
39477// GoString returns the string representation
39478func (s ListViolationEventsOutput) GoString() string {
39479	return s.String()
39480}
39481
39482// SetNextToken sets the NextToken field's value.
39483func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
39484	s.NextToken = &v
39485	return s
39486}
39487
39488// SetViolationEvents sets the ViolationEvents field's value.
39489func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
39490	s.ViolationEvents = v
39491	return s
39492}
39493
39494// A log target.
39495type LogTarget struct {
39496	_ struct{} `type:"structure"`
39497
39498	// The target name.
39499	TargetName *string `locationName:"targetName" type:"string"`
39500
39501	// The target type.
39502	//
39503	// TargetType is a required field
39504	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
39505}
39506
39507// String returns the string representation
39508func (s LogTarget) String() string {
39509	return awsutil.Prettify(s)
39510}
39511
39512// GoString returns the string representation
39513func (s LogTarget) GoString() string {
39514	return s.String()
39515}
39516
39517// Validate inspects the fields of the type to determine if they are valid.
39518func (s *LogTarget) Validate() error {
39519	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
39520	if s.TargetType == nil {
39521		invalidParams.Add(request.NewErrParamRequired("TargetType"))
39522	}
39523
39524	if invalidParams.Len() > 0 {
39525		return invalidParams
39526	}
39527	return nil
39528}
39529
39530// SetTargetName sets the TargetName field's value.
39531func (s *LogTarget) SetTargetName(v string) *LogTarget {
39532	s.TargetName = &v
39533	return s
39534}
39535
39536// SetTargetType sets the TargetType field's value.
39537func (s *LogTarget) SetTargetType(v string) *LogTarget {
39538	s.TargetType = &v
39539	return s
39540}
39541
39542// The target configuration.
39543type LogTargetConfiguration struct {
39544	_ struct{} `type:"structure"`
39545
39546	// The logging level.
39547	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
39548
39549	// A log target
39550	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
39551}
39552
39553// String returns the string representation
39554func (s LogTargetConfiguration) String() string {
39555	return awsutil.Prettify(s)
39556}
39557
39558// GoString returns the string representation
39559func (s LogTargetConfiguration) GoString() string {
39560	return s.String()
39561}
39562
39563// SetLogLevel sets the LogLevel field's value.
39564func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
39565	s.LogLevel = &v
39566	return s
39567}
39568
39569// SetLogTarget sets the LogTarget field's value.
39570func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
39571	s.LogTarget = v
39572	return s
39573}
39574
39575// Describes the logging options payload.
39576type LoggingOptionsPayload struct {
39577	_ struct{} `type:"structure"`
39578
39579	// The log level.
39580	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
39581
39582	// The ARN of the IAM role that grants access.
39583	//
39584	// RoleArn is a required field
39585	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
39586}
39587
39588// String returns the string representation
39589func (s LoggingOptionsPayload) String() string {
39590	return awsutil.Prettify(s)
39591}
39592
39593// GoString returns the string representation
39594func (s LoggingOptionsPayload) GoString() string {
39595	return s.String()
39596}
39597
39598// Validate inspects the fields of the type to determine if they are valid.
39599func (s *LoggingOptionsPayload) Validate() error {
39600	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
39601	if s.RoleArn == nil {
39602		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
39603	}
39604
39605	if invalidParams.Len() > 0 {
39606		return invalidParams
39607	}
39608	return nil
39609}
39610
39611// SetLogLevel sets the LogLevel field's value.
39612func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
39613	s.LogLevel = &v
39614	return s
39615}
39616
39617// SetRoleArn sets the RoleArn field's value.
39618func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
39619	s.RoleArn = &v
39620	return s
39621}
39622
39623// The policy documentation is not valid.
39624type MalformedPolicyException struct {
39625	_            struct{}                  `type:"structure"`
39626	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39627
39628	// The message for the exception.
39629	Message_ *string `locationName:"message" type:"string"`
39630}
39631
39632// String returns the string representation
39633func (s MalformedPolicyException) String() string {
39634	return awsutil.Prettify(s)
39635}
39636
39637// GoString returns the string representation
39638func (s MalformedPolicyException) GoString() string {
39639	return s.String()
39640}
39641
39642func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
39643	return &MalformedPolicyException{
39644		RespMetadata: v,
39645	}
39646}
39647
39648// Code returns the exception type name.
39649func (s *MalformedPolicyException) Code() string {
39650	return "MalformedPolicyException"
39651}
39652
39653// Message returns the exception's message.
39654func (s *MalformedPolicyException) Message() string {
39655	if s.Message_ != nil {
39656		return *s.Message_
39657	}
39658	return ""
39659}
39660
39661// OrigErr always returns nil, satisfies awserr.Error interface.
39662func (s *MalformedPolicyException) OrigErr() error {
39663	return nil
39664}
39665
39666func (s *MalformedPolicyException) Error() string {
39667	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39668}
39669
39670// Status code returns the HTTP status code for the request's response error.
39671func (s *MalformedPolicyException) StatusCode() int {
39672	return s.RespMetadata.StatusCode
39673}
39674
39675// RequestID returns the service's response RequestID for request.
39676func (s *MalformedPolicyException) RequestID() string {
39677	return s.RespMetadata.RequestID
39678}
39679
39680// The dimension of a metric.
39681type MetricDimension struct {
39682	_ struct{} `type:"structure"`
39683
39684	// A unique identifier for the dimension.
39685	//
39686	// DimensionName is a required field
39687	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
39688
39689	// Defines how the dimensionValues of a dimension are interpreted. For example,
39690	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
39691	// only if its topic matches one of the topic filters. With NOT_IN operator,
39692	// a message will be counted only if it doesn't match any of the topic filters.
39693	// The operator is optional: if it's not provided (is null), it will be interpreted
39694	// as IN.
39695	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
39696}
39697
39698// String returns the string representation
39699func (s MetricDimension) String() string {
39700	return awsutil.Prettify(s)
39701}
39702
39703// GoString returns the string representation
39704func (s MetricDimension) GoString() string {
39705	return s.String()
39706}
39707
39708// Validate inspects the fields of the type to determine if they are valid.
39709func (s *MetricDimension) Validate() error {
39710	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
39711	if s.DimensionName == nil {
39712		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
39713	}
39714	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
39715		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
39716	}
39717
39718	if invalidParams.Len() > 0 {
39719		return invalidParams
39720	}
39721	return nil
39722}
39723
39724// SetDimensionName sets the DimensionName field's value.
39725func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
39726	s.DimensionName = &v
39727	return s
39728}
39729
39730// SetOperator sets the Operator field's value.
39731func (s *MetricDimension) SetOperator(v string) *MetricDimension {
39732	s.Operator = &v
39733	return s
39734}
39735
39736// The metric you want to retain. Dimensions are optional.
39737type MetricToRetain struct {
39738	_ struct{} `type:"structure"`
39739
39740	// What is measured by the behavior.
39741	//
39742	// Metric is a required field
39743	Metric *string `locationName:"metric" type:"string" required:"true"`
39744
39745	// The dimension of a metric.
39746	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
39747}
39748
39749// String returns the string representation
39750func (s MetricToRetain) String() string {
39751	return awsutil.Prettify(s)
39752}
39753
39754// GoString returns the string representation
39755func (s MetricToRetain) GoString() string {
39756	return s.String()
39757}
39758
39759// Validate inspects the fields of the type to determine if they are valid.
39760func (s *MetricToRetain) Validate() error {
39761	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
39762	if s.Metric == nil {
39763		invalidParams.Add(request.NewErrParamRequired("Metric"))
39764	}
39765	if s.MetricDimension != nil {
39766		if err := s.MetricDimension.Validate(); err != nil {
39767			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
39768		}
39769	}
39770
39771	if invalidParams.Len() > 0 {
39772		return invalidParams
39773	}
39774	return nil
39775}
39776
39777// SetMetric sets the Metric field's value.
39778func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
39779	s.Metric = &v
39780	return s
39781}
39782
39783// SetMetricDimension sets the MetricDimension field's value.
39784func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
39785	s.MetricDimension = v
39786	return s
39787}
39788
39789// The value to be compared with the metric.
39790type MetricValue struct {
39791	_ struct{} `type:"structure"`
39792
39793	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
39794	// set to be compared with the metric.
39795	Cidrs []*string `locationName:"cidrs" type:"list"`
39796
39797	// If the comparisonOperator calls for a numeric value, use this to specify
39798	// that numeric value to be compared with the metric.
39799	Count *int64 `locationName:"count" type:"long"`
39800
39801	// If the comparisonOperator calls for a set of ports, use this to specify that
39802	// set to be compared with the metric.
39803	Ports []*int64 `locationName:"ports" type:"list"`
39804}
39805
39806// String returns the string representation
39807func (s MetricValue) String() string {
39808	return awsutil.Prettify(s)
39809}
39810
39811// GoString returns the string representation
39812func (s MetricValue) GoString() string {
39813	return s.String()
39814}
39815
39816// SetCidrs sets the Cidrs field's value.
39817func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
39818	s.Cidrs = v
39819	return s
39820}
39821
39822// SetCount sets the Count field's value.
39823func (s *MetricValue) SetCount(v int64) *MetricValue {
39824	s.Count = &v
39825	return s
39826}
39827
39828// SetPorts sets the Ports field's value.
39829func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
39830	s.Ports = v
39831	return s
39832}
39833
39834// Describes which changes should be applied as part of a mitigation action.
39835type MitigationAction struct {
39836	_ struct{} `type:"structure"`
39837
39838	// The set of parameters for this mitigation action. The parameters vary, depending
39839	// on the kind of action you apply.
39840	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
39841
39842	// A unique identifier for the mitigation action.
39843	Id *string `locationName:"id" type:"string"`
39844
39845	// A user-friendly name for the mitigation action.
39846	Name *string `locationName:"name" type:"string"`
39847
39848	// The IAM role ARN used to apply this mitigation action.
39849	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
39850}
39851
39852// String returns the string representation
39853func (s MitigationAction) String() string {
39854	return awsutil.Prettify(s)
39855}
39856
39857// GoString returns the string representation
39858func (s MitigationAction) GoString() string {
39859	return s.String()
39860}
39861
39862// SetActionParams sets the ActionParams field's value.
39863func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
39864	s.ActionParams = v
39865	return s
39866}
39867
39868// SetId sets the Id field's value.
39869func (s *MitigationAction) SetId(v string) *MitigationAction {
39870	s.Id = &v
39871	return s
39872}
39873
39874// SetName sets the Name field's value.
39875func (s *MitigationAction) SetName(v string) *MitigationAction {
39876	s.Name = &v
39877	return s
39878}
39879
39880// SetRoleArn sets the RoleArn field's value.
39881func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
39882	s.RoleArn = &v
39883	return s
39884}
39885
39886// Information that identifies a mitigation action. This information is returned
39887// by ListMitigationActions.
39888type MitigationActionIdentifier struct {
39889	_ struct{} `type:"structure"`
39890
39891	// The IAM role ARN used to apply this mitigation action.
39892	ActionArn *string `locationName:"actionArn" type:"string"`
39893
39894	// The friendly name of the mitigation action.
39895	ActionName *string `locationName:"actionName" type:"string"`
39896
39897	// The date when this mitigation action was created.
39898	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39899}
39900
39901// String returns the string representation
39902func (s MitigationActionIdentifier) String() string {
39903	return awsutil.Prettify(s)
39904}
39905
39906// GoString returns the string representation
39907func (s MitigationActionIdentifier) GoString() string {
39908	return s.String()
39909}
39910
39911// SetActionArn sets the ActionArn field's value.
39912func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
39913	s.ActionArn = &v
39914	return s
39915}
39916
39917// SetActionName sets the ActionName field's value.
39918func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
39919	s.ActionName = &v
39920	return s
39921}
39922
39923// SetCreationDate sets the CreationDate field's value.
39924func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
39925	s.CreationDate = &v
39926	return s
39927}
39928
39929// The set of parameters for this mitigation action. You can specify only one
39930// type of parameter (in other words, you can apply only one action for each
39931// defined mitigation action).
39932type MitigationActionParams struct {
39933	_ struct{} `type:"structure"`
39934
39935	// Parameters to define a mitigation action that moves devices associated with
39936	// a certificate to one or more specified thing groups, typically for quarantine.
39937	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
39938
39939	// Parameters to define a mitigation action that enables AWS IoT logging at
39940	// a specified level of detail.
39941	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
39942
39943	// Parameters to define a mitigation action that publishes findings to Amazon
39944	// SNS. You can implement your own custom actions in response to the Amazon
39945	// SNS messages.
39946	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
39947
39948	// Parameters to define a mitigation action that adds a blank policy to restrict
39949	// permissions.
39950	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
39951
39952	// Parameters to define a mitigation action that changes the state of the CA
39953	// certificate to inactive.
39954	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
39955
39956	// Parameters to define a mitigation action that changes the state of the device
39957	// certificate to inactive.
39958	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
39959}
39960
39961// String returns the string representation
39962func (s MitigationActionParams) String() string {
39963	return awsutil.Prettify(s)
39964}
39965
39966// GoString returns the string representation
39967func (s MitigationActionParams) GoString() string {
39968	return s.String()
39969}
39970
39971// Validate inspects the fields of the type to determine if they are valid.
39972func (s *MitigationActionParams) Validate() error {
39973	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
39974	if s.AddThingsToThingGroupParams != nil {
39975		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
39976			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
39977		}
39978	}
39979	if s.EnableIoTLoggingParams != nil {
39980		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
39981			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
39982		}
39983	}
39984	if s.PublishFindingToSnsParams != nil {
39985		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
39986			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
39987		}
39988	}
39989	if s.ReplaceDefaultPolicyVersionParams != nil {
39990		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
39991			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
39992		}
39993	}
39994	if s.UpdateCACertificateParams != nil {
39995		if err := s.UpdateCACertificateParams.Validate(); err != nil {
39996			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
39997		}
39998	}
39999	if s.UpdateDeviceCertificateParams != nil {
40000		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
40001			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
40002		}
40003	}
40004
40005	if invalidParams.Len() > 0 {
40006		return invalidParams
40007	}
40008	return nil
40009}
40010
40011// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
40012func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
40013	s.AddThingsToThingGroupParams = v
40014	return s
40015}
40016
40017// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
40018func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
40019	s.EnableIoTLoggingParams = v
40020	return s
40021}
40022
40023// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
40024func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
40025	s.PublishFindingToSnsParams = v
40026	return s
40027}
40028
40029// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
40030func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
40031	s.ReplaceDefaultPolicyVersionParams = v
40032	return s
40033}
40034
40035// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
40036func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
40037	s.UpdateCACertificateParams = v
40038	return s
40039}
40040
40041// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
40042func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
40043	s.UpdateDeviceCertificateParams = v
40044	return s
40045}
40046
40047// Specifies the MQTT context to use for the test authorizer request
40048type MqttContext struct {
40049	_ struct{} `type:"structure"`
40050
40051	// The value of the clientId key in an MQTT authorization request.
40052	ClientId *string `locationName:"clientId" min:"1" type:"string"`
40053
40054	// The value of the password key in an MQTT authorization request.
40055	//
40056	// Password is automatically base64 encoded/decoded by the SDK.
40057	Password []byte `locationName:"password" min:"1" type:"blob"`
40058
40059	// The value of the username key in an MQTT authorization request.
40060	Username *string `locationName:"username" min:"1" type:"string"`
40061}
40062
40063// String returns the string representation
40064func (s MqttContext) String() string {
40065	return awsutil.Prettify(s)
40066}
40067
40068// GoString returns the string representation
40069func (s MqttContext) GoString() string {
40070	return s.String()
40071}
40072
40073// Validate inspects the fields of the type to determine if they are valid.
40074func (s *MqttContext) Validate() error {
40075	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
40076	if s.ClientId != nil && len(*s.ClientId) < 1 {
40077		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
40078	}
40079	if s.Password != nil && len(s.Password) < 1 {
40080		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
40081	}
40082	if s.Username != nil && len(*s.Username) < 1 {
40083		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
40084	}
40085
40086	if invalidParams.Len() > 0 {
40087		return invalidParams
40088	}
40089	return nil
40090}
40091
40092// SetClientId sets the ClientId field's value.
40093func (s *MqttContext) SetClientId(v string) *MqttContext {
40094	s.ClientId = &v
40095	return s
40096}
40097
40098// SetPassword sets the Password field's value.
40099func (s *MqttContext) SetPassword(v []byte) *MqttContext {
40100	s.Password = v
40101	return s
40102}
40103
40104// SetUsername sets the Username field's value.
40105func (s *MqttContext) SetUsername(v string) *MqttContext {
40106	s.Username = &v
40107	return s
40108}
40109
40110// Information about the resource that was noncompliant with the audit check.
40111type NonCompliantResource struct {
40112	_ struct{} `type:"structure"`
40113
40114	// Other information about the noncompliant resource.
40115	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
40116
40117	// Information that identifies the noncompliant resource.
40118	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
40119
40120	// The type of the noncompliant resource.
40121	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
40122}
40123
40124// String returns the string representation
40125func (s NonCompliantResource) String() string {
40126	return awsutil.Prettify(s)
40127}
40128
40129// GoString returns the string representation
40130func (s NonCompliantResource) GoString() string {
40131	return s.String()
40132}
40133
40134// SetAdditionalInfo sets the AdditionalInfo field's value.
40135func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
40136	s.AdditionalInfo = v
40137	return s
40138}
40139
40140// SetResourceIdentifier sets the ResourceIdentifier field's value.
40141func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
40142	s.ResourceIdentifier = v
40143	return s
40144}
40145
40146// SetResourceType sets the ResourceType field's value.
40147func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
40148	s.ResourceType = &v
40149	return s
40150}
40151
40152// The resource is not configured.
40153type NotConfiguredException struct {
40154	_            struct{}                  `type:"structure"`
40155	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40156
40157	// The message for the exception.
40158	Message_ *string `locationName:"message" type:"string"`
40159}
40160
40161// String returns the string representation
40162func (s NotConfiguredException) String() string {
40163	return awsutil.Prettify(s)
40164}
40165
40166// GoString returns the string representation
40167func (s NotConfiguredException) GoString() string {
40168	return s.String()
40169}
40170
40171func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
40172	return &NotConfiguredException{
40173		RespMetadata: v,
40174	}
40175}
40176
40177// Code returns the exception type name.
40178func (s *NotConfiguredException) Code() string {
40179	return "NotConfiguredException"
40180}
40181
40182// Message returns the exception's message.
40183func (s *NotConfiguredException) Message() string {
40184	if s.Message_ != nil {
40185		return *s.Message_
40186	}
40187	return ""
40188}
40189
40190// OrigErr always returns nil, satisfies awserr.Error interface.
40191func (s *NotConfiguredException) OrigErr() error {
40192	return nil
40193}
40194
40195func (s *NotConfiguredException) Error() string {
40196	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40197}
40198
40199// Status code returns the HTTP status code for the request's response error.
40200func (s *NotConfiguredException) StatusCode() int {
40201	return s.RespMetadata.StatusCode
40202}
40203
40204// RequestID returns the service's response RequestID for request.
40205func (s *NotConfiguredException) RequestID() string {
40206	return s.RespMetadata.RequestID
40207}
40208
40209// Describes a file to be associated with an OTA update.
40210type OTAUpdateFile struct {
40211	_ struct{} `type:"structure"`
40212
40213	// A list of name/attribute pairs.
40214	Attributes map[string]*string `locationName:"attributes" type:"map"`
40215
40216	// The code signing method of the file.
40217	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
40218
40219	// The location of the updated firmware.
40220	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
40221
40222	// The name of the file.
40223	FileName *string `locationName:"fileName" type:"string"`
40224
40225	// The file version.
40226	FileVersion *string `locationName:"fileVersion" type:"string"`
40227}
40228
40229// String returns the string representation
40230func (s OTAUpdateFile) String() string {
40231	return awsutil.Prettify(s)
40232}
40233
40234// GoString returns the string representation
40235func (s OTAUpdateFile) GoString() string {
40236	return s.String()
40237}
40238
40239// Validate inspects the fields of the type to determine if they are valid.
40240func (s *OTAUpdateFile) Validate() error {
40241	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
40242	if s.CodeSigning != nil {
40243		if err := s.CodeSigning.Validate(); err != nil {
40244			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
40245		}
40246	}
40247	if s.FileLocation != nil {
40248		if err := s.FileLocation.Validate(); err != nil {
40249			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
40250		}
40251	}
40252
40253	if invalidParams.Len() > 0 {
40254		return invalidParams
40255	}
40256	return nil
40257}
40258
40259// SetAttributes sets the Attributes field's value.
40260func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
40261	s.Attributes = v
40262	return s
40263}
40264
40265// SetCodeSigning sets the CodeSigning field's value.
40266func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
40267	s.CodeSigning = v
40268	return s
40269}
40270
40271// SetFileLocation sets the FileLocation field's value.
40272func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
40273	s.FileLocation = v
40274	return s
40275}
40276
40277// SetFileName sets the FileName field's value.
40278func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
40279	s.FileName = &v
40280	return s
40281}
40282
40283// SetFileVersion sets the FileVersion field's value.
40284func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
40285	s.FileVersion = &v
40286	return s
40287}
40288
40289// Information about an OTA update.
40290type OTAUpdateInfo struct {
40291	_ struct{} `type:"structure"`
40292
40293	// A collection of name/value pairs
40294	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
40295
40296	// The AWS IoT job ARN associated with the OTA update.
40297	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
40298
40299	// The AWS IoT job ID associated with the OTA update.
40300	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
40301
40302	// Configuration for the rollout of OTA updates.
40303	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
40304
40305	// Configuration information for pre-signed URLs. Valid when protocols contains
40306	// HTTP.
40307	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
40308
40309	// The date when the OTA update was created.
40310	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40311
40312	// A description of the OTA update.
40313	Description *string `locationName:"description" type:"string"`
40314
40315	// Error information associated with the OTA update.
40316	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
40317
40318	// The date when the OTA update was last updated.
40319	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
40320
40321	// The OTA update ARN.
40322	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
40323
40324	// A list of files associated with the OTA update.
40325	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
40326
40327	// The OTA update ID.
40328	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
40329
40330	// The status of the OTA update.
40331	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
40332
40333	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
40334	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
40335	// can choose the protocol.
40336	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
40337
40338	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
40339	// be complete after all those things specified as targets have completed the
40340	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
40341	// thing when a change is detected in a target. For example, an OTA update will
40342	// run on a thing when the thing is added to a target group, even after the
40343	// OTA update was completed by all things originally in the group.
40344	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
40345
40346	// The targets of the OTA update.
40347	Targets []*string `locationName:"targets" min:"1" type:"list"`
40348}
40349
40350// String returns the string representation
40351func (s OTAUpdateInfo) String() string {
40352	return awsutil.Prettify(s)
40353}
40354
40355// GoString returns the string representation
40356func (s OTAUpdateInfo) GoString() string {
40357	return s.String()
40358}
40359
40360// SetAdditionalParameters sets the AdditionalParameters field's value.
40361func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
40362	s.AdditionalParameters = v
40363	return s
40364}
40365
40366// SetAwsIotJobArn sets the AwsIotJobArn field's value.
40367func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
40368	s.AwsIotJobArn = &v
40369	return s
40370}
40371
40372// SetAwsIotJobId sets the AwsIotJobId field's value.
40373func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
40374	s.AwsIotJobId = &v
40375	return s
40376}
40377
40378// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
40379func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
40380	s.AwsJobExecutionsRolloutConfig = v
40381	return s
40382}
40383
40384// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
40385func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
40386	s.AwsJobPresignedUrlConfig = v
40387	return s
40388}
40389
40390// SetCreationDate sets the CreationDate field's value.
40391func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
40392	s.CreationDate = &v
40393	return s
40394}
40395
40396// SetDescription sets the Description field's value.
40397func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
40398	s.Description = &v
40399	return s
40400}
40401
40402// SetErrorInfo sets the ErrorInfo field's value.
40403func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
40404	s.ErrorInfo = v
40405	return s
40406}
40407
40408// SetLastModifiedDate sets the LastModifiedDate field's value.
40409func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
40410	s.LastModifiedDate = &v
40411	return s
40412}
40413
40414// SetOtaUpdateArn sets the OtaUpdateArn field's value.
40415func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
40416	s.OtaUpdateArn = &v
40417	return s
40418}
40419
40420// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
40421func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
40422	s.OtaUpdateFiles = v
40423	return s
40424}
40425
40426// SetOtaUpdateId sets the OtaUpdateId field's value.
40427func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
40428	s.OtaUpdateId = &v
40429	return s
40430}
40431
40432// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
40433func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
40434	s.OtaUpdateStatus = &v
40435	return s
40436}
40437
40438// SetProtocols sets the Protocols field's value.
40439func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
40440	s.Protocols = v
40441	return s
40442}
40443
40444// SetTargetSelection sets the TargetSelection field's value.
40445func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
40446	s.TargetSelection = &v
40447	return s
40448}
40449
40450// SetTargets sets the Targets field's value.
40451func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
40452	s.Targets = v
40453	return s
40454}
40455
40456// An OTA update summary.
40457type OTAUpdateSummary struct {
40458	_ struct{} `type:"structure"`
40459
40460	// The date when the OTA update was created.
40461	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40462
40463	// The OTA update ARN.
40464	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
40465
40466	// The OTA update ID.
40467	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
40468}
40469
40470// String returns the string representation
40471func (s OTAUpdateSummary) String() string {
40472	return awsutil.Prettify(s)
40473}
40474
40475// GoString returns the string representation
40476func (s OTAUpdateSummary) GoString() string {
40477	return s.String()
40478}
40479
40480// SetCreationDate sets the CreationDate field's value.
40481func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
40482	s.CreationDate = &v
40483	return s
40484}
40485
40486// SetOtaUpdateArn sets the OtaUpdateArn field's value.
40487func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
40488	s.OtaUpdateArn = &v
40489	return s
40490}
40491
40492// SetOtaUpdateId sets the OtaUpdateId field's value.
40493func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
40494	s.OtaUpdateId = &v
40495	return s
40496}
40497
40498// A certificate that has been transferred but not yet accepted.
40499type OutgoingCertificate struct {
40500	_ struct{} `type:"structure"`
40501
40502	// The certificate ARN.
40503	CertificateArn *string `locationName:"certificateArn" type:"string"`
40504
40505	// The certificate ID.
40506	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
40507
40508	// The certificate creation date.
40509	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40510
40511	// The date the transfer was initiated.
40512	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
40513
40514	// The transfer message.
40515	TransferMessage *string `locationName:"transferMessage" type:"string"`
40516
40517	// The AWS account to which the transfer was made.
40518	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
40519}
40520
40521// String returns the string representation
40522func (s OutgoingCertificate) String() string {
40523	return awsutil.Prettify(s)
40524}
40525
40526// GoString returns the string representation
40527func (s OutgoingCertificate) GoString() string {
40528	return s.String()
40529}
40530
40531// SetCertificateArn sets the CertificateArn field's value.
40532func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
40533	s.CertificateArn = &v
40534	return s
40535}
40536
40537// SetCertificateId sets the CertificateId field's value.
40538func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
40539	s.CertificateId = &v
40540	return s
40541}
40542
40543// SetCreationDate sets the CreationDate field's value.
40544func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
40545	s.CreationDate = &v
40546	return s
40547}
40548
40549// SetTransferDate sets the TransferDate field's value.
40550func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
40551	s.TransferDate = &v
40552	return s
40553}
40554
40555// SetTransferMessage sets the TransferMessage field's value.
40556func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
40557	s.TransferMessage = &v
40558	return s
40559}
40560
40561// SetTransferredTo sets the TransferredTo field's value.
40562func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
40563	s.TransferredTo = &v
40564	return s
40565}
40566
40567// Describes the percentile and percentile value.
40568type PercentPair struct {
40569	_ struct{} `type:"structure"`
40570
40571	// The percentile.
40572	Percent *float64 `locationName:"percent" type:"double"`
40573
40574	// The value of the percentile.
40575	Value *float64 `locationName:"value" type:"double"`
40576}
40577
40578// String returns the string representation
40579func (s PercentPair) String() string {
40580	return awsutil.Prettify(s)
40581}
40582
40583// GoString returns the string representation
40584func (s PercentPair) GoString() string {
40585	return s.String()
40586}
40587
40588// SetPercent sets the Percent field's value.
40589func (s *PercentPair) SetPercent(v float64) *PercentPair {
40590	s.Percent = &v
40591	return s
40592}
40593
40594// SetValue sets the Value field's value.
40595func (s *PercentPair) SetValue(v float64) *PercentPair {
40596	s.Value = &v
40597	return s
40598}
40599
40600// Describes an AWS IoT policy.
40601type Policy struct {
40602	_ struct{} `type:"structure"`
40603
40604	// The policy ARN.
40605	PolicyArn *string `locationName:"policyArn" type:"string"`
40606
40607	// The policy name.
40608	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
40609}
40610
40611// String returns the string representation
40612func (s Policy) String() string {
40613	return awsutil.Prettify(s)
40614}
40615
40616// GoString returns the string representation
40617func (s Policy) GoString() string {
40618	return s.String()
40619}
40620
40621// SetPolicyArn sets the PolicyArn field's value.
40622func (s *Policy) SetPolicyArn(v string) *Policy {
40623	s.PolicyArn = &v
40624	return s
40625}
40626
40627// SetPolicyName sets the PolicyName field's value.
40628func (s *Policy) SetPolicyName(v string) *Policy {
40629	s.PolicyName = &v
40630	return s
40631}
40632
40633// Describes a policy version.
40634type PolicyVersion struct {
40635	_ struct{} `type:"structure"`
40636
40637	// The date and time the policy was created.
40638	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
40639
40640	// Specifies whether the policy version is the default.
40641	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
40642
40643	// The policy version ID.
40644	VersionId *string `locationName:"versionId" type:"string"`
40645}
40646
40647// String returns the string representation
40648func (s PolicyVersion) String() string {
40649	return awsutil.Prettify(s)
40650}
40651
40652// GoString returns the string representation
40653func (s PolicyVersion) GoString() string {
40654	return s.String()
40655}
40656
40657// SetCreateDate sets the CreateDate field's value.
40658func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
40659	s.CreateDate = &v
40660	return s
40661}
40662
40663// SetIsDefaultVersion sets the IsDefaultVersion field's value.
40664func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
40665	s.IsDefaultVersion = &v
40666	return s
40667}
40668
40669// SetVersionId sets the VersionId field's value.
40670func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
40671	s.VersionId = &v
40672	return s
40673}
40674
40675// Information about the version of the policy associated with the resource.
40676type PolicyVersionIdentifier struct {
40677	_ struct{} `type:"structure"`
40678
40679	// The name of the policy.
40680	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
40681
40682	// The ID of the version of the policy associated with the resource.
40683	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
40684}
40685
40686// String returns the string representation
40687func (s PolicyVersionIdentifier) String() string {
40688	return awsutil.Prettify(s)
40689}
40690
40691// GoString returns the string representation
40692func (s PolicyVersionIdentifier) GoString() string {
40693	return s.String()
40694}
40695
40696// Validate inspects the fields of the type to determine if they are valid.
40697func (s *PolicyVersionIdentifier) Validate() error {
40698	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
40699	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
40700		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
40701	}
40702
40703	if invalidParams.Len() > 0 {
40704		return invalidParams
40705	}
40706	return nil
40707}
40708
40709// SetPolicyName sets the PolicyName field's value.
40710func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
40711	s.PolicyName = &v
40712	return s
40713}
40714
40715// SetPolicyVersionId sets the PolicyVersionId field's value.
40716func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
40717	s.PolicyVersionId = &v
40718	return s
40719}
40720
40721// Configuration for pre-signed S3 URLs.
40722type PresignedUrlConfig struct {
40723	_ struct{} `type:"structure"`
40724
40725	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
40726	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
40727	// receives an MQTT request for the job document.
40728	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
40729
40730	// The ARN of an IAM role that grants grants permission to download files from
40731	// the S3 bucket where the job data/updates are stored. The role must also grant
40732	// permission for IoT to download the files.
40733	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
40734}
40735
40736// String returns the string representation
40737func (s PresignedUrlConfig) String() string {
40738	return awsutil.Prettify(s)
40739}
40740
40741// GoString returns the string representation
40742func (s PresignedUrlConfig) GoString() string {
40743	return s.String()
40744}
40745
40746// Validate inspects the fields of the type to determine if they are valid.
40747func (s *PresignedUrlConfig) Validate() error {
40748	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
40749	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
40750		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
40751	}
40752	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
40753		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
40754	}
40755
40756	if invalidParams.Len() > 0 {
40757		return invalidParams
40758	}
40759	return nil
40760}
40761
40762// SetExpiresInSec sets the ExpiresInSec field's value.
40763func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
40764	s.ExpiresInSec = &v
40765	return s
40766}
40767
40768// SetRoleArn sets the RoleArn field's value.
40769func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
40770	s.RoleArn = &v
40771	return s
40772}
40773
40774// Structure that contains payloadVersion and targetArn.
40775type ProvisioningHook struct {
40776	_ struct{} `type:"structure"`
40777
40778	// The payload that was sent to the target function.
40779	//
40780	// Note: Only Lambda functions are currently supported.
40781	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
40782
40783	// The ARN of the target function.
40784	//
40785	// Note: Only Lambda functions are currently supported.
40786	//
40787	// TargetArn is a required field
40788	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
40789}
40790
40791// String returns the string representation
40792func (s ProvisioningHook) String() string {
40793	return awsutil.Prettify(s)
40794}
40795
40796// GoString returns the string representation
40797func (s ProvisioningHook) GoString() string {
40798	return s.String()
40799}
40800
40801// Validate inspects the fields of the type to determine if they are valid.
40802func (s *ProvisioningHook) Validate() error {
40803	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
40804	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
40805		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
40806	}
40807	if s.TargetArn == nil {
40808		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
40809	}
40810
40811	if invalidParams.Len() > 0 {
40812		return invalidParams
40813	}
40814	return nil
40815}
40816
40817// SetPayloadVersion sets the PayloadVersion field's value.
40818func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
40819	s.PayloadVersion = &v
40820	return s
40821}
40822
40823// SetTargetArn sets the TargetArn field's value.
40824func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
40825	s.TargetArn = &v
40826	return s
40827}
40828
40829// A summary of information about a fleet provisioning template.
40830type ProvisioningTemplateSummary struct {
40831	_ struct{} `type:"structure"`
40832
40833	// The date when the fleet provisioning template summary was created.
40834	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40835
40836	// The description of the fleet provisioning template.
40837	Description *string `locationName:"description" type:"string"`
40838
40839	// True if the fleet provision template is enabled, otherwise false.
40840	Enabled *bool `locationName:"enabled" type:"boolean"`
40841
40842	// The date when the fleet provisioning template summary was last modified.
40843	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
40844
40845	// The ARN of the fleet provisioning template.
40846	TemplateArn *string `locationName:"templateArn" type:"string"`
40847
40848	// The name of the fleet provisioning template.
40849	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
40850}
40851
40852// String returns the string representation
40853func (s ProvisioningTemplateSummary) String() string {
40854	return awsutil.Prettify(s)
40855}
40856
40857// GoString returns the string representation
40858func (s ProvisioningTemplateSummary) GoString() string {
40859	return s.String()
40860}
40861
40862// SetCreationDate sets the CreationDate field's value.
40863func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
40864	s.CreationDate = &v
40865	return s
40866}
40867
40868// SetDescription sets the Description field's value.
40869func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
40870	s.Description = &v
40871	return s
40872}
40873
40874// SetEnabled sets the Enabled field's value.
40875func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
40876	s.Enabled = &v
40877	return s
40878}
40879
40880// SetLastModifiedDate sets the LastModifiedDate field's value.
40881func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
40882	s.LastModifiedDate = &v
40883	return s
40884}
40885
40886// SetTemplateArn sets the TemplateArn field's value.
40887func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
40888	s.TemplateArn = &v
40889	return s
40890}
40891
40892// SetTemplateName sets the TemplateName field's value.
40893func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
40894	s.TemplateName = &v
40895	return s
40896}
40897
40898// A summary of information about a fleet provision template version.
40899type ProvisioningTemplateVersionSummary struct {
40900	_ struct{} `type:"structure"`
40901
40902	// The date when the fleet provisioning template version was created
40903	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40904
40905	// True if the fleet provisioning template version is the default version, otherwise
40906	// false.
40907	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
40908
40909	// The ID of the fleet privisioning template version.
40910	VersionId *int64 `locationName:"versionId" type:"integer"`
40911}
40912
40913// String returns the string representation
40914func (s ProvisioningTemplateVersionSummary) String() string {
40915	return awsutil.Prettify(s)
40916}
40917
40918// GoString returns the string representation
40919func (s ProvisioningTemplateVersionSummary) GoString() string {
40920	return s.String()
40921}
40922
40923// SetCreationDate sets the CreationDate field's value.
40924func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
40925	s.CreationDate = &v
40926	return s
40927}
40928
40929// SetIsDefaultVersion sets the IsDefaultVersion field's value.
40930func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
40931	s.IsDefaultVersion = &v
40932	return s
40933}
40934
40935// SetVersionId sets the VersionId field's value.
40936func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
40937	s.VersionId = &v
40938	return s
40939}
40940
40941// Parameters to define a mitigation action that publishes findings to Amazon
40942// SNS. You can implement your own custom actions in response to the Amazon
40943// SNS messages.
40944type PublishFindingToSnsParams struct {
40945	_ struct{} `type:"structure"`
40946
40947	// The ARN of the topic to which you want to publish the findings.
40948	//
40949	// TopicArn is a required field
40950	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
40951}
40952
40953// String returns the string representation
40954func (s PublishFindingToSnsParams) String() string {
40955	return awsutil.Prettify(s)
40956}
40957
40958// GoString returns the string representation
40959func (s PublishFindingToSnsParams) GoString() string {
40960	return s.String()
40961}
40962
40963// Validate inspects the fields of the type to determine if they are valid.
40964func (s *PublishFindingToSnsParams) Validate() error {
40965	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
40966	if s.TopicArn == nil {
40967		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
40968	}
40969
40970	if invalidParams.Len() > 0 {
40971		return invalidParams
40972	}
40973	return nil
40974}
40975
40976// SetTopicArn sets the TopicArn field's value.
40977func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
40978	s.TopicArn = &v
40979	return s
40980}
40981
40982// An asset property value entry containing the following information.
40983type PutAssetPropertyValueEntry struct {
40984	_ struct{} `type:"structure"`
40985
40986	// The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias
40987	// or both an aliasId and a propertyId. Accepts substitution templates.
40988	AssetId *string `locationName:"assetId" type:"string"`
40989
40990	// Optional. A unique identifier for this entry that you can define to better
40991	// track which message caused an error in case of failure. Accepts substitution
40992	// templates. Defaults to a new UUID.
40993	EntryId *string `locationName:"entryId" type:"string"`
40994
40995	// The name of the property alias associated with your asset property. You must
40996	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
40997	// substitution templates.
40998	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
40999
41000	// The ID of the asset's property. You must specify either a propertyAlias or
41001	// both an aliasId and a propertyId. Accepts substitution templates.
41002	PropertyId *string `locationName:"propertyId" type:"string"`
41003
41004	// A list of property values to insert that each contain timestamp, quality,
41005	// and value (TQV) information.
41006	//
41007	// PropertyValues is a required field
41008	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
41009}
41010
41011// String returns the string representation
41012func (s PutAssetPropertyValueEntry) String() string {
41013	return awsutil.Prettify(s)
41014}
41015
41016// GoString returns the string representation
41017func (s PutAssetPropertyValueEntry) GoString() string {
41018	return s.String()
41019}
41020
41021// Validate inspects the fields of the type to determine if they are valid.
41022func (s *PutAssetPropertyValueEntry) Validate() error {
41023	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
41024	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
41025		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
41026	}
41027	if s.PropertyValues == nil {
41028		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
41029	}
41030	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
41031		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
41032	}
41033	if s.PropertyValues != nil {
41034		for i, v := range s.PropertyValues {
41035			if v == nil {
41036				continue
41037			}
41038			if err := v.Validate(); err != nil {
41039				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
41040			}
41041		}
41042	}
41043
41044	if invalidParams.Len() > 0 {
41045		return invalidParams
41046	}
41047	return nil
41048}
41049
41050// SetAssetId sets the AssetId field's value.
41051func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
41052	s.AssetId = &v
41053	return s
41054}
41055
41056// SetEntryId sets the EntryId field's value.
41057func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
41058	s.EntryId = &v
41059	return s
41060}
41061
41062// SetPropertyAlias sets the PropertyAlias field's value.
41063func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
41064	s.PropertyAlias = &v
41065	return s
41066}
41067
41068// SetPropertyId sets the PropertyId field's value.
41069func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
41070	s.PropertyId = &v
41071	return s
41072}
41073
41074// SetPropertyValues sets the PropertyValues field's value.
41075func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
41076	s.PropertyValues = v
41077	return s
41078}
41079
41080// The input for the DynamoActionVS action that specifies the DynamoDB table
41081// to which the message data will be written.
41082type PutItemInput struct {
41083	_ struct{} `type:"structure"`
41084
41085	// The table where the message data will be written.
41086	//
41087	// TableName is a required field
41088	TableName *string `locationName:"tableName" type:"string" required:"true"`
41089}
41090
41091// String returns the string representation
41092func (s PutItemInput) String() string {
41093	return awsutil.Prettify(s)
41094}
41095
41096// GoString returns the string representation
41097func (s PutItemInput) GoString() string {
41098	return s.String()
41099}
41100
41101// Validate inspects the fields of the type to determine if they are valid.
41102func (s *PutItemInput) Validate() error {
41103	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
41104	if s.TableName == nil {
41105		invalidParams.Add(request.NewErrParamRequired("TableName"))
41106	}
41107
41108	if invalidParams.Len() > 0 {
41109		return invalidParams
41110	}
41111	return nil
41112}
41113
41114// SetTableName sets the TableName field's value.
41115func (s *PutItemInput) SetTableName(v string) *PutItemInput {
41116	s.TableName = &v
41117	return s
41118}
41119
41120// Allows you to define a criteria to initiate the increase in rate of rollout
41121// for a job.
41122type RateIncreaseCriteria struct {
41123	_ struct{} `type:"structure"`
41124
41125	// The threshold for number of notified things that will initiate the increase
41126	// in rate of rollout.
41127	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
41128
41129	// The threshold for number of succeeded things that will initiate the increase
41130	// in rate of rollout.
41131	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
41132}
41133
41134// String returns the string representation
41135func (s RateIncreaseCriteria) String() string {
41136	return awsutil.Prettify(s)
41137}
41138
41139// GoString returns the string representation
41140func (s RateIncreaseCriteria) GoString() string {
41141	return s.String()
41142}
41143
41144// Validate inspects the fields of the type to determine if they are valid.
41145func (s *RateIncreaseCriteria) Validate() error {
41146	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
41147	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
41148		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
41149	}
41150	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
41151		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
41152	}
41153
41154	if invalidParams.Len() > 0 {
41155		return invalidParams
41156	}
41157	return nil
41158}
41159
41160// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
41161func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
41162	s.NumberOfNotifiedThings = &v
41163	return s
41164}
41165
41166// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
41167func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
41168	s.NumberOfSucceededThings = &v
41169	return s
41170}
41171
41172// The input to the RegisterCACertificate operation.
41173type RegisterCACertificateInput struct {
41174	_ struct{} `type:"structure"`
41175
41176	// Allows this CA certificate to be used for auto registration of device certificates.
41177	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
41178
41179	// The CA certificate.
41180	//
41181	// CaCertificate is a required field
41182	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
41183
41184	// Information about the registration configuration.
41185	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
41186
41187	// A boolean value that specifies if the CA certificate is set to active.
41188	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
41189
41190	// Metadata which can be used to manage the CA certificate.
41191	//
41192	// For URI Request parameters use format: ...key1=value1&key2=value2...
41193	//
41194	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
41195	//
41196	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
41197	Tags []*Tag `locationName:"tags" type:"list"`
41198
41199	// The private key verification certificate.
41200	//
41201	// VerificationCertificate is a required field
41202	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
41203}
41204
41205// String returns the string representation
41206func (s RegisterCACertificateInput) String() string {
41207	return awsutil.Prettify(s)
41208}
41209
41210// GoString returns the string representation
41211func (s RegisterCACertificateInput) GoString() string {
41212	return s.String()
41213}
41214
41215// Validate inspects the fields of the type to determine if they are valid.
41216func (s *RegisterCACertificateInput) Validate() error {
41217	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
41218	if s.CaCertificate == nil {
41219		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
41220	}
41221	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
41222		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
41223	}
41224	if s.VerificationCertificate == nil {
41225		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
41226	}
41227	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
41228		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
41229	}
41230	if s.RegistrationConfig != nil {
41231		if err := s.RegistrationConfig.Validate(); err != nil {
41232			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
41233		}
41234	}
41235	if s.Tags != nil {
41236		for i, v := range s.Tags {
41237			if v == nil {
41238				continue
41239			}
41240			if err := v.Validate(); err != nil {
41241				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
41242			}
41243		}
41244	}
41245
41246	if invalidParams.Len() > 0 {
41247		return invalidParams
41248	}
41249	return nil
41250}
41251
41252// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
41253func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
41254	s.AllowAutoRegistration = &v
41255	return s
41256}
41257
41258// SetCaCertificate sets the CaCertificate field's value.
41259func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
41260	s.CaCertificate = &v
41261	return s
41262}
41263
41264// SetRegistrationConfig sets the RegistrationConfig field's value.
41265func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
41266	s.RegistrationConfig = v
41267	return s
41268}
41269
41270// SetSetAsActive sets the SetAsActive field's value.
41271func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
41272	s.SetAsActive = &v
41273	return s
41274}
41275
41276// SetTags sets the Tags field's value.
41277func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
41278	s.Tags = v
41279	return s
41280}
41281
41282// SetVerificationCertificate sets the VerificationCertificate field's value.
41283func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
41284	s.VerificationCertificate = &v
41285	return s
41286}
41287
41288// The output from the RegisterCACertificateResponse operation.
41289type RegisterCACertificateOutput struct {
41290	_ struct{} `type:"structure"`
41291
41292	// The CA certificate ARN.
41293	CertificateArn *string `locationName:"certificateArn" type:"string"`
41294
41295	// The CA certificate identifier.
41296	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
41297}
41298
41299// String returns the string representation
41300func (s RegisterCACertificateOutput) String() string {
41301	return awsutil.Prettify(s)
41302}
41303
41304// GoString returns the string representation
41305func (s RegisterCACertificateOutput) GoString() string {
41306	return s.String()
41307}
41308
41309// SetCertificateArn sets the CertificateArn field's value.
41310func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
41311	s.CertificateArn = &v
41312	return s
41313}
41314
41315// SetCertificateId sets the CertificateId field's value.
41316func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
41317	s.CertificateId = &v
41318	return s
41319}
41320
41321// The input to the RegisterCertificate operation.
41322type RegisterCertificateInput struct {
41323	_ struct{} `type:"structure"`
41324
41325	// The CA certificate used to sign the device certificate being registered.
41326	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
41327
41328	// The certificate data, in PEM format.
41329	//
41330	// CertificatePem is a required field
41331	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
41332
41333	// A boolean value that specifies if the certificate is set to active.
41334	//
41335	// Deprecated: SetAsActive has been deprecated
41336	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
41337
41338	// The status of the register certificate request.
41339	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
41340}
41341
41342// String returns the string representation
41343func (s RegisterCertificateInput) String() string {
41344	return awsutil.Prettify(s)
41345}
41346
41347// GoString returns the string representation
41348func (s RegisterCertificateInput) GoString() string {
41349	return s.String()
41350}
41351
41352// Validate inspects the fields of the type to determine if they are valid.
41353func (s *RegisterCertificateInput) Validate() error {
41354	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
41355	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
41356		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
41357	}
41358	if s.CertificatePem == nil {
41359		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
41360	}
41361	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
41362		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
41363	}
41364
41365	if invalidParams.Len() > 0 {
41366		return invalidParams
41367	}
41368	return nil
41369}
41370
41371// SetCaCertificatePem sets the CaCertificatePem field's value.
41372func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
41373	s.CaCertificatePem = &v
41374	return s
41375}
41376
41377// SetCertificatePem sets the CertificatePem field's value.
41378func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
41379	s.CertificatePem = &v
41380	return s
41381}
41382
41383// SetSetAsActive sets the SetAsActive field's value.
41384func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
41385	s.SetAsActive = &v
41386	return s
41387}
41388
41389// SetStatus sets the Status field's value.
41390func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
41391	s.Status = &v
41392	return s
41393}
41394
41395// The output from the RegisterCertificate operation.
41396type RegisterCertificateOutput struct {
41397	_ struct{} `type:"structure"`
41398
41399	// The certificate ARN.
41400	CertificateArn *string `locationName:"certificateArn" type:"string"`
41401
41402	// The certificate identifier.
41403	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
41404}
41405
41406// String returns the string representation
41407func (s RegisterCertificateOutput) String() string {
41408	return awsutil.Prettify(s)
41409}
41410
41411// GoString returns the string representation
41412func (s RegisterCertificateOutput) GoString() string {
41413	return s.String()
41414}
41415
41416// SetCertificateArn sets the CertificateArn field's value.
41417func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
41418	s.CertificateArn = &v
41419	return s
41420}
41421
41422// SetCertificateId sets the CertificateId field's value.
41423func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
41424	s.CertificateId = &v
41425	return s
41426}
41427
41428type RegisterCertificateWithoutCAInput struct {
41429	_ struct{} `type:"structure"`
41430
41431	// The certificate data, in PEM format.
41432	//
41433	// CertificatePem is a required field
41434	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
41435
41436	// The status of the register certificate request.
41437	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
41438}
41439
41440// String returns the string representation
41441func (s RegisterCertificateWithoutCAInput) String() string {
41442	return awsutil.Prettify(s)
41443}
41444
41445// GoString returns the string representation
41446func (s RegisterCertificateWithoutCAInput) GoString() string {
41447	return s.String()
41448}
41449
41450// Validate inspects the fields of the type to determine if they are valid.
41451func (s *RegisterCertificateWithoutCAInput) Validate() error {
41452	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
41453	if s.CertificatePem == nil {
41454		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
41455	}
41456	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
41457		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
41458	}
41459
41460	if invalidParams.Len() > 0 {
41461		return invalidParams
41462	}
41463	return nil
41464}
41465
41466// SetCertificatePem sets the CertificatePem field's value.
41467func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
41468	s.CertificatePem = &v
41469	return s
41470}
41471
41472// SetStatus sets the Status field's value.
41473func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
41474	s.Status = &v
41475	return s
41476}
41477
41478type RegisterCertificateWithoutCAOutput struct {
41479	_ struct{} `type:"structure"`
41480
41481	// The Amazon Resource Name (ARN) of the registered certificate.
41482	CertificateArn *string `locationName:"certificateArn" type:"string"`
41483
41484	// The ID of the registered certificate. (The last part of the certificate ARN
41485	// contains the certificate ID.
41486	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
41487}
41488
41489// String returns the string representation
41490func (s RegisterCertificateWithoutCAOutput) String() string {
41491	return awsutil.Prettify(s)
41492}
41493
41494// GoString returns the string representation
41495func (s RegisterCertificateWithoutCAOutput) GoString() string {
41496	return s.String()
41497}
41498
41499// SetCertificateArn sets the CertificateArn field's value.
41500func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
41501	s.CertificateArn = &v
41502	return s
41503}
41504
41505// SetCertificateId sets the CertificateId field's value.
41506func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
41507	s.CertificateId = &v
41508	return s
41509}
41510
41511type RegisterThingInput struct {
41512	_ struct{} `type:"structure"`
41513
41514	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
41515	// for more information.
41516	Parameters map[string]*string `locationName:"parameters" type:"map"`
41517
41518	// The provisioning template. See Provisioning Devices That Have Device Certificates
41519	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
41520	// for more information.
41521	//
41522	// TemplateBody is a required field
41523	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
41524}
41525
41526// String returns the string representation
41527func (s RegisterThingInput) String() string {
41528	return awsutil.Prettify(s)
41529}
41530
41531// GoString returns the string representation
41532func (s RegisterThingInput) GoString() string {
41533	return s.String()
41534}
41535
41536// Validate inspects the fields of the type to determine if they are valid.
41537func (s *RegisterThingInput) Validate() error {
41538	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
41539	if s.TemplateBody == nil {
41540		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
41541	}
41542
41543	if invalidParams.Len() > 0 {
41544		return invalidParams
41545	}
41546	return nil
41547}
41548
41549// SetParameters sets the Parameters field's value.
41550func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
41551	s.Parameters = v
41552	return s
41553}
41554
41555// SetTemplateBody sets the TemplateBody field's value.
41556func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
41557	s.TemplateBody = &v
41558	return s
41559}
41560
41561type RegisterThingOutput struct {
41562	_ struct{} `type:"structure"`
41563
41564	// The certificate data, in PEM format.
41565	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
41566
41567	// ARNs for the generated resources.
41568	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
41569}
41570
41571// String returns the string representation
41572func (s RegisterThingOutput) String() string {
41573	return awsutil.Prettify(s)
41574}
41575
41576// GoString returns the string representation
41577func (s RegisterThingOutput) GoString() string {
41578	return s.String()
41579}
41580
41581// SetCertificatePem sets the CertificatePem field's value.
41582func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
41583	s.CertificatePem = &v
41584	return s
41585}
41586
41587// SetResourceArns sets the ResourceArns field's value.
41588func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
41589	s.ResourceArns = v
41590	return s
41591}
41592
41593// The registration code is invalid.
41594type RegistrationCodeValidationException struct {
41595	_            struct{}                  `type:"structure"`
41596	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
41597
41598	// Additional information about the exception.
41599	Message_ *string `locationName:"message" type:"string"`
41600}
41601
41602// String returns the string representation
41603func (s RegistrationCodeValidationException) String() string {
41604	return awsutil.Prettify(s)
41605}
41606
41607// GoString returns the string representation
41608func (s RegistrationCodeValidationException) GoString() string {
41609	return s.String()
41610}
41611
41612func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
41613	return &RegistrationCodeValidationException{
41614		RespMetadata: v,
41615	}
41616}
41617
41618// Code returns the exception type name.
41619func (s *RegistrationCodeValidationException) Code() string {
41620	return "RegistrationCodeValidationException"
41621}
41622
41623// Message returns the exception's message.
41624func (s *RegistrationCodeValidationException) Message() string {
41625	if s.Message_ != nil {
41626		return *s.Message_
41627	}
41628	return ""
41629}
41630
41631// OrigErr always returns nil, satisfies awserr.Error interface.
41632func (s *RegistrationCodeValidationException) OrigErr() error {
41633	return nil
41634}
41635
41636func (s *RegistrationCodeValidationException) Error() string {
41637	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
41638}
41639
41640// Status code returns the HTTP status code for the request's response error.
41641func (s *RegistrationCodeValidationException) StatusCode() int {
41642	return s.RespMetadata.StatusCode
41643}
41644
41645// RequestID returns the service's response RequestID for request.
41646func (s *RegistrationCodeValidationException) RequestID() string {
41647	return s.RespMetadata.RequestID
41648}
41649
41650// The registration configuration.
41651type RegistrationConfig struct {
41652	_ struct{} `type:"structure"`
41653
41654	// The ARN of the role.
41655	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
41656
41657	// The template body.
41658	TemplateBody *string `locationName:"templateBody" type:"string"`
41659}
41660
41661// String returns the string representation
41662func (s RegistrationConfig) String() string {
41663	return awsutil.Prettify(s)
41664}
41665
41666// GoString returns the string representation
41667func (s RegistrationConfig) GoString() string {
41668	return s.String()
41669}
41670
41671// Validate inspects the fields of the type to determine if they are valid.
41672func (s *RegistrationConfig) Validate() error {
41673	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
41674	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
41675		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
41676	}
41677
41678	if invalidParams.Len() > 0 {
41679		return invalidParams
41680	}
41681	return nil
41682}
41683
41684// SetRoleArn sets the RoleArn field's value.
41685func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
41686	s.RoleArn = &v
41687	return s
41688}
41689
41690// SetTemplateBody sets the TemplateBody field's value.
41691func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
41692	s.TemplateBody = &v
41693	return s
41694}
41695
41696// The input for the RejectCertificateTransfer operation.
41697type RejectCertificateTransferInput struct {
41698	_ struct{} `type:"structure"`
41699
41700	// The ID of the certificate. (The last part of the certificate ARN contains
41701	// the certificate ID.)
41702	//
41703	// CertificateId is a required field
41704	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
41705
41706	// The reason the certificate transfer was rejected.
41707	RejectReason *string `locationName:"rejectReason" type:"string"`
41708}
41709
41710// String returns the string representation
41711func (s RejectCertificateTransferInput) String() string {
41712	return awsutil.Prettify(s)
41713}
41714
41715// GoString returns the string representation
41716func (s RejectCertificateTransferInput) GoString() string {
41717	return s.String()
41718}
41719
41720// Validate inspects the fields of the type to determine if they are valid.
41721func (s *RejectCertificateTransferInput) Validate() error {
41722	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
41723	if s.CertificateId == nil {
41724		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
41725	}
41726	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
41727		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
41728	}
41729
41730	if invalidParams.Len() > 0 {
41731		return invalidParams
41732	}
41733	return nil
41734}
41735
41736// SetCertificateId sets the CertificateId field's value.
41737func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
41738	s.CertificateId = &v
41739	return s
41740}
41741
41742// SetRejectReason sets the RejectReason field's value.
41743func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
41744	s.RejectReason = &v
41745	return s
41746}
41747
41748type RejectCertificateTransferOutput struct {
41749	_ struct{} `type:"structure"`
41750}
41751
41752// String returns the string representation
41753func (s RejectCertificateTransferOutput) String() string {
41754	return awsutil.Prettify(s)
41755}
41756
41757// GoString returns the string representation
41758func (s RejectCertificateTransferOutput) GoString() string {
41759	return s.String()
41760}
41761
41762// Information about a related resource.
41763type RelatedResource struct {
41764	_ struct{} `type:"structure"`
41765
41766	// Other information about the resource.
41767	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
41768
41769	// Information that identifies the resource.
41770	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
41771
41772	// The type of resource.
41773	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
41774}
41775
41776// String returns the string representation
41777func (s RelatedResource) String() string {
41778	return awsutil.Prettify(s)
41779}
41780
41781// GoString returns the string representation
41782func (s RelatedResource) GoString() string {
41783	return s.String()
41784}
41785
41786// SetAdditionalInfo sets the AdditionalInfo field's value.
41787func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
41788	s.AdditionalInfo = v
41789	return s
41790}
41791
41792// SetResourceIdentifier sets the ResourceIdentifier field's value.
41793func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
41794	s.ResourceIdentifier = v
41795	return s
41796}
41797
41798// SetResourceType sets the ResourceType field's value.
41799func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
41800	s.ResourceType = &v
41801	return s
41802}
41803
41804type RemoveThingFromBillingGroupInput struct {
41805	_ struct{} `type:"structure"`
41806
41807	// The ARN of the billing group.
41808	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
41809
41810	// The name of the billing group.
41811	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
41812
41813	// The ARN of the thing to be removed from the billing group.
41814	ThingArn *string `locationName:"thingArn" type:"string"`
41815
41816	// The name of the thing to be removed from the billing group.
41817	ThingName *string `locationName:"thingName" min:"1" type:"string"`
41818}
41819
41820// String returns the string representation
41821func (s RemoveThingFromBillingGroupInput) String() string {
41822	return awsutil.Prettify(s)
41823}
41824
41825// GoString returns the string representation
41826func (s RemoveThingFromBillingGroupInput) GoString() string {
41827	return s.String()
41828}
41829
41830// Validate inspects the fields of the type to determine if they are valid.
41831func (s *RemoveThingFromBillingGroupInput) Validate() error {
41832	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
41833	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
41834		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
41835	}
41836	if s.ThingName != nil && len(*s.ThingName) < 1 {
41837		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41838	}
41839
41840	if invalidParams.Len() > 0 {
41841		return invalidParams
41842	}
41843	return nil
41844}
41845
41846// SetBillingGroupArn sets the BillingGroupArn field's value.
41847func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
41848	s.BillingGroupArn = &v
41849	return s
41850}
41851
41852// SetBillingGroupName sets the BillingGroupName field's value.
41853func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
41854	s.BillingGroupName = &v
41855	return s
41856}
41857
41858// SetThingArn sets the ThingArn field's value.
41859func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
41860	s.ThingArn = &v
41861	return s
41862}
41863
41864// SetThingName sets the ThingName field's value.
41865func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
41866	s.ThingName = &v
41867	return s
41868}
41869
41870type RemoveThingFromBillingGroupOutput struct {
41871	_ struct{} `type:"structure"`
41872}
41873
41874// String returns the string representation
41875func (s RemoveThingFromBillingGroupOutput) String() string {
41876	return awsutil.Prettify(s)
41877}
41878
41879// GoString returns the string representation
41880func (s RemoveThingFromBillingGroupOutput) GoString() string {
41881	return s.String()
41882}
41883
41884type RemoveThingFromThingGroupInput struct {
41885	_ struct{} `type:"structure"`
41886
41887	// The ARN of the thing to remove from the group.
41888	ThingArn *string `locationName:"thingArn" type:"string"`
41889
41890	// The group ARN.
41891	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
41892
41893	// The group name.
41894	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
41895
41896	// The name of the thing to remove from the group.
41897	ThingName *string `locationName:"thingName" min:"1" type:"string"`
41898}
41899
41900// String returns the string representation
41901func (s RemoveThingFromThingGroupInput) String() string {
41902	return awsutil.Prettify(s)
41903}
41904
41905// GoString returns the string representation
41906func (s RemoveThingFromThingGroupInput) GoString() string {
41907	return s.String()
41908}
41909
41910// Validate inspects the fields of the type to determine if they are valid.
41911func (s *RemoveThingFromThingGroupInput) Validate() error {
41912	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
41913	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
41914		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
41915	}
41916	if s.ThingName != nil && len(*s.ThingName) < 1 {
41917		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41918	}
41919
41920	if invalidParams.Len() > 0 {
41921		return invalidParams
41922	}
41923	return nil
41924}
41925
41926// SetThingArn sets the ThingArn field's value.
41927func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
41928	s.ThingArn = &v
41929	return s
41930}
41931
41932// SetThingGroupArn sets the ThingGroupArn field's value.
41933func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
41934	s.ThingGroupArn = &v
41935	return s
41936}
41937
41938// SetThingGroupName sets the ThingGroupName field's value.
41939func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
41940	s.ThingGroupName = &v
41941	return s
41942}
41943
41944// SetThingName sets the ThingName field's value.
41945func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
41946	s.ThingName = &v
41947	return s
41948}
41949
41950type RemoveThingFromThingGroupOutput struct {
41951	_ struct{} `type:"structure"`
41952}
41953
41954// String returns the string representation
41955func (s RemoveThingFromThingGroupOutput) String() string {
41956	return awsutil.Prettify(s)
41957}
41958
41959// GoString returns the string representation
41960func (s RemoveThingFromThingGroupOutput) GoString() string {
41961	return s.String()
41962}
41963
41964// Parameters to define a mitigation action that adds a blank policy to restrict
41965// permissions.
41966type ReplaceDefaultPolicyVersionParams struct {
41967	_ struct{} `type:"structure"`
41968
41969	// The name of the template to be applied. The only supported value is BLANK_POLICY.
41970	//
41971	// TemplateName is a required field
41972	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
41973}
41974
41975// String returns the string representation
41976func (s ReplaceDefaultPolicyVersionParams) String() string {
41977	return awsutil.Prettify(s)
41978}
41979
41980// GoString returns the string representation
41981func (s ReplaceDefaultPolicyVersionParams) GoString() string {
41982	return s.String()
41983}
41984
41985// Validate inspects the fields of the type to determine if they are valid.
41986func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
41987	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
41988	if s.TemplateName == nil {
41989		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
41990	}
41991
41992	if invalidParams.Len() > 0 {
41993		return invalidParams
41994	}
41995	return nil
41996}
41997
41998// SetTemplateName sets the TemplateName field's value.
41999func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
42000	s.TemplateName = &v
42001	return s
42002}
42003
42004// The input for the ReplaceTopicRule operation.
42005type ReplaceTopicRuleInput struct {
42006	_ struct{} `type:"structure" payload:"TopicRulePayload"`
42007
42008	// The name of the rule.
42009	//
42010	// RuleName is a required field
42011	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
42012
42013	// The rule payload.
42014	//
42015	// TopicRulePayload is a required field
42016	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
42017}
42018
42019// String returns the string representation
42020func (s ReplaceTopicRuleInput) String() string {
42021	return awsutil.Prettify(s)
42022}
42023
42024// GoString returns the string representation
42025func (s ReplaceTopicRuleInput) GoString() string {
42026	return s.String()
42027}
42028
42029// Validate inspects the fields of the type to determine if they are valid.
42030func (s *ReplaceTopicRuleInput) Validate() error {
42031	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
42032	if s.RuleName == nil {
42033		invalidParams.Add(request.NewErrParamRequired("RuleName"))
42034	}
42035	if s.RuleName != nil && len(*s.RuleName) < 1 {
42036		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
42037	}
42038	if s.TopicRulePayload == nil {
42039		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
42040	}
42041	if s.TopicRulePayload != nil {
42042		if err := s.TopicRulePayload.Validate(); err != nil {
42043			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
42044		}
42045	}
42046
42047	if invalidParams.Len() > 0 {
42048		return invalidParams
42049	}
42050	return nil
42051}
42052
42053// SetRuleName sets the RuleName field's value.
42054func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
42055	s.RuleName = &v
42056	return s
42057}
42058
42059// SetTopicRulePayload sets the TopicRulePayload field's value.
42060func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
42061	s.TopicRulePayload = v
42062	return s
42063}
42064
42065type ReplaceTopicRuleOutput struct {
42066	_ struct{} `type:"structure"`
42067}
42068
42069// String returns the string representation
42070func (s ReplaceTopicRuleOutput) String() string {
42071	return awsutil.Prettify(s)
42072}
42073
42074// GoString returns the string representation
42075func (s ReplaceTopicRuleOutput) GoString() string {
42076	return s.String()
42077}
42078
42079// Describes an action to republish to another topic.
42080type RepublishAction struct {
42081	_ struct{} `type:"structure"`
42082
42083	// The Quality of Service (QoS) level to use when republishing messages. The
42084	// default value is 0.
42085	Qos *int64 `locationName:"qos" type:"integer"`
42086
42087	// The ARN of the IAM role that grants access.
42088	//
42089	// RoleArn is a required field
42090	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
42091
42092	// The name of the MQTT topic.
42093	//
42094	// Topic is a required field
42095	Topic *string `locationName:"topic" type:"string" required:"true"`
42096}
42097
42098// String returns the string representation
42099func (s RepublishAction) String() string {
42100	return awsutil.Prettify(s)
42101}
42102
42103// GoString returns the string representation
42104func (s RepublishAction) GoString() string {
42105	return s.String()
42106}
42107
42108// Validate inspects the fields of the type to determine if they are valid.
42109func (s *RepublishAction) Validate() error {
42110	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
42111	if s.RoleArn == nil {
42112		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
42113	}
42114	if s.Topic == nil {
42115		invalidParams.Add(request.NewErrParamRequired("Topic"))
42116	}
42117
42118	if invalidParams.Len() > 0 {
42119		return invalidParams
42120	}
42121	return nil
42122}
42123
42124// SetQos sets the Qos field's value.
42125func (s *RepublishAction) SetQos(v int64) *RepublishAction {
42126	s.Qos = &v
42127	return s
42128}
42129
42130// SetRoleArn sets the RoleArn field's value.
42131func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
42132	s.RoleArn = &v
42133	return s
42134}
42135
42136// SetTopic sets the Topic field's value.
42137func (s *RepublishAction) SetTopic(v string) *RepublishAction {
42138	s.Topic = &v
42139	return s
42140}
42141
42142// The resource already exists.
42143type ResourceAlreadyExistsException struct {
42144	_            struct{}                  `type:"structure"`
42145	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42146
42147	// The message for the exception.
42148	Message_ *string `locationName:"message" type:"string"`
42149
42150	// The ARN of the resource that caused the exception.
42151	ResourceArn *string `locationName:"resourceArn" type:"string"`
42152
42153	// The ID of the resource that caused the exception.
42154	ResourceId *string `locationName:"resourceId" type:"string"`
42155}
42156
42157// String returns the string representation
42158func (s ResourceAlreadyExistsException) String() string {
42159	return awsutil.Prettify(s)
42160}
42161
42162// GoString returns the string representation
42163func (s ResourceAlreadyExistsException) GoString() string {
42164	return s.String()
42165}
42166
42167func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
42168	return &ResourceAlreadyExistsException{
42169		RespMetadata: v,
42170	}
42171}
42172
42173// Code returns the exception type name.
42174func (s *ResourceAlreadyExistsException) Code() string {
42175	return "ResourceAlreadyExistsException"
42176}
42177
42178// Message returns the exception's message.
42179func (s *ResourceAlreadyExistsException) Message() string {
42180	if s.Message_ != nil {
42181		return *s.Message_
42182	}
42183	return ""
42184}
42185
42186// OrigErr always returns nil, satisfies awserr.Error interface.
42187func (s *ResourceAlreadyExistsException) OrigErr() error {
42188	return nil
42189}
42190
42191func (s *ResourceAlreadyExistsException) Error() string {
42192	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
42193}
42194
42195// Status code returns the HTTP status code for the request's response error.
42196func (s *ResourceAlreadyExistsException) StatusCode() int {
42197	return s.RespMetadata.StatusCode
42198}
42199
42200// RequestID returns the service's response RequestID for request.
42201func (s *ResourceAlreadyExistsException) RequestID() string {
42202	return s.RespMetadata.RequestID
42203}
42204
42205// Information that identifies the noncompliant resource.
42206type ResourceIdentifier struct {
42207	_ struct{} `type:"structure"`
42208
42209	// The account with which the resource is associated.
42210	Account *string `locationName:"account" min:"12" type:"string"`
42211
42212	// The ID of the CA certificate used to authorize the certificate.
42213	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
42214
42215	// The client ID.
42216	ClientId *string `locationName:"clientId" type:"string"`
42217
42218	// The ID of the Amazon Cognito identity pool.
42219	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
42220
42221	// The ID of the certificate attached to the resource.
42222	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
42223
42224	// The ARN of the IAM role that has overly permissive actions.
42225	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
42226
42227	// The version of the policy associated with the resource.
42228	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
42229
42230	// The ARN of the role alias that has overly permissive actions.
42231	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
42232}
42233
42234// String returns the string representation
42235func (s ResourceIdentifier) String() string {
42236	return awsutil.Prettify(s)
42237}
42238
42239// GoString returns the string representation
42240func (s ResourceIdentifier) GoString() string {
42241	return s.String()
42242}
42243
42244// Validate inspects the fields of the type to determine if they are valid.
42245func (s *ResourceIdentifier) Validate() error {
42246	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
42247	if s.Account != nil && len(*s.Account) < 12 {
42248		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
42249	}
42250	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
42251		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
42252	}
42253	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
42254		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
42255	}
42256	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
42257		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
42258	}
42259	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
42260		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
42261	}
42262	if s.PolicyVersionIdentifier != nil {
42263		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
42264			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
42265		}
42266	}
42267
42268	if invalidParams.Len() > 0 {
42269		return invalidParams
42270	}
42271	return nil
42272}
42273
42274// SetAccount sets the Account field's value.
42275func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
42276	s.Account = &v
42277	return s
42278}
42279
42280// SetCaCertificateId sets the CaCertificateId field's value.
42281func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
42282	s.CaCertificateId = &v
42283	return s
42284}
42285
42286// SetClientId sets the ClientId field's value.
42287func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
42288	s.ClientId = &v
42289	return s
42290}
42291
42292// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
42293func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
42294	s.CognitoIdentityPoolId = &v
42295	return s
42296}
42297
42298// SetDeviceCertificateId sets the DeviceCertificateId field's value.
42299func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
42300	s.DeviceCertificateId = &v
42301	return s
42302}
42303
42304// SetIamRoleArn sets the IamRoleArn field's value.
42305func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
42306	s.IamRoleArn = &v
42307	return s
42308}
42309
42310// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
42311func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
42312	s.PolicyVersionIdentifier = v
42313	return s
42314}
42315
42316// SetRoleAliasArn sets the RoleAliasArn field's value.
42317func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
42318	s.RoleAliasArn = &v
42319	return s
42320}
42321
42322// The specified resource does not exist.
42323type ResourceNotFoundException struct {
42324	_            struct{}                  `type:"structure"`
42325	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42326
42327	// The message for the exception.
42328	Message_ *string `locationName:"message" type:"string"`
42329}
42330
42331// String returns the string representation
42332func (s ResourceNotFoundException) String() string {
42333	return awsutil.Prettify(s)
42334}
42335
42336// GoString returns the string representation
42337func (s ResourceNotFoundException) GoString() string {
42338	return s.String()
42339}
42340
42341func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
42342	return &ResourceNotFoundException{
42343		RespMetadata: v,
42344	}
42345}
42346
42347// Code returns the exception type name.
42348func (s *ResourceNotFoundException) Code() string {
42349	return "ResourceNotFoundException"
42350}
42351
42352// Message returns the exception's message.
42353func (s *ResourceNotFoundException) Message() string {
42354	if s.Message_ != nil {
42355		return *s.Message_
42356	}
42357	return ""
42358}
42359
42360// OrigErr always returns nil, satisfies awserr.Error interface.
42361func (s *ResourceNotFoundException) OrigErr() error {
42362	return nil
42363}
42364
42365func (s *ResourceNotFoundException) Error() string {
42366	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42367}
42368
42369// Status code returns the HTTP status code for the request's response error.
42370func (s *ResourceNotFoundException) StatusCode() int {
42371	return s.RespMetadata.StatusCode
42372}
42373
42374// RequestID returns the service's response RequestID for request.
42375func (s *ResourceNotFoundException) RequestID() string {
42376	return s.RespMetadata.RequestID
42377}
42378
42379// The resource registration failed.
42380type ResourceRegistrationFailureException struct {
42381	_            struct{}                  `type:"structure"`
42382	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42383
42384	// The message for the exception.
42385	Message_ *string `locationName:"message" type:"string"`
42386}
42387
42388// String returns the string representation
42389func (s ResourceRegistrationFailureException) String() string {
42390	return awsutil.Prettify(s)
42391}
42392
42393// GoString returns the string representation
42394func (s ResourceRegistrationFailureException) GoString() string {
42395	return s.String()
42396}
42397
42398func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
42399	return &ResourceRegistrationFailureException{
42400		RespMetadata: v,
42401	}
42402}
42403
42404// Code returns the exception type name.
42405func (s *ResourceRegistrationFailureException) Code() string {
42406	return "ResourceRegistrationFailureException"
42407}
42408
42409// Message returns the exception's message.
42410func (s *ResourceRegistrationFailureException) Message() string {
42411	if s.Message_ != nil {
42412		return *s.Message_
42413	}
42414	return ""
42415}
42416
42417// OrigErr always returns nil, satisfies awserr.Error interface.
42418func (s *ResourceRegistrationFailureException) OrigErr() error {
42419	return nil
42420}
42421
42422func (s *ResourceRegistrationFailureException) Error() string {
42423	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42424}
42425
42426// Status code returns the HTTP status code for the request's response error.
42427func (s *ResourceRegistrationFailureException) StatusCode() int {
42428	return s.RespMetadata.StatusCode
42429}
42430
42431// RequestID returns the service's response RequestID for request.
42432func (s *ResourceRegistrationFailureException) RequestID() string {
42433	return s.RespMetadata.RequestID
42434}
42435
42436// Role alias description.
42437type RoleAliasDescription struct {
42438	_ struct{} `type:"structure"`
42439
42440	// The UNIX timestamp of when the role alias was created.
42441	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
42442
42443	// The number of seconds for which the credential is valid.
42444	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
42445
42446	// The UNIX timestamp of when the role alias was last modified.
42447	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
42448
42449	// The role alias owner.
42450	Owner *string `locationName:"owner" min:"12" type:"string"`
42451
42452	// The role alias.
42453	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
42454
42455	// The ARN of the role alias.
42456	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
42457
42458	// The role ARN.
42459	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
42460}
42461
42462// String returns the string representation
42463func (s RoleAliasDescription) String() string {
42464	return awsutil.Prettify(s)
42465}
42466
42467// GoString returns the string representation
42468func (s RoleAliasDescription) GoString() string {
42469	return s.String()
42470}
42471
42472// SetCreationDate sets the CreationDate field's value.
42473func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
42474	s.CreationDate = &v
42475	return s
42476}
42477
42478// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
42479func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
42480	s.CredentialDurationSeconds = &v
42481	return s
42482}
42483
42484// SetLastModifiedDate sets the LastModifiedDate field's value.
42485func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
42486	s.LastModifiedDate = &v
42487	return s
42488}
42489
42490// SetOwner sets the Owner field's value.
42491func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
42492	s.Owner = &v
42493	return s
42494}
42495
42496// SetRoleAlias sets the RoleAlias field's value.
42497func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
42498	s.RoleAlias = &v
42499	return s
42500}
42501
42502// SetRoleAliasArn sets the RoleAliasArn field's value.
42503func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
42504	s.RoleAliasArn = &v
42505	return s
42506}
42507
42508// SetRoleArn sets the RoleArn field's value.
42509func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
42510	s.RoleArn = &v
42511	return s
42512}
42513
42514// Describes an action to write data to an Amazon S3 bucket.
42515type S3Action struct {
42516	_ struct{} `type:"structure"`
42517
42518	// The Amazon S3 bucket.
42519	//
42520	// BucketName is a required field
42521	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
42522
42523	// The Amazon S3 canned ACL that controls access to the object identified by
42524	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
42525	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
42526
42527	// The object key.
42528	//
42529	// Key is a required field
42530	Key *string `locationName:"key" type:"string" required:"true"`
42531
42532	// The ARN of the IAM role that grants access.
42533	//
42534	// RoleArn is a required field
42535	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
42536}
42537
42538// String returns the string representation
42539func (s S3Action) String() string {
42540	return awsutil.Prettify(s)
42541}
42542
42543// GoString returns the string representation
42544func (s S3Action) GoString() string {
42545	return s.String()
42546}
42547
42548// Validate inspects the fields of the type to determine if they are valid.
42549func (s *S3Action) Validate() error {
42550	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
42551	if s.BucketName == nil {
42552		invalidParams.Add(request.NewErrParamRequired("BucketName"))
42553	}
42554	if s.Key == nil {
42555		invalidParams.Add(request.NewErrParamRequired("Key"))
42556	}
42557	if s.RoleArn == nil {
42558		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
42559	}
42560
42561	if invalidParams.Len() > 0 {
42562		return invalidParams
42563	}
42564	return nil
42565}
42566
42567// SetBucketName sets the BucketName field's value.
42568func (s *S3Action) SetBucketName(v string) *S3Action {
42569	s.BucketName = &v
42570	return s
42571}
42572
42573// SetCannedAcl sets the CannedAcl field's value.
42574func (s *S3Action) SetCannedAcl(v string) *S3Action {
42575	s.CannedAcl = &v
42576	return s
42577}
42578
42579// SetKey sets the Key field's value.
42580func (s *S3Action) SetKey(v string) *S3Action {
42581	s.Key = &v
42582	return s
42583}
42584
42585// SetRoleArn sets the RoleArn field's value.
42586func (s *S3Action) SetRoleArn(v string) *S3Action {
42587	s.RoleArn = &v
42588	return s
42589}
42590
42591// Describes the location of updated firmware in S3.
42592type S3Destination struct {
42593	_ struct{} `type:"structure"`
42594
42595	// The S3 bucket that contains the updated firmware.
42596	Bucket *string `locationName:"bucket" min:"1" type:"string"`
42597
42598	// The S3 prefix.
42599	Prefix *string `locationName:"prefix" type:"string"`
42600}
42601
42602// String returns the string representation
42603func (s S3Destination) String() string {
42604	return awsutil.Prettify(s)
42605}
42606
42607// GoString returns the string representation
42608func (s S3Destination) GoString() string {
42609	return s.String()
42610}
42611
42612// Validate inspects the fields of the type to determine if they are valid.
42613func (s *S3Destination) Validate() error {
42614	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
42615	if s.Bucket != nil && len(*s.Bucket) < 1 {
42616		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
42617	}
42618
42619	if invalidParams.Len() > 0 {
42620		return invalidParams
42621	}
42622	return nil
42623}
42624
42625// SetBucket sets the Bucket field's value.
42626func (s *S3Destination) SetBucket(v string) *S3Destination {
42627	s.Bucket = &v
42628	return s
42629}
42630
42631// SetPrefix sets the Prefix field's value.
42632func (s *S3Destination) SetPrefix(v string) *S3Destination {
42633	s.Prefix = &v
42634	return s
42635}
42636
42637// The S3 location.
42638type S3Location struct {
42639	_ struct{} `type:"structure"`
42640
42641	// The S3 bucket.
42642	Bucket *string `locationName:"bucket" min:"1" type:"string"`
42643
42644	// The S3 key.
42645	Key *string `locationName:"key" min:"1" type:"string"`
42646
42647	// The S3 bucket version.
42648	Version *string `locationName:"version" type:"string"`
42649}
42650
42651// String returns the string representation
42652func (s S3Location) String() string {
42653	return awsutil.Prettify(s)
42654}
42655
42656// GoString returns the string representation
42657func (s S3Location) GoString() string {
42658	return s.String()
42659}
42660
42661// Validate inspects the fields of the type to determine if they are valid.
42662func (s *S3Location) Validate() error {
42663	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
42664	if s.Bucket != nil && len(*s.Bucket) < 1 {
42665		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
42666	}
42667	if s.Key != nil && len(*s.Key) < 1 {
42668		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
42669	}
42670
42671	if invalidParams.Len() > 0 {
42672		return invalidParams
42673	}
42674	return nil
42675}
42676
42677// SetBucket sets the Bucket field's value.
42678func (s *S3Location) SetBucket(v string) *S3Location {
42679	s.Bucket = &v
42680	return s
42681}
42682
42683// SetKey sets the Key field's value.
42684func (s *S3Location) SetKey(v string) *S3Location {
42685	s.Key = &v
42686	return s
42687}
42688
42689// SetVersion sets the Version field's value.
42690func (s *S3Location) SetVersion(v string) *S3Location {
42691	s.Version = &v
42692	return s
42693}
42694
42695// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
42696type SalesforceAction struct {
42697	_ struct{} `type:"structure"`
42698
42699	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
42700	// The token is available from the Salesforce IoT Cloud platform after creation
42701	// of the Input Stream.
42702	//
42703	// Token is a required field
42704	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
42705
42706	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
42707	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
42708	//
42709	// Url is a required field
42710	Url *string `locationName:"url" type:"string" required:"true"`
42711}
42712
42713// String returns the string representation
42714func (s SalesforceAction) String() string {
42715	return awsutil.Prettify(s)
42716}
42717
42718// GoString returns the string representation
42719func (s SalesforceAction) GoString() string {
42720	return s.String()
42721}
42722
42723// Validate inspects the fields of the type to determine if they are valid.
42724func (s *SalesforceAction) Validate() error {
42725	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
42726	if s.Token == nil {
42727		invalidParams.Add(request.NewErrParamRequired("Token"))
42728	}
42729	if s.Token != nil && len(*s.Token) < 40 {
42730		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
42731	}
42732	if s.Url == nil {
42733		invalidParams.Add(request.NewErrParamRequired("Url"))
42734	}
42735
42736	if invalidParams.Len() > 0 {
42737		return invalidParams
42738	}
42739	return nil
42740}
42741
42742// SetToken sets the Token field's value.
42743func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
42744	s.Token = &v
42745	return s
42746}
42747
42748// SetUrl sets the Url field's value.
42749func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
42750	s.Url = &v
42751	return s
42752}
42753
42754// Information about the scheduled audit.
42755type ScheduledAuditMetadata struct {
42756	_ struct{} `type:"structure"`
42757
42758	// The day of the month on which the scheduled audit is run (if the frequency
42759	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
42760	// many days, the audit takes place on the "LAST" day of the month.
42761	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
42762
42763	// The day of the week on which the scheduled audit is run (if the frequency
42764	// is "WEEKLY" or "BIWEEKLY").
42765	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
42766
42767	// How often the scheduled audit occurs.
42768	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
42769
42770	// The ARN of the scheduled audit.
42771	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
42772
42773	// The name of the scheduled audit.
42774	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
42775}
42776
42777// String returns the string representation
42778func (s ScheduledAuditMetadata) String() string {
42779	return awsutil.Prettify(s)
42780}
42781
42782// GoString returns the string representation
42783func (s ScheduledAuditMetadata) GoString() string {
42784	return s.String()
42785}
42786
42787// SetDayOfMonth sets the DayOfMonth field's value.
42788func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
42789	s.DayOfMonth = &v
42790	return s
42791}
42792
42793// SetDayOfWeek sets the DayOfWeek field's value.
42794func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
42795	s.DayOfWeek = &v
42796	return s
42797}
42798
42799// SetFrequency sets the Frequency field's value.
42800func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
42801	s.Frequency = &v
42802	return s
42803}
42804
42805// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
42806func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
42807	s.ScheduledAuditArn = &v
42808	return s
42809}
42810
42811// SetScheduledAuditName sets the ScheduledAuditName field's value.
42812func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
42813	s.ScheduledAuditName = &v
42814	return s
42815}
42816
42817type SearchIndexInput struct {
42818	_ struct{} `type:"structure"`
42819
42820	// The search index name.
42821	IndexName *string `locationName:"indexName" min:"1" type:"string"`
42822
42823	// The maximum number of results to return at one time.
42824	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
42825
42826	// The token used to get the next set of results, or null if there are no additional
42827	// results.
42828	NextToken *string `locationName:"nextToken" type:"string"`
42829
42830	// The search query string.
42831	//
42832	// QueryString is a required field
42833	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
42834
42835	// The query version.
42836	QueryVersion *string `locationName:"queryVersion" type:"string"`
42837}
42838
42839// String returns the string representation
42840func (s SearchIndexInput) String() string {
42841	return awsutil.Prettify(s)
42842}
42843
42844// GoString returns the string representation
42845func (s SearchIndexInput) GoString() string {
42846	return s.String()
42847}
42848
42849// Validate inspects the fields of the type to determine if they are valid.
42850func (s *SearchIndexInput) Validate() error {
42851	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
42852	if s.IndexName != nil && len(*s.IndexName) < 1 {
42853		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
42854	}
42855	if s.MaxResults != nil && *s.MaxResults < 1 {
42856		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42857	}
42858	if s.QueryString == nil {
42859		invalidParams.Add(request.NewErrParamRequired("QueryString"))
42860	}
42861	if s.QueryString != nil && len(*s.QueryString) < 1 {
42862		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
42863	}
42864
42865	if invalidParams.Len() > 0 {
42866		return invalidParams
42867	}
42868	return nil
42869}
42870
42871// SetIndexName sets the IndexName field's value.
42872func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
42873	s.IndexName = &v
42874	return s
42875}
42876
42877// SetMaxResults sets the MaxResults field's value.
42878func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
42879	s.MaxResults = &v
42880	return s
42881}
42882
42883// SetNextToken sets the NextToken field's value.
42884func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
42885	s.NextToken = &v
42886	return s
42887}
42888
42889// SetQueryString sets the QueryString field's value.
42890func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
42891	s.QueryString = &v
42892	return s
42893}
42894
42895// SetQueryVersion sets the QueryVersion field's value.
42896func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
42897	s.QueryVersion = &v
42898	return s
42899}
42900
42901type SearchIndexOutput struct {
42902	_ struct{} `type:"structure"`
42903
42904	// The token used to get the next set of results, or null if there are no additional
42905	// results.
42906	NextToken *string `locationName:"nextToken" type:"string"`
42907
42908	// The thing groups that match the search query.
42909	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
42910
42911	// The things that match the search query.
42912	Things []*ThingDocument `locationName:"things" type:"list"`
42913}
42914
42915// String returns the string representation
42916func (s SearchIndexOutput) String() string {
42917	return awsutil.Prettify(s)
42918}
42919
42920// GoString returns the string representation
42921func (s SearchIndexOutput) GoString() string {
42922	return s.String()
42923}
42924
42925// SetNextToken sets the NextToken field's value.
42926func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
42927	s.NextToken = &v
42928	return s
42929}
42930
42931// SetThingGroups sets the ThingGroups field's value.
42932func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
42933	s.ThingGroups = v
42934	return s
42935}
42936
42937// SetThings sets the Things field's value.
42938func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
42939	s.Things = v
42940	return s
42941}
42942
42943// Identifying information for a Device Defender security profile.
42944type SecurityProfileIdentifier struct {
42945	_ struct{} `type:"structure"`
42946
42947	// The ARN of the security profile.
42948	//
42949	// Arn is a required field
42950	Arn *string `locationName:"arn" type:"string" required:"true"`
42951
42952	// The name you have given to the security profile.
42953	//
42954	// Name is a required field
42955	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
42956}
42957
42958// String returns the string representation
42959func (s SecurityProfileIdentifier) String() string {
42960	return awsutil.Prettify(s)
42961}
42962
42963// GoString returns the string representation
42964func (s SecurityProfileIdentifier) GoString() string {
42965	return s.String()
42966}
42967
42968// SetArn sets the Arn field's value.
42969func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
42970	s.Arn = &v
42971	return s
42972}
42973
42974// SetName sets the Name field's value.
42975func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
42976	s.Name = &v
42977	return s
42978}
42979
42980// A target to which an alert is sent when a security profile behavior is violated.
42981type SecurityProfileTarget struct {
42982	_ struct{} `type:"structure"`
42983
42984	// The ARN of the security profile.
42985	//
42986	// Arn is a required field
42987	Arn *string `locationName:"arn" type:"string" required:"true"`
42988}
42989
42990// String returns the string representation
42991func (s SecurityProfileTarget) String() string {
42992	return awsutil.Prettify(s)
42993}
42994
42995// GoString returns the string representation
42996func (s SecurityProfileTarget) GoString() string {
42997	return s.String()
42998}
42999
43000// SetArn sets the Arn field's value.
43001func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
43002	s.Arn = &v
43003	return s
43004}
43005
43006// Information about a security profile and the target associated with it.
43007type SecurityProfileTargetMapping struct {
43008	_ struct{} `type:"structure"`
43009
43010	// Information that identifies the security profile.
43011	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
43012
43013	// Information about the target (thing group) associated with the security profile.
43014	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
43015}
43016
43017// String returns the string representation
43018func (s SecurityProfileTargetMapping) String() string {
43019	return awsutil.Prettify(s)
43020}
43021
43022// GoString returns the string representation
43023func (s SecurityProfileTargetMapping) GoString() string {
43024	return s.String()
43025}
43026
43027// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
43028func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
43029	s.SecurityProfileIdentifier = v
43030	return s
43031}
43032
43033// SetTarget sets the Target field's value.
43034func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
43035	s.Target = v
43036	return s
43037}
43038
43039// An object that contains information about a server certificate.
43040type ServerCertificateSummary struct {
43041	_ struct{} `type:"structure"`
43042
43043	// The ARN of the server certificate.
43044	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
43045
43046	// The status of the server certificate.
43047	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
43048
43049	// Details that explain the status of the server certificate.
43050	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
43051}
43052
43053// String returns the string representation
43054func (s ServerCertificateSummary) String() string {
43055	return awsutil.Prettify(s)
43056}
43057
43058// GoString returns the string representation
43059func (s ServerCertificateSummary) GoString() string {
43060	return s.String()
43061}
43062
43063// SetServerCertificateArn sets the ServerCertificateArn field's value.
43064func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
43065	s.ServerCertificateArn = &v
43066	return s
43067}
43068
43069// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
43070func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
43071	s.ServerCertificateStatus = &v
43072	return s
43073}
43074
43075// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
43076func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
43077	s.ServerCertificateStatusDetail = &v
43078	return s
43079}
43080
43081// The service is temporarily unavailable.
43082type ServiceUnavailableException struct {
43083	_            struct{}                  `type:"structure"`
43084	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
43085
43086	// The message for the exception.
43087	Message_ *string `locationName:"message" type:"string"`
43088}
43089
43090// String returns the string representation
43091func (s ServiceUnavailableException) String() string {
43092	return awsutil.Prettify(s)
43093}
43094
43095// GoString returns the string representation
43096func (s ServiceUnavailableException) GoString() string {
43097	return s.String()
43098}
43099
43100func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
43101	return &ServiceUnavailableException{
43102		RespMetadata: v,
43103	}
43104}
43105
43106// Code returns the exception type name.
43107func (s *ServiceUnavailableException) Code() string {
43108	return "ServiceUnavailableException"
43109}
43110
43111// Message returns the exception's message.
43112func (s *ServiceUnavailableException) Message() string {
43113	if s.Message_ != nil {
43114		return *s.Message_
43115	}
43116	return ""
43117}
43118
43119// OrigErr always returns nil, satisfies awserr.Error interface.
43120func (s *ServiceUnavailableException) OrigErr() error {
43121	return nil
43122}
43123
43124func (s *ServiceUnavailableException) Error() string {
43125	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
43126}
43127
43128// Status code returns the HTTP status code for the request's response error.
43129func (s *ServiceUnavailableException) StatusCode() int {
43130	return s.RespMetadata.StatusCode
43131}
43132
43133// RequestID returns the service's response RequestID for request.
43134func (s *ServiceUnavailableException) RequestID() string {
43135	return s.RespMetadata.RequestID
43136}
43137
43138type SetDefaultAuthorizerInput struct {
43139	_ struct{} `type:"structure"`
43140
43141	// The authorizer name.
43142	//
43143	// AuthorizerName is a required field
43144	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
43145}
43146
43147// String returns the string representation
43148func (s SetDefaultAuthorizerInput) String() string {
43149	return awsutil.Prettify(s)
43150}
43151
43152// GoString returns the string representation
43153func (s SetDefaultAuthorizerInput) GoString() string {
43154	return s.String()
43155}
43156
43157// Validate inspects the fields of the type to determine if they are valid.
43158func (s *SetDefaultAuthorizerInput) Validate() error {
43159	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
43160	if s.AuthorizerName == nil {
43161		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
43162	}
43163	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
43164		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
43165	}
43166
43167	if invalidParams.Len() > 0 {
43168		return invalidParams
43169	}
43170	return nil
43171}
43172
43173// SetAuthorizerName sets the AuthorizerName field's value.
43174func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
43175	s.AuthorizerName = &v
43176	return s
43177}
43178
43179type SetDefaultAuthorizerOutput struct {
43180	_ struct{} `type:"structure"`
43181
43182	// The authorizer ARN.
43183	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
43184
43185	// The authorizer name.
43186	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
43187}
43188
43189// String returns the string representation
43190func (s SetDefaultAuthorizerOutput) String() string {
43191	return awsutil.Prettify(s)
43192}
43193
43194// GoString returns the string representation
43195func (s SetDefaultAuthorizerOutput) GoString() string {
43196	return s.String()
43197}
43198
43199// SetAuthorizerArn sets the AuthorizerArn field's value.
43200func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
43201	s.AuthorizerArn = &v
43202	return s
43203}
43204
43205// SetAuthorizerName sets the AuthorizerName field's value.
43206func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
43207	s.AuthorizerName = &v
43208	return s
43209}
43210
43211// The input for the SetDefaultPolicyVersion operation.
43212type SetDefaultPolicyVersionInput struct {
43213	_ struct{} `type:"structure"`
43214
43215	// The policy name.
43216	//
43217	// PolicyName is a required field
43218	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
43219
43220	// The policy version ID.
43221	//
43222	// PolicyVersionId is a required field
43223	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
43224}
43225
43226// String returns the string representation
43227func (s SetDefaultPolicyVersionInput) String() string {
43228	return awsutil.Prettify(s)
43229}
43230
43231// GoString returns the string representation
43232func (s SetDefaultPolicyVersionInput) GoString() string {
43233	return s.String()
43234}
43235
43236// Validate inspects the fields of the type to determine if they are valid.
43237func (s *SetDefaultPolicyVersionInput) Validate() error {
43238	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
43239	if s.PolicyName == nil {
43240		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
43241	}
43242	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
43243		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
43244	}
43245	if s.PolicyVersionId == nil {
43246		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
43247	}
43248	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
43249		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
43250	}
43251
43252	if invalidParams.Len() > 0 {
43253		return invalidParams
43254	}
43255	return nil
43256}
43257
43258// SetPolicyName sets the PolicyName field's value.
43259func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
43260	s.PolicyName = &v
43261	return s
43262}
43263
43264// SetPolicyVersionId sets the PolicyVersionId field's value.
43265func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
43266	s.PolicyVersionId = &v
43267	return s
43268}
43269
43270type SetDefaultPolicyVersionOutput struct {
43271	_ struct{} `type:"structure"`
43272}
43273
43274// String returns the string representation
43275func (s SetDefaultPolicyVersionOutput) String() string {
43276	return awsutil.Prettify(s)
43277}
43278
43279// GoString returns the string representation
43280func (s SetDefaultPolicyVersionOutput) GoString() string {
43281	return s.String()
43282}
43283
43284// The input for the SetLoggingOptions operation.
43285type SetLoggingOptionsInput struct {
43286	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
43287
43288	// The logging options payload.
43289	//
43290	// LoggingOptionsPayload is a required field
43291	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
43292}
43293
43294// String returns the string representation
43295func (s SetLoggingOptionsInput) String() string {
43296	return awsutil.Prettify(s)
43297}
43298
43299// GoString returns the string representation
43300func (s SetLoggingOptionsInput) GoString() string {
43301	return s.String()
43302}
43303
43304// Validate inspects the fields of the type to determine if they are valid.
43305func (s *SetLoggingOptionsInput) Validate() error {
43306	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
43307	if s.LoggingOptionsPayload == nil {
43308		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
43309	}
43310	if s.LoggingOptionsPayload != nil {
43311		if err := s.LoggingOptionsPayload.Validate(); err != nil {
43312			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
43313		}
43314	}
43315
43316	if invalidParams.Len() > 0 {
43317		return invalidParams
43318	}
43319	return nil
43320}
43321
43322// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
43323func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
43324	s.LoggingOptionsPayload = v
43325	return s
43326}
43327
43328type SetLoggingOptionsOutput struct {
43329	_ struct{} `type:"structure"`
43330}
43331
43332// String returns the string representation
43333func (s SetLoggingOptionsOutput) String() string {
43334	return awsutil.Prettify(s)
43335}
43336
43337// GoString returns the string representation
43338func (s SetLoggingOptionsOutput) GoString() string {
43339	return s.String()
43340}
43341
43342type SetV2LoggingLevelInput struct {
43343	_ struct{} `type:"structure"`
43344
43345	// The log level.
43346	//
43347	// LogLevel is a required field
43348	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
43349
43350	// The log target.
43351	//
43352	// LogTarget is a required field
43353	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
43354}
43355
43356// String returns the string representation
43357func (s SetV2LoggingLevelInput) String() string {
43358	return awsutil.Prettify(s)
43359}
43360
43361// GoString returns the string representation
43362func (s SetV2LoggingLevelInput) GoString() string {
43363	return s.String()
43364}
43365
43366// Validate inspects the fields of the type to determine if they are valid.
43367func (s *SetV2LoggingLevelInput) Validate() error {
43368	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
43369	if s.LogLevel == nil {
43370		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
43371	}
43372	if s.LogTarget == nil {
43373		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
43374	}
43375	if s.LogTarget != nil {
43376		if err := s.LogTarget.Validate(); err != nil {
43377			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
43378		}
43379	}
43380
43381	if invalidParams.Len() > 0 {
43382		return invalidParams
43383	}
43384	return nil
43385}
43386
43387// SetLogLevel sets the LogLevel field's value.
43388func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
43389	s.LogLevel = &v
43390	return s
43391}
43392
43393// SetLogTarget sets the LogTarget field's value.
43394func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
43395	s.LogTarget = v
43396	return s
43397}
43398
43399type SetV2LoggingLevelOutput struct {
43400	_ struct{} `type:"structure"`
43401}
43402
43403// String returns the string representation
43404func (s SetV2LoggingLevelOutput) String() string {
43405	return awsutil.Prettify(s)
43406}
43407
43408// GoString returns the string representation
43409func (s SetV2LoggingLevelOutput) GoString() string {
43410	return s.String()
43411}
43412
43413type SetV2LoggingOptionsInput struct {
43414	_ struct{} `type:"structure"`
43415
43416	// The default logging level.
43417	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
43418
43419	// If true all logs are disabled. The default is false.
43420	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
43421
43422	// The ARN of the role that allows IoT to write to Cloudwatch logs.
43423	RoleArn *string `locationName:"roleArn" type:"string"`
43424}
43425
43426// String returns the string representation
43427func (s SetV2LoggingOptionsInput) String() string {
43428	return awsutil.Prettify(s)
43429}
43430
43431// GoString returns the string representation
43432func (s SetV2LoggingOptionsInput) GoString() string {
43433	return s.String()
43434}
43435
43436// SetDefaultLogLevel sets the DefaultLogLevel field's value.
43437func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
43438	s.DefaultLogLevel = &v
43439	return s
43440}
43441
43442// SetDisableAllLogs sets the DisableAllLogs field's value.
43443func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
43444	s.DisableAllLogs = &v
43445	return s
43446}
43447
43448// SetRoleArn sets the RoleArn field's value.
43449func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
43450	s.RoleArn = &v
43451	return s
43452}
43453
43454type SetV2LoggingOptionsOutput struct {
43455	_ struct{} `type:"structure"`
43456}
43457
43458// String returns the string representation
43459func (s SetV2LoggingOptionsOutput) String() string {
43460	return awsutil.Prettify(s)
43461}
43462
43463// GoString returns the string representation
43464func (s SetV2LoggingOptionsOutput) GoString() string {
43465	return s.String()
43466}
43467
43468// Use Sig V4 authorization.
43469type SigV4Authorization struct {
43470	_ struct{} `type:"structure"`
43471
43472	// The ARN of the signing role.
43473	//
43474	// RoleArn is a required field
43475	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43476
43477	// The service name to use while signing with Sig V4.
43478	//
43479	// ServiceName is a required field
43480	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
43481
43482	// The signing region.
43483	//
43484	// SigningRegion is a required field
43485	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
43486}
43487
43488// String returns the string representation
43489func (s SigV4Authorization) String() string {
43490	return awsutil.Prettify(s)
43491}
43492
43493// GoString returns the string representation
43494func (s SigV4Authorization) GoString() string {
43495	return s.String()
43496}
43497
43498// Validate inspects the fields of the type to determine if they are valid.
43499func (s *SigV4Authorization) Validate() error {
43500	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
43501	if s.RoleArn == nil {
43502		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43503	}
43504	if s.ServiceName == nil {
43505		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
43506	}
43507	if s.SigningRegion == nil {
43508		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
43509	}
43510
43511	if invalidParams.Len() > 0 {
43512		return invalidParams
43513	}
43514	return nil
43515}
43516
43517// SetRoleArn sets the RoleArn field's value.
43518func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
43519	s.RoleArn = &v
43520	return s
43521}
43522
43523// SetServiceName sets the ServiceName field's value.
43524func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
43525	s.ServiceName = &v
43526	return s
43527}
43528
43529// SetSigningRegion sets the SigningRegion field's value.
43530func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
43531	s.SigningRegion = &v
43532	return s
43533}
43534
43535// Describes the code-signing profile.
43536type SigningProfileParameter struct {
43537	_ struct{} `type:"structure"`
43538
43539	// Certificate ARN.
43540	CertificateArn *string `locationName:"certificateArn" type:"string"`
43541
43542	// The location of the code-signing certificate on your device.
43543	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
43544
43545	// The hardware platform of your device.
43546	Platform *string `locationName:"platform" type:"string"`
43547}
43548
43549// String returns the string representation
43550func (s SigningProfileParameter) String() string {
43551	return awsutil.Prettify(s)
43552}
43553
43554// GoString returns the string representation
43555func (s SigningProfileParameter) GoString() string {
43556	return s.String()
43557}
43558
43559// SetCertificateArn sets the CertificateArn field's value.
43560func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
43561	s.CertificateArn = &v
43562	return s
43563}
43564
43565// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
43566func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
43567	s.CertificatePathOnDevice = &v
43568	return s
43569}
43570
43571// SetPlatform sets the Platform field's value.
43572func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
43573	s.Platform = &v
43574	return s
43575}
43576
43577// Describes an action to publish to an Amazon SNS topic.
43578type SnsAction struct {
43579	_ struct{} `type:"structure"`
43580
43581	// (Optional) The message format of the message to publish. Accepted values
43582	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
43583	// this setting to determine if the payload should be parsed and relevant platform-specific
43584	// bits of the payload should be extracted. To read more about SNS message formats,
43585	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
43586	// refer to their official documentation.
43587	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
43588
43589	// The ARN of the IAM role that grants access.
43590	//
43591	// RoleArn is a required field
43592	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43593
43594	// The ARN of the SNS topic.
43595	//
43596	// TargetArn is a required field
43597	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
43598}
43599
43600// String returns the string representation
43601func (s SnsAction) String() string {
43602	return awsutil.Prettify(s)
43603}
43604
43605// GoString returns the string representation
43606func (s SnsAction) GoString() string {
43607	return s.String()
43608}
43609
43610// Validate inspects the fields of the type to determine if they are valid.
43611func (s *SnsAction) Validate() error {
43612	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
43613	if s.RoleArn == nil {
43614		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43615	}
43616	if s.TargetArn == nil {
43617		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
43618	}
43619
43620	if invalidParams.Len() > 0 {
43621		return invalidParams
43622	}
43623	return nil
43624}
43625
43626// SetMessageFormat sets the MessageFormat field's value.
43627func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
43628	s.MessageFormat = &v
43629	return s
43630}
43631
43632// SetRoleArn sets the RoleArn field's value.
43633func (s *SnsAction) SetRoleArn(v string) *SnsAction {
43634	s.RoleArn = &v
43635	return s
43636}
43637
43638// SetTargetArn sets the TargetArn field's value.
43639func (s *SnsAction) SetTargetArn(v string) *SnsAction {
43640	s.TargetArn = &v
43641	return s
43642}
43643
43644// The Rule-SQL expression can't be parsed correctly.
43645type SqlParseException struct {
43646	_            struct{}                  `type:"structure"`
43647	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
43648
43649	// The message for the exception.
43650	Message_ *string `locationName:"message" type:"string"`
43651}
43652
43653// String returns the string representation
43654func (s SqlParseException) String() string {
43655	return awsutil.Prettify(s)
43656}
43657
43658// GoString returns the string representation
43659func (s SqlParseException) GoString() string {
43660	return s.String()
43661}
43662
43663func newErrorSqlParseException(v protocol.ResponseMetadata) error {
43664	return &SqlParseException{
43665		RespMetadata: v,
43666	}
43667}
43668
43669// Code returns the exception type name.
43670func (s *SqlParseException) Code() string {
43671	return "SqlParseException"
43672}
43673
43674// Message returns the exception's message.
43675func (s *SqlParseException) Message() string {
43676	if s.Message_ != nil {
43677		return *s.Message_
43678	}
43679	return ""
43680}
43681
43682// OrigErr always returns nil, satisfies awserr.Error interface.
43683func (s *SqlParseException) OrigErr() error {
43684	return nil
43685}
43686
43687func (s *SqlParseException) Error() string {
43688	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
43689}
43690
43691// Status code returns the HTTP status code for the request's response error.
43692func (s *SqlParseException) StatusCode() int {
43693	return s.RespMetadata.StatusCode
43694}
43695
43696// RequestID returns the service's response RequestID for request.
43697func (s *SqlParseException) RequestID() string {
43698	return s.RespMetadata.RequestID
43699}
43700
43701// Describes an action to publish data to an Amazon SQS queue.
43702type SqsAction struct {
43703	_ struct{} `type:"structure"`
43704
43705	// The URL of the Amazon SQS queue.
43706	//
43707	// QueueUrl is a required field
43708	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
43709
43710	// The ARN of the IAM role that grants access.
43711	//
43712	// RoleArn is a required field
43713	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43714
43715	// Specifies whether to use Base64 encoding.
43716	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
43717}
43718
43719// String returns the string representation
43720func (s SqsAction) String() string {
43721	return awsutil.Prettify(s)
43722}
43723
43724// GoString returns the string representation
43725func (s SqsAction) GoString() string {
43726	return s.String()
43727}
43728
43729// Validate inspects the fields of the type to determine if they are valid.
43730func (s *SqsAction) Validate() error {
43731	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
43732	if s.QueueUrl == nil {
43733		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
43734	}
43735	if s.RoleArn == nil {
43736		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43737	}
43738
43739	if invalidParams.Len() > 0 {
43740		return invalidParams
43741	}
43742	return nil
43743}
43744
43745// SetQueueUrl sets the QueueUrl field's value.
43746func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
43747	s.QueueUrl = &v
43748	return s
43749}
43750
43751// SetRoleArn sets the RoleArn field's value.
43752func (s *SqsAction) SetRoleArn(v string) *SqsAction {
43753	s.RoleArn = &v
43754	return s
43755}
43756
43757// SetUseBase64 sets the UseBase64 field's value.
43758func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
43759	s.UseBase64 = &v
43760	return s
43761}
43762
43763type StartAuditMitigationActionsTaskInput struct {
43764	_ struct{} `type:"structure"`
43765
43766	// For an audit check, specifies which mitigation actions to apply. Those actions
43767	// must be defined in your AWS account.
43768	//
43769	// AuditCheckToActionsMapping is a required field
43770	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
43771
43772	// Each audit mitigation task must have a unique client request token. If you
43773	// try to start a new task with the same token as a task that already exists,
43774	// an exception occurs. If you omit this value, a unique client request token
43775	// is generated automatically.
43776	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
43777
43778	// Specifies the audit findings to which the mitigation actions are applied.
43779	// You can apply them to a type of audit check, to all findings from an audit,
43780	// or to a speecific set of findings.
43781	//
43782	// Target is a required field
43783	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
43784
43785	// A unique identifier for the task. You can use this identifier to check the
43786	// status of the task or to cancel it.
43787	//
43788	// TaskId is a required field
43789	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
43790}
43791
43792// String returns the string representation
43793func (s StartAuditMitigationActionsTaskInput) String() string {
43794	return awsutil.Prettify(s)
43795}
43796
43797// GoString returns the string representation
43798func (s StartAuditMitigationActionsTaskInput) GoString() string {
43799	return s.String()
43800}
43801
43802// Validate inspects the fields of the type to determine if they are valid.
43803func (s *StartAuditMitigationActionsTaskInput) Validate() error {
43804	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
43805	if s.AuditCheckToActionsMapping == nil {
43806		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
43807	}
43808	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
43809		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
43810	}
43811	if s.Target == nil {
43812		invalidParams.Add(request.NewErrParamRequired("Target"))
43813	}
43814	if s.TaskId == nil {
43815		invalidParams.Add(request.NewErrParamRequired("TaskId"))
43816	}
43817	if s.TaskId != nil && len(*s.TaskId) < 1 {
43818		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
43819	}
43820	if s.Target != nil {
43821		if err := s.Target.Validate(); err != nil {
43822			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
43823		}
43824	}
43825
43826	if invalidParams.Len() > 0 {
43827		return invalidParams
43828	}
43829	return nil
43830}
43831
43832// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
43833func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
43834	s.AuditCheckToActionsMapping = v
43835	return s
43836}
43837
43838// SetClientRequestToken sets the ClientRequestToken field's value.
43839func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
43840	s.ClientRequestToken = &v
43841	return s
43842}
43843
43844// SetTarget sets the Target field's value.
43845func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
43846	s.Target = v
43847	return s
43848}
43849
43850// SetTaskId sets the TaskId field's value.
43851func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
43852	s.TaskId = &v
43853	return s
43854}
43855
43856type StartAuditMitigationActionsTaskOutput struct {
43857	_ struct{} `type:"structure"`
43858
43859	// The unique identifier for the audit mitigation task. This matches the taskId
43860	// that you specified in the request.
43861	TaskId *string `locationName:"taskId" min:"1" type:"string"`
43862}
43863
43864// String returns the string representation
43865func (s StartAuditMitigationActionsTaskOutput) String() string {
43866	return awsutil.Prettify(s)
43867}
43868
43869// GoString returns the string representation
43870func (s StartAuditMitigationActionsTaskOutput) GoString() string {
43871	return s.String()
43872}
43873
43874// SetTaskId sets the TaskId field's value.
43875func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
43876	s.TaskId = &v
43877	return s
43878}
43879
43880type StartOnDemandAuditTaskInput struct {
43881	_ struct{} `type:"structure"`
43882
43883	// Which checks are performed during the audit. The checks you specify must
43884	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
43885	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
43886	// to select which checks are enabled.
43887	//
43888	// TargetCheckNames is a required field
43889	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
43890}
43891
43892// String returns the string representation
43893func (s StartOnDemandAuditTaskInput) String() string {
43894	return awsutil.Prettify(s)
43895}
43896
43897// GoString returns the string representation
43898func (s StartOnDemandAuditTaskInput) GoString() string {
43899	return s.String()
43900}
43901
43902// Validate inspects the fields of the type to determine if they are valid.
43903func (s *StartOnDemandAuditTaskInput) Validate() error {
43904	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
43905	if s.TargetCheckNames == nil {
43906		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
43907	}
43908
43909	if invalidParams.Len() > 0 {
43910		return invalidParams
43911	}
43912	return nil
43913}
43914
43915// SetTargetCheckNames sets the TargetCheckNames field's value.
43916func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
43917	s.TargetCheckNames = v
43918	return s
43919}
43920
43921type StartOnDemandAuditTaskOutput struct {
43922	_ struct{} `type:"structure"`
43923
43924	// The ID of the on-demand audit you started.
43925	TaskId *string `locationName:"taskId" min:"1" type:"string"`
43926}
43927
43928// String returns the string representation
43929func (s StartOnDemandAuditTaskOutput) String() string {
43930	return awsutil.Prettify(s)
43931}
43932
43933// GoString returns the string representation
43934func (s StartOnDemandAuditTaskOutput) GoString() string {
43935	return s.String()
43936}
43937
43938// SetTaskId sets the TaskId field's value.
43939func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
43940	s.TaskId = &v
43941	return s
43942}
43943
43944// Information required to start a signing job.
43945type StartSigningJobParameter struct {
43946	_ struct{} `type:"structure"`
43947
43948	// The location to write the code-signed file.
43949	Destination *Destination `locationName:"destination" type:"structure"`
43950
43951	// The code-signing profile name.
43952	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
43953
43954	// Describes the code-signing profile.
43955	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
43956}
43957
43958// String returns the string representation
43959func (s StartSigningJobParameter) String() string {
43960	return awsutil.Prettify(s)
43961}
43962
43963// GoString returns the string representation
43964func (s StartSigningJobParameter) GoString() string {
43965	return s.String()
43966}
43967
43968// Validate inspects the fields of the type to determine if they are valid.
43969func (s *StartSigningJobParameter) Validate() error {
43970	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
43971	if s.Destination != nil {
43972		if err := s.Destination.Validate(); err != nil {
43973			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
43974		}
43975	}
43976
43977	if invalidParams.Len() > 0 {
43978		return invalidParams
43979	}
43980	return nil
43981}
43982
43983// SetDestination sets the Destination field's value.
43984func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
43985	s.Destination = v
43986	return s
43987}
43988
43989// SetSigningProfileName sets the SigningProfileName field's value.
43990func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
43991	s.SigningProfileName = &v
43992	return s
43993}
43994
43995// SetSigningProfileParameter sets the SigningProfileParameter field's value.
43996func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
43997	s.SigningProfileParameter = v
43998	return s
43999}
44000
44001type StartThingRegistrationTaskInput struct {
44002	_ struct{} `type:"structure"`
44003
44004	// The S3 bucket that contains the input file.
44005	//
44006	// InputFileBucket is a required field
44007	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
44008
44009	// The name of input file within the S3 bucket. This file contains a newline
44010	// delimited JSON file. Each line contains the parameter values to provision
44011	// one device (thing).
44012	//
44013	// InputFileKey is a required field
44014	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
44015
44016	// The IAM role ARN that grants permission the input file.
44017	//
44018	// RoleArn is a required field
44019	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
44020
44021	// The provisioning template.
44022	//
44023	// TemplateBody is a required field
44024	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
44025}
44026
44027// String returns the string representation
44028func (s StartThingRegistrationTaskInput) String() string {
44029	return awsutil.Prettify(s)
44030}
44031
44032// GoString returns the string representation
44033func (s StartThingRegistrationTaskInput) GoString() string {
44034	return s.String()
44035}
44036
44037// Validate inspects the fields of the type to determine if they are valid.
44038func (s *StartThingRegistrationTaskInput) Validate() error {
44039	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
44040	if s.InputFileBucket == nil {
44041		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
44042	}
44043	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
44044		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
44045	}
44046	if s.InputFileKey == nil {
44047		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
44048	}
44049	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
44050		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
44051	}
44052	if s.RoleArn == nil {
44053		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
44054	}
44055	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
44056		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
44057	}
44058	if s.TemplateBody == nil {
44059		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
44060	}
44061
44062	if invalidParams.Len() > 0 {
44063		return invalidParams
44064	}
44065	return nil
44066}
44067
44068// SetInputFileBucket sets the InputFileBucket field's value.
44069func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
44070	s.InputFileBucket = &v
44071	return s
44072}
44073
44074// SetInputFileKey sets the InputFileKey field's value.
44075func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
44076	s.InputFileKey = &v
44077	return s
44078}
44079
44080// SetRoleArn sets the RoleArn field's value.
44081func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
44082	s.RoleArn = &v
44083	return s
44084}
44085
44086// SetTemplateBody sets the TemplateBody field's value.
44087func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
44088	s.TemplateBody = &v
44089	return s
44090}
44091
44092type StartThingRegistrationTaskOutput struct {
44093	_ struct{} `type:"structure"`
44094
44095	// The bulk thing provisioning task ID.
44096	TaskId *string `locationName:"taskId" type:"string"`
44097}
44098
44099// String returns the string representation
44100func (s StartThingRegistrationTaskOutput) String() string {
44101	return awsutil.Prettify(s)
44102}
44103
44104// GoString returns the string representation
44105func (s StartThingRegistrationTaskOutput) GoString() string {
44106	return s.String()
44107}
44108
44109// SetTaskId sets the TaskId field's value.
44110func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
44111	s.TaskId = &v
44112	return s
44113}
44114
44115// A statistical ranking (percentile) which indicates a threshold value by which
44116// a behavior is determined to be in compliance or in violation of the behavior.
44117type StatisticalThreshold struct {
44118	_ struct{} `type:"structure"`
44119
44120	// The percentile which resolves to a threshold value by which compliance with
44121	// a behavior is determined. Metrics are collected over the specified period
44122	// (durationSeconds) from all reporting devices in your account and statistical
44123	// ranks are calculated. Then, the measurements from a device are collected
44124	// over the same period. If the accumulated measurements from the device fall
44125	// above or below (comparisonOperator) the value associated with the percentile
44126	// specified, then the device is considered to be in compliance with the behavior,
44127	// otherwise a violation occurs.
44128	Statistic *string `locationName:"statistic" type:"string"`
44129}
44130
44131// String returns the string representation
44132func (s StatisticalThreshold) String() string {
44133	return awsutil.Prettify(s)
44134}
44135
44136// GoString returns the string representation
44137func (s StatisticalThreshold) GoString() string {
44138	return s.String()
44139}
44140
44141// SetStatistic sets the Statistic field's value.
44142func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
44143	s.Statistic = &v
44144	return s
44145}
44146
44147// A map of key-value pairs for all supported statistics. Currently, only count
44148// is supported.
44149type Statistics struct {
44150	_ struct{} `type:"structure"`
44151
44152	// The average of the aggregated field values.
44153	Average *float64 `locationName:"average" type:"double"`
44154
44155	// The count of things that match the query.
44156	Count *int64 `locationName:"count" type:"integer"`
44157
44158	// The maximum aggregated field value.
44159	Maximum *float64 `locationName:"maximum" type:"double"`
44160
44161	// The minimum aggregated field value.
44162	Minimum *float64 `locationName:"minimum" type:"double"`
44163
44164	// The standard deviation of the aggregated field values.
44165	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
44166
44167	// The sum of the aggregated field values.
44168	Sum *float64 `locationName:"sum" type:"double"`
44169
44170	// The sum of the squares of the aggregated field values.
44171	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
44172
44173	// The variance of the aggregated field values.
44174	Variance *float64 `locationName:"variance" type:"double"`
44175}
44176
44177// String returns the string representation
44178func (s Statistics) String() string {
44179	return awsutil.Prettify(s)
44180}
44181
44182// GoString returns the string representation
44183func (s Statistics) GoString() string {
44184	return s.String()
44185}
44186
44187// SetAverage sets the Average field's value.
44188func (s *Statistics) SetAverage(v float64) *Statistics {
44189	s.Average = &v
44190	return s
44191}
44192
44193// SetCount sets the Count field's value.
44194func (s *Statistics) SetCount(v int64) *Statistics {
44195	s.Count = &v
44196	return s
44197}
44198
44199// SetMaximum sets the Maximum field's value.
44200func (s *Statistics) SetMaximum(v float64) *Statistics {
44201	s.Maximum = &v
44202	return s
44203}
44204
44205// SetMinimum sets the Minimum field's value.
44206func (s *Statistics) SetMinimum(v float64) *Statistics {
44207	s.Minimum = &v
44208	return s
44209}
44210
44211// SetStdDeviation sets the StdDeviation field's value.
44212func (s *Statistics) SetStdDeviation(v float64) *Statistics {
44213	s.StdDeviation = &v
44214	return s
44215}
44216
44217// SetSum sets the Sum field's value.
44218func (s *Statistics) SetSum(v float64) *Statistics {
44219	s.Sum = &v
44220	return s
44221}
44222
44223// SetSumOfSquares sets the SumOfSquares field's value.
44224func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
44225	s.SumOfSquares = &v
44226	return s
44227}
44228
44229// SetVariance sets the Variance field's value.
44230func (s *Statistics) SetVariance(v float64) *Statistics {
44231	s.Variance = &v
44232	return s
44233}
44234
44235// Starts execution of a Step Functions state machine.
44236type StepFunctionsAction struct {
44237	_ struct{} `type:"structure"`
44238
44239	// (Optional) A name will be given to the state machine execution consisting
44240	// of this prefix followed by a UUID. Step Functions automatically creates a
44241	// unique name for each state machine execution if one is not provided.
44242	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
44243
44244	// The ARN of the role that grants IoT permission to start execution of a state
44245	// machine ("Action":"states:StartExecution").
44246	//
44247	// RoleArn is a required field
44248	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
44249
44250	// The name of the Step Functions state machine whose execution will be started.
44251	//
44252	// StateMachineName is a required field
44253	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
44254}
44255
44256// String returns the string representation
44257func (s StepFunctionsAction) String() string {
44258	return awsutil.Prettify(s)
44259}
44260
44261// GoString returns the string representation
44262func (s StepFunctionsAction) GoString() string {
44263	return s.String()
44264}
44265
44266// Validate inspects the fields of the type to determine if they are valid.
44267func (s *StepFunctionsAction) Validate() error {
44268	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
44269	if s.RoleArn == nil {
44270		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
44271	}
44272	if s.StateMachineName == nil {
44273		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
44274	}
44275
44276	if invalidParams.Len() > 0 {
44277		return invalidParams
44278	}
44279	return nil
44280}
44281
44282// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
44283func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
44284	s.ExecutionNamePrefix = &v
44285	return s
44286}
44287
44288// SetRoleArn sets the RoleArn field's value.
44289func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
44290	s.RoleArn = &v
44291	return s
44292}
44293
44294// SetStateMachineName sets the StateMachineName field's value.
44295func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
44296	s.StateMachineName = &v
44297	return s
44298}
44299
44300type StopThingRegistrationTaskInput struct {
44301	_ struct{} `type:"structure"`
44302
44303	// The bulk thing provisioning task ID.
44304	//
44305	// TaskId is a required field
44306	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
44307}
44308
44309// String returns the string representation
44310func (s StopThingRegistrationTaskInput) String() string {
44311	return awsutil.Prettify(s)
44312}
44313
44314// GoString returns the string representation
44315func (s StopThingRegistrationTaskInput) GoString() string {
44316	return s.String()
44317}
44318
44319// Validate inspects the fields of the type to determine if they are valid.
44320func (s *StopThingRegistrationTaskInput) Validate() error {
44321	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
44322	if s.TaskId == nil {
44323		invalidParams.Add(request.NewErrParamRequired("TaskId"))
44324	}
44325	if s.TaskId != nil && len(*s.TaskId) < 1 {
44326		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
44327	}
44328
44329	if invalidParams.Len() > 0 {
44330		return invalidParams
44331	}
44332	return nil
44333}
44334
44335// SetTaskId sets the TaskId field's value.
44336func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
44337	s.TaskId = &v
44338	return s
44339}
44340
44341type StopThingRegistrationTaskOutput struct {
44342	_ struct{} `type:"structure"`
44343}
44344
44345// String returns the string representation
44346func (s StopThingRegistrationTaskOutput) String() string {
44347	return awsutil.Prettify(s)
44348}
44349
44350// GoString returns the string representation
44351func (s StopThingRegistrationTaskOutput) GoString() string {
44352	return s.String()
44353}
44354
44355// Describes a group of files that can be streamed.
44356type Stream struct {
44357	_ struct{} `type:"structure"`
44358
44359	// The ID of a file associated with a stream.
44360	FileId *int64 `locationName:"fileId" type:"integer"`
44361
44362	// The stream ID.
44363	StreamId *string `locationName:"streamId" min:"1" type:"string"`
44364}
44365
44366// String returns the string representation
44367func (s Stream) String() string {
44368	return awsutil.Prettify(s)
44369}
44370
44371// GoString returns the string representation
44372func (s Stream) GoString() string {
44373	return s.String()
44374}
44375
44376// Validate inspects the fields of the type to determine if they are valid.
44377func (s *Stream) Validate() error {
44378	invalidParams := request.ErrInvalidParams{Context: "Stream"}
44379	if s.StreamId != nil && len(*s.StreamId) < 1 {
44380		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
44381	}
44382
44383	if invalidParams.Len() > 0 {
44384		return invalidParams
44385	}
44386	return nil
44387}
44388
44389// SetFileId sets the FileId field's value.
44390func (s *Stream) SetFileId(v int64) *Stream {
44391	s.FileId = &v
44392	return s
44393}
44394
44395// SetStreamId sets the StreamId field's value.
44396func (s *Stream) SetStreamId(v string) *Stream {
44397	s.StreamId = &v
44398	return s
44399}
44400
44401// Represents a file to stream.
44402type StreamFile struct {
44403	_ struct{} `type:"structure"`
44404
44405	// The file ID.
44406	FileId *int64 `locationName:"fileId" type:"integer"`
44407
44408	// The location of the file in S3.
44409	S3Location *S3Location `locationName:"s3Location" type:"structure"`
44410}
44411
44412// String returns the string representation
44413func (s StreamFile) String() string {
44414	return awsutil.Prettify(s)
44415}
44416
44417// GoString returns the string representation
44418func (s StreamFile) GoString() string {
44419	return s.String()
44420}
44421
44422// Validate inspects the fields of the type to determine if they are valid.
44423func (s *StreamFile) Validate() error {
44424	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
44425	if s.S3Location != nil {
44426		if err := s.S3Location.Validate(); err != nil {
44427			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
44428		}
44429	}
44430
44431	if invalidParams.Len() > 0 {
44432		return invalidParams
44433	}
44434	return nil
44435}
44436
44437// SetFileId sets the FileId field's value.
44438func (s *StreamFile) SetFileId(v int64) *StreamFile {
44439	s.FileId = &v
44440	return s
44441}
44442
44443// SetS3Location sets the S3Location field's value.
44444func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
44445	s.S3Location = v
44446	return s
44447}
44448
44449// Information about a stream.
44450type StreamInfo struct {
44451	_ struct{} `type:"structure"`
44452
44453	// The date when the stream was created.
44454	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
44455
44456	// The description of the stream.
44457	Description *string `locationName:"description" type:"string"`
44458
44459	// The files to stream.
44460	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
44461
44462	// The date when the stream was last updated.
44463	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
44464
44465	// An IAM role AWS IoT assumes to access your S3 files.
44466	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
44467
44468	// The stream ARN.
44469	StreamArn *string `locationName:"streamArn" type:"string"`
44470
44471	// The stream ID.
44472	StreamId *string `locationName:"streamId" min:"1" type:"string"`
44473
44474	// The stream version.
44475	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
44476}
44477
44478// String returns the string representation
44479func (s StreamInfo) String() string {
44480	return awsutil.Prettify(s)
44481}
44482
44483// GoString returns the string representation
44484func (s StreamInfo) GoString() string {
44485	return s.String()
44486}
44487
44488// SetCreatedAt sets the CreatedAt field's value.
44489func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
44490	s.CreatedAt = &v
44491	return s
44492}
44493
44494// SetDescription sets the Description field's value.
44495func (s *StreamInfo) SetDescription(v string) *StreamInfo {
44496	s.Description = &v
44497	return s
44498}
44499
44500// SetFiles sets the Files field's value.
44501func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
44502	s.Files = v
44503	return s
44504}
44505
44506// SetLastUpdatedAt sets the LastUpdatedAt field's value.
44507func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
44508	s.LastUpdatedAt = &v
44509	return s
44510}
44511
44512// SetRoleArn sets the RoleArn field's value.
44513func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
44514	s.RoleArn = &v
44515	return s
44516}
44517
44518// SetStreamArn sets the StreamArn field's value.
44519func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
44520	s.StreamArn = &v
44521	return s
44522}
44523
44524// SetStreamId sets the StreamId field's value.
44525func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
44526	s.StreamId = &v
44527	return s
44528}
44529
44530// SetStreamVersion sets the StreamVersion field's value.
44531func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
44532	s.StreamVersion = &v
44533	return s
44534}
44535
44536// A summary of a stream.
44537type StreamSummary struct {
44538	_ struct{} `type:"structure"`
44539
44540	// A description of the stream.
44541	Description *string `locationName:"description" type:"string"`
44542
44543	// The stream ARN.
44544	StreamArn *string `locationName:"streamArn" type:"string"`
44545
44546	// The stream ID.
44547	StreamId *string `locationName:"streamId" min:"1" type:"string"`
44548
44549	// The stream version.
44550	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
44551}
44552
44553// String returns the string representation
44554func (s StreamSummary) String() string {
44555	return awsutil.Prettify(s)
44556}
44557
44558// GoString returns the string representation
44559func (s StreamSummary) GoString() string {
44560	return s.String()
44561}
44562
44563// SetDescription sets the Description field's value.
44564func (s *StreamSummary) SetDescription(v string) *StreamSummary {
44565	s.Description = &v
44566	return s
44567}
44568
44569// SetStreamArn sets the StreamArn field's value.
44570func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
44571	s.StreamArn = &v
44572	return s
44573}
44574
44575// SetStreamId sets the StreamId field's value.
44576func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
44577	s.StreamId = &v
44578	return s
44579}
44580
44581// SetStreamVersion sets the StreamVersion field's value.
44582func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
44583	s.StreamVersion = &v
44584	return s
44585}
44586
44587// A set of key/value pairs that are used to manage the resource.
44588type Tag struct {
44589	_ struct{} `type:"structure"`
44590
44591	// The tag's key.
44592	//
44593	// Key is a required field
44594	Key *string `min:"1" type:"string" required:"true"`
44595
44596	// The tag's value.
44597	Value *string `min:"1" type:"string"`
44598}
44599
44600// String returns the string representation
44601func (s Tag) String() string {
44602	return awsutil.Prettify(s)
44603}
44604
44605// GoString returns the string representation
44606func (s Tag) GoString() string {
44607	return s.String()
44608}
44609
44610// Validate inspects the fields of the type to determine if they are valid.
44611func (s *Tag) Validate() error {
44612	invalidParams := request.ErrInvalidParams{Context: "Tag"}
44613	if s.Key == nil {
44614		invalidParams.Add(request.NewErrParamRequired("Key"))
44615	}
44616	if s.Key != nil && len(*s.Key) < 1 {
44617		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
44618	}
44619	if s.Value != nil && len(*s.Value) < 1 {
44620		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
44621	}
44622
44623	if invalidParams.Len() > 0 {
44624		return invalidParams
44625	}
44626	return nil
44627}
44628
44629// SetKey sets the Key field's value.
44630func (s *Tag) SetKey(v string) *Tag {
44631	s.Key = &v
44632	return s
44633}
44634
44635// SetValue sets the Value field's value.
44636func (s *Tag) SetValue(v string) *Tag {
44637	s.Value = &v
44638	return s
44639}
44640
44641type TagResourceInput struct {
44642	_ struct{} `type:"structure"`
44643
44644	// The ARN of the resource.
44645	//
44646	// ResourceArn is a required field
44647	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
44648
44649	// The new or modified tags for the resource.
44650	//
44651	// Tags is a required field
44652	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
44653}
44654
44655// String returns the string representation
44656func (s TagResourceInput) String() string {
44657	return awsutil.Prettify(s)
44658}
44659
44660// GoString returns the string representation
44661func (s TagResourceInput) GoString() string {
44662	return s.String()
44663}
44664
44665// Validate inspects the fields of the type to determine if they are valid.
44666func (s *TagResourceInput) Validate() error {
44667	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
44668	if s.ResourceArn == nil {
44669		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
44670	}
44671	if s.Tags == nil {
44672		invalidParams.Add(request.NewErrParamRequired("Tags"))
44673	}
44674	if s.Tags != nil {
44675		for i, v := range s.Tags {
44676			if v == nil {
44677				continue
44678			}
44679			if err := v.Validate(); err != nil {
44680				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
44681			}
44682		}
44683	}
44684
44685	if invalidParams.Len() > 0 {
44686		return invalidParams
44687	}
44688	return nil
44689}
44690
44691// SetResourceArn sets the ResourceArn field's value.
44692func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
44693	s.ResourceArn = &v
44694	return s
44695}
44696
44697// SetTags sets the Tags field's value.
44698func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
44699	s.Tags = v
44700	return s
44701}
44702
44703type TagResourceOutput struct {
44704	_ struct{} `type:"structure"`
44705}
44706
44707// String returns the string representation
44708func (s TagResourceOutput) String() string {
44709	return awsutil.Prettify(s)
44710}
44711
44712// GoString returns the string representation
44713func (s TagResourceOutput) GoString() string {
44714	return s.String()
44715}
44716
44717// This exception occurs if you attempt to start a task with the same task-id
44718// as an existing task but with a different clientRequestToken.
44719type TaskAlreadyExistsException struct {
44720	_            struct{}                  `type:"structure"`
44721	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
44722
44723	Message_ *string `locationName:"message" type:"string"`
44724}
44725
44726// String returns the string representation
44727func (s TaskAlreadyExistsException) String() string {
44728	return awsutil.Prettify(s)
44729}
44730
44731// GoString returns the string representation
44732func (s TaskAlreadyExistsException) GoString() string {
44733	return s.String()
44734}
44735
44736func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
44737	return &TaskAlreadyExistsException{
44738		RespMetadata: v,
44739	}
44740}
44741
44742// Code returns the exception type name.
44743func (s *TaskAlreadyExistsException) Code() string {
44744	return "TaskAlreadyExistsException"
44745}
44746
44747// Message returns the exception's message.
44748func (s *TaskAlreadyExistsException) Message() string {
44749	if s.Message_ != nil {
44750		return *s.Message_
44751	}
44752	return ""
44753}
44754
44755// OrigErr always returns nil, satisfies awserr.Error interface.
44756func (s *TaskAlreadyExistsException) OrigErr() error {
44757	return nil
44758}
44759
44760func (s *TaskAlreadyExistsException) Error() string {
44761	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
44762}
44763
44764// Status code returns the HTTP status code for the request's response error.
44765func (s *TaskAlreadyExistsException) StatusCode() int {
44766	return s.RespMetadata.StatusCode
44767}
44768
44769// RequestID returns the service's response RequestID for request.
44770func (s *TaskAlreadyExistsException) RequestID() string {
44771	return s.RespMetadata.RequestID
44772}
44773
44774// Statistics for the checks performed during the audit.
44775type TaskStatistics struct {
44776	_ struct{} `type:"structure"`
44777
44778	// The number of checks that did not run because the audit was canceled.
44779	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
44780
44781	// The number of checks that found compliant resources.
44782	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
44783
44784	// The number of checks.
44785	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
44786
44787	// The number of checks in progress.
44788	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
44789
44790	// The number of checks that found noncompliant resources.
44791	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
44792
44793	// The number of checks in this audit.
44794	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
44795
44796	// The number of checks waiting for data collection.
44797	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
44798}
44799
44800// String returns the string representation
44801func (s TaskStatistics) String() string {
44802	return awsutil.Prettify(s)
44803}
44804
44805// GoString returns the string representation
44806func (s TaskStatistics) GoString() string {
44807	return s.String()
44808}
44809
44810// SetCanceledChecks sets the CanceledChecks field's value.
44811func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
44812	s.CanceledChecks = &v
44813	return s
44814}
44815
44816// SetCompliantChecks sets the CompliantChecks field's value.
44817func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
44818	s.CompliantChecks = &v
44819	return s
44820}
44821
44822// SetFailedChecks sets the FailedChecks field's value.
44823func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
44824	s.FailedChecks = &v
44825	return s
44826}
44827
44828// SetInProgressChecks sets the InProgressChecks field's value.
44829func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
44830	s.InProgressChecks = &v
44831	return s
44832}
44833
44834// SetNonCompliantChecks sets the NonCompliantChecks field's value.
44835func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
44836	s.NonCompliantChecks = &v
44837	return s
44838}
44839
44840// SetTotalChecks sets the TotalChecks field's value.
44841func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
44842	s.TotalChecks = &v
44843	return s
44844}
44845
44846// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
44847func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
44848	s.WaitingForDataCollectionChecks = &v
44849	return s
44850}
44851
44852// Provides summary counts of how many tasks for findings are in a particular
44853// state. This information is included in the response from DescribeAuditMitigationActionsTask.
44854type TaskStatisticsForAuditCheck struct {
44855	_ struct{} `type:"structure"`
44856
44857	// The number of findings to which the mitigation action task was canceled when
44858	// applied.
44859	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
44860
44861	// The number of findings for which at least one of the actions failed when
44862	// applied.
44863	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
44864
44865	// The number of findings skipped because of filter conditions provided in the
44866	// parameters to the command.
44867	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
44868
44869	// The number of findings for which all mitigation actions succeeded when applied.
44870	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
44871
44872	// The total number of findings to which a task is being applied.
44873	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
44874}
44875
44876// String returns the string representation
44877func (s TaskStatisticsForAuditCheck) String() string {
44878	return awsutil.Prettify(s)
44879}
44880
44881// GoString returns the string representation
44882func (s TaskStatisticsForAuditCheck) GoString() string {
44883	return s.String()
44884}
44885
44886// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
44887func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
44888	s.CanceledFindingsCount = &v
44889	return s
44890}
44891
44892// SetFailedFindingsCount sets the FailedFindingsCount field's value.
44893func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
44894	s.FailedFindingsCount = &v
44895	return s
44896}
44897
44898// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
44899func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
44900	s.SkippedFindingsCount = &v
44901	return s
44902}
44903
44904// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
44905func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
44906	s.SucceededFindingsCount = &v
44907	return s
44908}
44909
44910// SetTotalFindingsCount sets the TotalFindingsCount field's value.
44911func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
44912	s.TotalFindingsCount = &v
44913	return s
44914}
44915
44916type TestAuthorizationInput struct {
44917	_ struct{} `type:"structure"`
44918
44919	// A list of authorization info objects. Simulating authorization will create
44920	// a response for each authInfo object in the list.
44921	//
44922	// AuthInfos is a required field
44923	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
44924
44925	// The MQTT client ID.
44926	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
44927
44928	// The Cognito identity pool ID.
44929	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
44930
44931	// When testing custom authorization, the policies specified here are treated
44932	// as if they are attached to the principal being authorized.
44933	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
44934
44935	// When testing custom authorization, the policies specified here are treated
44936	// as if they are not attached to the principal being authorized.
44937	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
44938
44939	// The principal.
44940	Principal *string `locationName:"principal" type:"string"`
44941}
44942
44943// String returns the string representation
44944func (s TestAuthorizationInput) String() string {
44945	return awsutil.Prettify(s)
44946}
44947
44948// GoString returns the string representation
44949func (s TestAuthorizationInput) GoString() string {
44950	return s.String()
44951}
44952
44953// Validate inspects the fields of the type to determine if they are valid.
44954func (s *TestAuthorizationInput) Validate() error {
44955	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
44956	if s.AuthInfos == nil {
44957		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
44958	}
44959	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
44960		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
44961	}
44962	if s.AuthInfos != nil {
44963		for i, v := range s.AuthInfos {
44964			if v == nil {
44965				continue
44966			}
44967			if err := v.Validate(); err != nil {
44968				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
44969			}
44970		}
44971	}
44972
44973	if invalidParams.Len() > 0 {
44974		return invalidParams
44975	}
44976	return nil
44977}
44978
44979// SetAuthInfos sets the AuthInfos field's value.
44980func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
44981	s.AuthInfos = v
44982	return s
44983}
44984
44985// SetClientId sets the ClientId field's value.
44986func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
44987	s.ClientId = &v
44988	return s
44989}
44990
44991// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
44992func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
44993	s.CognitoIdentityPoolId = &v
44994	return s
44995}
44996
44997// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
44998func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
44999	s.PolicyNamesToAdd = v
45000	return s
45001}
45002
45003// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
45004func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
45005	s.PolicyNamesToSkip = v
45006	return s
45007}
45008
45009// SetPrincipal sets the Principal field's value.
45010func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
45011	s.Principal = &v
45012	return s
45013}
45014
45015type TestAuthorizationOutput struct {
45016	_ struct{} `type:"structure"`
45017
45018	// The authentication results.
45019	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
45020}
45021
45022// String returns the string representation
45023func (s TestAuthorizationOutput) String() string {
45024	return awsutil.Prettify(s)
45025}
45026
45027// GoString returns the string representation
45028func (s TestAuthorizationOutput) GoString() string {
45029	return s.String()
45030}
45031
45032// SetAuthResults sets the AuthResults field's value.
45033func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
45034	s.AuthResults = v
45035	return s
45036}
45037
45038type TestInvokeAuthorizerInput struct {
45039	_ struct{} `type:"structure"`
45040
45041	// The custom authorizer name.
45042	//
45043	// AuthorizerName is a required field
45044	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
45045
45046	// Specifies a test HTTP authorization request.
45047	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
45048
45049	// Specifies a test MQTT authorization request.
45050	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
45051
45052	// Specifies a test TLS authorization request.
45053	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
45054
45055	// The token returned by your custom authentication service.
45056	Token *string `locationName:"token" min:"1" type:"string"`
45057
45058	// The signature made with the token and your custom authentication service's
45059	// private key. This value must be Base-64-encoded.
45060	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
45061}
45062
45063// String returns the string representation
45064func (s TestInvokeAuthorizerInput) String() string {
45065	return awsutil.Prettify(s)
45066}
45067
45068// GoString returns the string representation
45069func (s TestInvokeAuthorizerInput) GoString() string {
45070	return s.String()
45071}
45072
45073// Validate inspects the fields of the type to determine if they are valid.
45074func (s *TestInvokeAuthorizerInput) Validate() error {
45075	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
45076	if s.AuthorizerName == nil {
45077		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
45078	}
45079	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
45080		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
45081	}
45082	if s.Token != nil && len(*s.Token) < 1 {
45083		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
45084	}
45085	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
45086		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
45087	}
45088	if s.HttpContext != nil {
45089		if err := s.HttpContext.Validate(); err != nil {
45090			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
45091		}
45092	}
45093	if s.MqttContext != nil {
45094		if err := s.MqttContext.Validate(); err != nil {
45095			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
45096		}
45097	}
45098	if s.TlsContext != nil {
45099		if err := s.TlsContext.Validate(); err != nil {
45100			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
45101		}
45102	}
45103
45104	if invalidParams.Len() > 0 {
45105		return invalidParams
45106	}
45107	return nil
45108}
45109
45110// SetAuthorizerName sets the AuthorizerName field's value.
45111func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
45112	s.AuthorizerName = &v
45113	return s
45114}
45115
45116// SetHttpContext sets the HttpContext field's value.
45117func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
45118	s.HttpContext = v
45119	return s
45120}
45121
45122// SetMqttContext sets the MqttContext field's value.
45123func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
45124	s.MqttContext = v
45125	return s
45126}
45127
45128// SetTlsContext sets the TlsContext field's value.
45129func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
45130	s.TlsContext = v
45131	return s
45132}
45133
45134// SetToken sets the Token field's value.
45135func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
45136	s.Token = &v
45137	return s
45138}
45139
45140// SetTokenSignature sets the TokenSignature field's value.
45141func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
45142	s.TokenSignature = &v
45143	return s
45144}
45145
45146type TestInvokeAuthorizerOutput struct {
45147	_ struct{} `type:"structure"`
45148
45149	// The number of seconds after which the connection is terminated.
45150	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
45151
45152	// True if the token is authenticated, otherwise false.
45153	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
45154
45155	// IAM policy documents.
45156	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
45157
45158	// The principal ID.
45159	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
45160
45161	// The number of seconds after which the temporary credentials are refreshed.
45162	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
45163}
45164
45165// String returns the string representation
45166func (s TestInvokeAuthorizerOutput) String() string {
45167	return awsutil.Prettify(s)
45168}
45169
45170// GoString returns the string representation
45171func (s TestInvokeAuthorizerOutput) GoString() string {
45172	return s.String()
45173}
45174
45175// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
45176func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
45177	s.DisconnectAfterInSeconds = &v
45178	return s
45179}
45180
45181// SetIsAuthenticated sets the IsAuthenticated field's value.
45182func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
45183	s.IsAuthenticated = &v
45184	return s
45185}
45186
45187// SetPolicyDocuments sets the PolicyDocuments field's value.
45188func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
45189	s.PolicyDocuments = v
45190	return s
45191}
45192
45193// SetPrincipalId sets the PrincipalId field's value.
45194func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
45195	s.PrincipalId = &v
45196	return s
45197}
45198
45199// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
45200func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
45201	s.RefreshAfterInSeconds = &v
45202	return s
45203}
45204
45205// The properties of the thing, including thing name, thing type name, and a
45206// list of thing attributes.
45207type ThingAttribute struct {
45208	_ struct{} `type:"structure"`
45209
45210	// A list of thing attributes which are name-value pairs.
45211	Attributes map[string]*string `locationName:"attributes" type:"map"`
45212
45213	// The thing ARN.
45214	ThingArn *string `locationName:"thingArn" type:"string"`
45215
45216	// The name of the thing.
45217	ThingName *string `locationName:"thingName" min:"1" type:"string"`
45218
45219	// The name of the thing type, if the thing has been associated with a type.
45220	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
45221
45222	// The version of the thing record in the registry.
45223	Version *int64 `locationName:"version" type:"long"`
45224}
45225
45226// String returns the string representation
45227func (s ThingAttribute) String() string {
45228	return awsutil.Prettify(s)
45229}
45230
45231// GoString returns the string representation
45232func (s ThingAttribute) GoString() string {
45233	return s.String()
45234}
45235
45236// SetAttributes sets the Attributes field's value.
45237func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
45238	s.Attributes = v
45239	return s
45240}
45241
45242// SetThingArn sets the ThingArn field's value.
45243func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
45244	s.ThingArn = &v
45245	return s
45246}
45247
45248// SetThingName sets the ThingName field's value.
45249func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
45250	s.ThingName = &v
45251	return s
45252}
45253
45254// SetThingTypeName sets the ThingTypeName field's value.
45255func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
45256	s.ThingTypeName = &v
45257	return s
45258}
45259
45260// SetVersion sets the Version field's value.
45261func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
45262	s.Version = &v
45263	return s
45264}
45265
45266// The connectivity status of the thing.
45267type ThingConnectivity struct {
45268	_ struct{} `type:"structure"`
45269
45270	// True if the thing is connected to the AWS IoT service; false if it is not
45271	// connected.
45272	Connected *bool `locationName:"connected" type:"boolean"`
45273
45274	// The epoch time (in milliseconds) when the thing last connected or disconnected.
45275	// If the thing has been disconnected for more than a few weeks, the time value
45276	// might be missing.
45277	Timestamp *int64 `locationName:"timestamp" type:"long"`
45278}
45279
45280// String returns the string representation
45281func (s ThingConnectivity) String() string {
45282	return awsutil.Prettify(s)
45283}
45284
45285// GoString returns the string representation
45286func (s ThingConnectivity) GoString() string {
45287	return s.String()
45288}
45289
45290// SetConnected sets the Connected field's value.
45291func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
45292	s.Connected = &v
45293	return s
45294}
45295
45296// SetTimestamp sets the Timestamp field's value.
45297func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
45298	s.Timestamp = &v
45299	return s
45300}
45301
45302// The thing search index document.
45303type ThingDocument struct {
45304	_ struct{} `type:"structure"`
45305
45306	// The attributes.
45307	Attributes map[string]*string `locationName:"attributes" type:"map"`
45308
45309	// Indicates whether the thing is connected to the AWS IoT service.
45310	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
45311
45312	// The shadow.
45313	Shadow *string `locationName:"shadow" type:"string"`
45314
45315	// Thing group names.
45316	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
45317
45318	// The thing ID.
45319	ThingId *string `locationName:"thingId" type:"string"`
45320
45321	// The thing name.
45322	ThingName *string `locationName:"thingName" min:"1" type:"string"`
45323
45324	// The thing type name.
45325	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
45326}
45327
45328// String returns the string representation
45329func (s ThingDocument) String() string {
45330	return awsutil.Prettify(s)
45331}
45332
45333// GoString returns the string representation
45334func (s ThingDocument) GoString() string {
45335	return s.String()
45336}
45337
45338// SetAttributes sets the Attributes field's value.
45339func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
45340	s.Attributes = v
45341	return s
45342}
45343
45344// SetConnectivity sets the Connectivity field's value.
45345func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
45346	s.Connectivity = v
45347	return s
45348}
45349
45350// SetShadow sets the Shadow field's value.
45351func (s *ThingDocument) SetShadow(v string) *ThingDocument {
45352	s.Shadow = &v
45353	return s
45354}
45355
45356// SetThingGroupNames sets the ThingGroupNames field's value.
45357func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
45358	s.ThingGroupNames = v
45359	return s
45360}
45361
45362// SetThingId sets the ThingId field's value.
45363func (s *ThingDocument) SetThingId(v string) *ThingDocument {
45364	s.ThingId = &v
45365	return s
45366}
45367
45368// SetThingName sets the ThingName field's value.
45369func (s *ThingDocument) SetThingName(v string) *ThingDocument {
45370	s.ThingName = &v
45371	return s
45372}
45373
45374// SetThingTypeName sets the ThingTypeName field's value.
45375func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
45376	s.ThingTypeName = &v
45377	return s
45378}
45379
45380// The thing group search index document.
45381type ThingGroupDocument struct {
45382	_ struct{} `type:"structure"`
45383
45384	// The thing group attributes.
45385	Attributes map[string]*string `locationName:"attributes" type:"map"`
45386
45387	// Parent group names.
45388	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
45389
45390	// The thing group description.
45391	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
45392
45393	// The thing group ID.
45394	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
45395
45396	// The thing group name.
45397	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
45398}
45399
45400// String returns the string representation
45401func (s ThingGroupDocument) String() string {
45402	return awsutil.Prettify(s)
45403}
45404
45405// GoString returns the string representation
45406func (s ThingGroupDocument) GoString() string {
45407	return s.String()
45408}
45409
45410// SetAttributes sets the Attributes field's value.
45411func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
45412	s.Attributes = v
45413	return s
45414}
45415
45416// SetParentGroupNames sets the ParentGroupNames field's value.
45417func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
45418	s.ParentGroupNames = v
45419	return s
45420}
45421
45422// SetThingGroupDescription sets the ThingGroupDescription field's value.
45423func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
45424	s.ThingGroupDescription = &v
45425	return s
45426}
45427
45428// SetThingGroupId sets the ThingGroupId field's value.
45429func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
45430	s.ThingGroupId = &v
45431	return s
45432}
45433
45434// SetThingGroupName sets the ThingGroupName field's value.
45435func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
45436	s.ThingGroupName = &v
45437	return s
45438}
45439
45440// Thing group indexing configuration.
45441type ThingGroupIndexingConfiguration struct {
45442	_ struct{} `type:"structure"`
45443
45444	// A list of thing group fields to index. This list cannot contain any managed
45445	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
45446	//
45447	// Contains custom field names and their data type.
45448	CustomFields []*Field `locationName:"customFields" type:"list"`
45449
45450	// Contains fields that are indexed and whose types are already known by the
45451	// Fleet Indexing service.
45452	ManagedFields []*Field `locationName:"managedFields" type:"list"`
45453
45454	// Thing group indexing mode.
45455	//
45456	// ThingGroupIndexingMode is a required field
45457	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
45458}
45459
45460// String returns the string representation
45461func (s ThingGroupIndexingConfiguration) String() string {
45462	return awsutil.Prettify(s)
45463}
45464
45465// GoString returns the string representation
45466func (s ThingGroupIndexingConfiguration) GoString() string {
45467	return s.String()
45468}
45469
45470// Validate inspects the fields of the type to determine if they are valid.
45471func (s *ThingGroupIndexingConfiguration) Validate() error {
45472	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
45473	if s.ThingGroupIndexingMode == nil {
45474		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
45475	}
45476
45477	if invalidParams.Len() > 0 {
45478		return invalidParams
45479	}
45480	return nil
45481}
45482
45483// SetCustomFields sets the CustomFields field's value.
45484func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
45485	s.CustomFields = v
45486	return s
45487}
45488
45489// SetManagedFields sets the ManagedFields field's value.
45490func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
45491	s.ManagedFields = v
45492	return s
45493}
45494
45495// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
45496func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
45497	s.ThingGroupIndexingMode = &v
45498	return s
45499}
45500
45501// Thing group metadata.
45502type ThingGroupMetadata struct {
45503	_ struct{} `type:"structure"`
45504
45505	// The UNIX timestamp of when the thing group was created.
45506	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
45507
45508	// The parent thing group name.
45509	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
45510
45511	// The root parent thing group.
45512	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
45513}
45514
45515// String returns the string representation
45516func (s ThingGroupMetadata) String() string {
45517	return awsutil.Prettify(s)
45518}
45519
45520// GoString returns the string representation
45521func (s ThingGroupMetadata) GoString() string {
45522	return s.String()
45523}
45524
45525// SetCreationDate sets the CreationDate field's value.
45526func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
45527	s.CreationDate = &v
45528	return s
45529}
45530
45531// SetParentGroupName sets the ParentGroupName field's value.
45532func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
45533	s.ParentGroupName = &v
45534	return s
45535}
45536
45537// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
45538func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
45539	s.RootToParentThingGroups = v
45540	return s
45541}
45542
45543// Thing group properties.
45544type ThingGroupProperties struct {
45545	_ struct{} `type:"structure"`
45546
45547	// The thing group attributes in JSON format.
45548	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
45549
45550	// The thing group description.
45551	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
45552}
45553
45554// String returns the string representation
45555func (s ThingGroupProperties) String() string {
45556	return awsutil.Prettify(s)
45557}
45558
45559// GoString returns the string representation
45560func (s ThingGroupProperties) GoString() string {
45561	return s.String()
45562}
45563
45564// SetAttributePayload sets the AttributePayload field's value.
45565func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
45566	s.AttributePayload = v
45567	return s
45568}
45569
45570// SetThingGroupDescription sets the ThingGroupDescription field's value.
45571func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
45572	s.ThingGroupDescription = &v
45573	return s
45574}
45575
45576// The thing indexing configuration. For more information, see Managing Thing
45577// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
45578type ThingIndexingConfiguration struct {
45579	_ struct{} `type:"structure"`
45580
45581	// Contains custom field names and their data type.
45582	CustomFields []*Field `locationName:"customFields" type:"list"`
45583
45584	// Contains fields that are indexed and whose types are already known by the
45585	// Fleet Indexing service.
45586	ManagedFields []*Field `locationName:"managedFields" type:"list"`
45587
45588	// Thing connectivity indexing mode. Valid values are:
45589	//
45590	//    * STATUS – Your thing index contains connectivity status. To enable
45591	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
45592	//
45593	//    * OFF - Thing connectivity status indexing is disabled.
45594	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
45595
45596	// Thing indexing mode. Valid values are:
45597	//
45598	//    * REGISTRY – Your thing index contains registry data only.
45599	//
45600	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
45601	//    data.
45602	//
45603	//    * OFF - Thing indexing is disabled.
45604	//
45605	// ThingIndexingMode is a required field
45606	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
45607}
45608
45609// String returns the string representation
45610func (s ThingIndexingConfiguration) String() string {
45611	return awsutil.Prettify(s)
45612}
45613
45614// GoString returns the string representation
45615func (s ThingIndexingConfiguration) GoString() string {
45616	return s.String()
45617}
45618
45619// Validate inspects the fields of the type to determine if they are valid.
45620func (s *ThingIndexingConfiguration) Validate() error {
45621	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
45622	if s.ThingIndexingMode == nil {
45623		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
45624	}
45625
45626	if invalidParams.Len() > 0 {
45627		return invalidParams
45628	}
45629	return nil
45630}
45631
45632// SetCustomFields sets the CustomFields field's value.
45633func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
45634	s.CustomFields = v
45635	return s
45636}
45637
45638// SetManagedFields sets the ManagedFields field's value.
45639func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
45640	s.ManagedFields = v
45641	return s
45642}
45643
45644// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
45645func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
45646	s.ThingConnectivityIndexingMode = &v
45647	return s
45648}
45649
45650// SetThingIndexingMode sets the ThingIndexingMode field's value.
45651func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
45652	s.ThingIndexingMode = &v
45653	return s
45654}
45655
45656// The definition of the thing type, including thing type name and description.
45657type ThingTypeDefinition struct {
45658	_ struct{} `type:"structure"`
45659
45660	// The thing type ARN.
45661	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
45662
45663	// The ThingTypeMetadata contains additional information about the thing type
45664	// including: creation date and time, a value indicating whether the thing type
45665	// is deprecated, and a date and time when it was deprecated.
45666	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
45667
45668	// The name of the thing type.
45669	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
45670
45671	// The ThingTypeProperties for the thing type.
45672	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
45673}
45674
45675// String returns the string representation
45676func (s ThingTypeDefinition) String() string {
45677	return awsutil.Prettify(s)
45678}
45679
45680// GoString returns the string representation
45681func (s ThingTypeDefinition) GoString() string {
45682	return s.String()
45683}
45684
45685// SetThingTypeArn sets the ThingTypeArn field's value.
45686func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
45687	s.ThingTypeArn = &v
45688	return s
45689}
45690
45691// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
45692func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
45693	s.ThingTypeMetadata = v
45694	return s
45695}
45696
45697// SetThingTypeName sets the ThingTypeName field's value.
45698func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
45699	s.ThingTypeName = &v
45700	return s
45701}
45702
45703// SetThingTypeProperties sets the ThingTypeProperties field's value.
45704func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
45705	s.ThingTypeProperties = v
45706	return s
45707}
45708
45709// The ThingTypeMetadata contains additional information about the thing type
45710// including: creation date and time, a value indicating whether the thing type
45711// is deprecated, and a date and time when time was deprecated.
45712type ThingTypeMetadata struct {
45713	_ struct{} `type:"structure"`
45714
45715	// The date and time when the thing type was created.
45716	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
45717
45718	// Whether the thing type is deprecated. If true, no new things could be associated
45719	// with this type.
45720	Deprecated *bool `locationName:"deprecated" type:"boolean"`
45721
45722	// The date and time when the thing type was deprecated.
45723	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
45724}
45725
45726// String returns the string representation
45727func (s ThingTypeMetadata) String() string {
45728	return awsutil.Prettify(s)
45729}
45730
45731// GoString returns the string representation
45732func (s ThingTypeMetadata) GoString() string {
45733	return s.String()
45734}
45735
45736// SetCreationDate sets the CreationDate field's value.
45737func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
45738	s.CreationDate = &v
45739	return s
45740}
45741
45742// SetDeprecated sets the Deprecated field's value.
45743func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
45744	s.Deprecated = &v
45745	return s
45746}
45747
45748// SetDeprecationDate sets the DeprecationDate field's value.
45749func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
45750	s.DeprecationDate = &v
45751	return s
45752}
45753
45754// The ThingTypeProperties contains information about the thing type including:
45755// a thing type description, and a list of searchable thing attribute names.
45756type ThingTypeProperties struct {
45757	_ struct{} `type:"structure"`
45758
45759	// A list of searchable thing attribute names.
45760	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
45761
45762	// The description of the thing type.
45763	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
45764}
45765
45766// String returns the string representation
45767func (s ThingTypeProperties) String() string {
45768	return awsutil.Prettify(s)
45769}
45770
45771// GoString returns the string representation
45772func (s ThingTypeProperties) GoString() string {
45773	return s.String()
45774}
45775
45776// SetSearchableAttributes sets the SearchableAttributes field's value.
45777func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
45778	s.SearchableAttributes = v
45779	return s
45780}
45781
45782// SetThingTypeDescription sets the ThingTypeDescription field's value.
45783func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
45784	s.ThingTypeDescription = &v
45785	return s
45786}
45787
45788// The rate exceeds the limit.
45789type ThrottlingException struct {
45790	_            struct{}                  `type:"structure"`
45791	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45792
45793	// The message for the exception.
45794	Message_ *string `locationName:"message" type:"string"`
45795}
45796
45797// String returns the string representation
45798func (s ThrottlingException) String() string {
45799	return awsutil.Prettify(s)
45800}
45801
45802// GoString returns the string representation
45803func (s ThrottlingException) GoString() string {
45804	return s.String()
45805}
45806
45807func newErrorThrottlingException(v protocol.ResponseMetadata) error {
45808	return &ThrottlingException{
45809		RespMetadata: v,
45810	}
45811}
45812
45813// Code returns the exception type name.
45814func (s *ThrottlingException) Code() string {
45815	return "ThrottlingException"
45816}
45817
45818// Message returns the exception's message.
45819func (s *ThrottlingException) Message() string {
45820	if s.Message_ != nil {
45821		return *s.Message_
45822	}
45823	return ""
45824}
45825
45826// OrigErr always returns nil, satisfies awserr.Error interface.
45827func (s *ThrottlingException) OrigErr() error {
45828	return nil
45829}
45830
45831func (s *ThrottlingException) Error() string {
45832	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45833}
45834
45835// Status code returns the HTTP status code for the request's response error.
45836func (s *ThrottlingException) StatusCode() int {
45837	return s.RespMetadata.StatusCode
45838}
45839
45840// RequestID returns the service's response RequestID for request.
45841func (s *ThrottlingException) RequestID() string {
45842	return s.RespMetadata.RequestID
45843}
45844
45845// Specifies the amount of time each device has to finish its execution of the
45846// job. A timer is started when the job execution status is set to IN_PROGRESS.
45847// If the job execution status is not set to another terminal state before the
45848// timer expires, it will be automatically set to TIMED_OUT.
45849type TimeoutConfig struct {
45850	_ struct{} `type:"structure"`
45851
45852	// Specifies the amount of time, in minutes, this device has to finish execution
45853	// of this job. The timeout interval can be anywhere between 1 minute and 7
45854	// days (1 to 10080 minutes). The in progress timer can't be updated and will
45855	// apply to all job executions for the job. Whenever a job execution remains
45856	// in the IN_PROGRESS status for longer than this interval, the job execution
45857	// will fail and switch to the terminal TIMED_OUT status.
45858	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
45859}
45860
45861// String returns the string representation
45862func (s TimeoutConfig) String() string {
45863	return awsutil.Prettify(s)
45864}
45865
45866// GoString returns the string representation
45867func (s TimeoutConfig) GoString() string {
45868	return s.String()
45869}
45870
45871// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
45872func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
45873	s.InProgressTimeoutInMinutes = &v
45874	return s
45875}
45876
45877// Specifies the TLS context to use for the test authorizer request.
45878type TlsContext struct {
45879	_ struct{} `type:"structure"`
45880
45881	// The value of the serverName key in a TLS authorization request.
45882	ServerName *string `locationName:"serverName" min:"1" type:"string"`
45883}
45884
45885// String returns the string representation
45886func (s TlsContext) String() string {
45887	return awsutil.Prettify(s)
45888}
45889
45890// GoString returns the string representation
45891func (s TlsContext) GoString() string {
45892	return s.String()
45893}
45894
45895// Validate inspects the fields of the type to determine if they are valid.
45896func (s *TlsContext) Validate() error {
45897	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
45898	if s.ServerName != nil && len(*s.ServerName) < 1 {
45899		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
45900	}
45901
45902	if invalidParams.Len() > 0 {
45903		return invalidParams
45904	}
45905	return nil
45906}
45907
45908// SetServerName sets the ServerName field's value.
45909func (s *TlsContext) SetServerName(v string) *TlsContext {
45910	s.ServerName = &v
45911	return s
45912}
45913
45914// Describes a rule.
45915type TopicRule struct {
45916	_ struct{} `type:"structure"`
45917
45918	// The actions associated with the rule.
45919	Actions []*Action `locationName:"actions" type:"list"`
45920
45921	// The version of the SQL rules engine to use when evaluating the rule.
45922	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
45923
45924	// The date and time the rule was created.
45925	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
45926
45927	// The description of the rule.
45928	Description *string `locationName:"description" type:"string"`
45929
45930	// The action to perform when an error occurs.
45931	ErrorAction *Action `locationName:"errorAction" type:"structure"`
45932
45933	// Specifies whether the rule is disabled.
45934	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
45935
45936	// The name of the rule.
45937	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
45938
45939	// The SQL statement used to query the topic. When using a SQL query with multiple
45940	// lines, be sure to escape the newline characters.
45941	Sql *string `locationName:"sql" type:"string"`
45942}
45943
45944// String returns the string representation
45945func (s TopicRule) String() string {
45946	return awsutil.Prettify(s)
45947}
45948
45949// GoString returns the string representation
45950func (s TopicRule) GoString() string {
45951	return s.String()
45952}
45953
45954// SetActions sets the Actions field's value.
45955func (s *TopicRule) SetActions(v []*Action) *TopicRule {
45956	s.Actions = v
45957	return s
45958}
45959
45960// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
45961func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
45962	s.AwsIotSqlVersion = &v
45963	return s
45964}
45965
45966// SetCreatedAt sets the CreatedAt field's value.
45967func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
45968	s.CreatedAt = &v
45969	return s
45970}
45971
45972// SetDescription sets the Description field's value.
45973func (s *TopicRule) SetDescription(v string) *TopicRule {
45974	s.Description = &v
45975	return s
45976}
45977
45978// SetErrorAction sets the ErrorAction field's value.
45979func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
45980	s.ErrorAction = v
45981	return s
45982}
45983
45984// SetRuleDisabled sets the RuleDisabled field's value.
45985func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
45986	s.RuleDisabled = &v
45987	return s
45988}
45989
45990// SetRuleName sets the RuleName field's value.
45991func (s *TopicRule) SetRuleName(v string) *TopicRule {
45992	s.RuleName = &v
45993	return s
45994}
45995
45996// SetSql sets the Sql field's value.
45997func (s *TopicRule) SetSql(v string) *TopicRule {
45998	s.Sql = &v
45999	return s
46000}
46001
46002// A topic rule destination.
46003type TopicRuleDestination struct {
46004	_ struct{} `type:"structure"`
46005
46006	// The topic rule destination URL.
46007	Arn *string `locationName:"arn" type:"string"`
46008
46009	// Properties of the HTTP URL.
46010	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
46011
46012	// The status of the topic rule destination. Valid values are:
46013	//
46014	// IN_PROGRESS
46015	//
46016	// A topic rule destination was created but has not been confirmed. You can
46017	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
46018	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
46019	// to your confirmation endpoint.
46020	//
46021	// ENABLED
46022	//
46023	// Confirmation was completed, and traffic to this destination is allowed. You
46024	// can set status to DISABLED by calling UpdateTopicRuleDestination.
46025	//
46026	// DISABLED
46027	//
46028	// Confirmation was completed, and traffic to this destination is not allowed.
46029	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
46030	//
46031	// ERROR
46032	//
46033	// Confirmation could not be completed, for example if the confirmation timed
46034	// out. You can call GetTopicRuleDestination for details about the error. You
46035	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
46036	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
46037	// to your confirmation endpoint.
46038	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
46039
46040	// Additional details or reason why the topic rule destination is in the current
46041	// status.
46042	StatusReason *string `locationName:"statusReason" type:"string"`
46043}
46044
46045// String returns the string representation
46046func (s TopicRuleDestination) String() string {
46047	return awsutil.Prettify(s)
46048}
46049
46050// GoString returns the string representation
46051func (s TopicRuleDestination) GoString() string {
46052	return s.String()
46053}
46054
46055// SetArn sets the Arn field's value.
46056func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
46057	s.Arn = &v
46058	return s
46059}
46060
46061// SetHttpUrlProperties sets the HttpUrlProperties field's value.
46062func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
46063	s.HttpUrlProperties = v
46064	return s
46065}
46066
46067// SetStatus sets the Status field's value.
46068func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
46069	s.Status = &v
46070	return s
46071}
46072
46073// SetStatusReason sets the StatusReason field's value.
46074func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
46075	s.StatusReason = &v
46076	return s
46077}
46078
46079// Configuration of the topic rule destination.
46080type TopicRuleDestinationConfiguration struct {
46081	_ struct{} `type:"structure"`
46082
46083	// Configuration of the HTTP URL.
46084	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
46085}
46086
46087// String returns the string representation
46088func (s TopicRuleDestinationConfiguration) String() string {
46089	return awsutil.Prettify(s)
46090}
46091
46092// GoString returns the string representation
46093func (s TopicRuleDestinationConfiguration) GoString() string {
46094	return s.String()
46095}
46096
46097// Validate inspects the fields of the type to determine if they are valid.
46098func (s *TopicRuleDestinationConfiguration) Validate() error {
46099	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
46100	if s.HttpUrlConfiguration != nil {
46101		if err := s.HttpUrlConfiguration.Validate(); err != nil {
46102			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
46103		}
46104	}
46105
46106	if invalidParams.Len() > 0 {
46107		return invalidParams
46108	}
46109	return nil
46110}
46111
46112// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
46113func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
46114	s.HttpUrlConfiguration = v
46115	return s
46116}
46117
46118// Information about the topic rule destination.
46119type TopicRuleDestinationSummary struct {
46120	_ struct{} `type:"structure"`
46121
46122	// The topic rule destination ARN.
46123	Arn *string `locationName:"arn" type:"string"`
46124
46125	// Information about the HTTP URL.
46126	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
46127
46128	// The status of the topic rule destination. Valid values are:
46129	//
46130	// IN_PROGRESS
46131	//
46132	// A topic rule destination was created but has not been confirmed. You can
46133	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
46134	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
46135	// to your confirmation endpoint.
46136	//
46137	// ENABLED
46138	//
46139	// Confirmation was completed, and traffic to this destination is allowed. You
46140	// can set status to DISABLED by calling UpdateTopicRuleDestination.
46141	//
46142	// DISABLED
46143	//
46144	// Confirmation was completed, and traffic to this destination is not allowed.
46145	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
46146	//
46147	// ERROR
46148	//
46149	// Confirmation could not be completed, for example if the confirmation timed
46150	// out. You can call GetTopicRuleDestination for details about the error. You
46151	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
46152	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
46153	// to your confirmation endpoint.
46154	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
46155
46156	// The reason the topic rule destination is in the current status.
46157	StatusReason *string `locationName:"statusReason" type:"string"`
46158}
46159
46160// String returns the string representation
46161func (s TopicRuleDestinationSummary) String() string {
46162	return awsutil.Prettify(s)
46163}
46164
46165// GoString returns the string representation
46166func (s TopicRuleDestinationSummary) GoString() string {
46167	return s.String()
46168}
46169
46170// SetArn sets the Arn field's value.
46171func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
46172	s.Arn = &v
46173	return s
46174}
46175
46176// SetHttpUrlSummary sets the HttpUrlSummary field's value.
46177func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
46178	s.HttpUrlSummary = v
46179	return s
46180}
46181
46182// SetStatus sets the Status field's value.
46183func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
46184	s.Status = &v
46185	return s
46186}
46187
46188// SetStatusReason sets the StatusReason field's value.
46189func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
46190	s.StatusReason = &v
46191	return s
46192}
46193
46194// Describes a rule.
46195type TopicRuleListItem struct {
46196	_ struct{} `type:"structure"`
46197
46198	// The date and time the rule was created.
46199	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
46200
46201	// The rule ARN.
46202	RuleArn *string `locationName:"ruleArn" type:"string"`
46203
46204	// Specifies whether the rule is disabled.
46205	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
46206
46207	// The name of the rule.
46208	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
46209
46210	// The pattern for the topic names that apply.
46211	TopicPattern *string `locationName:"topicPattern" type:"string"`
46212}
46213
46214// String returns the string representation
46215func (s TopicRuleListItem) String() string {
46216	return awsutil.Prettify(s)
46217}
46218
46219// GoString returns the string representation
46220func (s TopicRuleListItem) GoString() string {
46221	return s.String()
46222}
46223
46224// SetCreatedAt sets the CreatedAt field's value.
46225func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
46226	s.CreatedAt = &v
46227	return s
46228}
46229
46230// SetRuleArn sets the RuleArn field's value.
46231func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
46232	s.RuleArn = &v
46233	return s
46234}
46235
46236// SetRuleDisabled sets the RuleDisabled field's value.
46237func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
46238	s.RuleDisabled = &v
46239	return s
46240}
46241
46242// SetRuleName sets the RuleName field's value.
46243func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
46244	s.RuleName = &v
46245	return s
46246}
46247
46248// SetTopicPattern sets the TopicPattern field's value.
46249func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
46250	s.TopicPattern = &v
46251	return s
46252}
46253
46254// Describes a rule.
46255type TopicRulePayload struct {
46256	_ struct{} `type:"structure"`
46257
46258	// The actions associated with the rule.
46259	//
46260	// Actions is a required field
46261	Actions []*Action `locationName:"actions" type:"list" required:"true"`
46262
46263	// The version of the SQL rules engine to use when evaluating the rule.
46264	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
46265
46266	// The description of the rule.
46267	Description *string `locationName:"description" type:"string"`
46268
46269	// The action to take when an error occurs.
46270	ErrorAction *Action `locationName:"errorAction" type:"structure"`
46271
46272	// Specifies whether the rule is disabled.
46273	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
46274
46275	// The SQL statement used to query the topic. For more information, see AWS
46276	// IoT SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference)
46277	// in the AWS IoT Developer Guide.
46278	//
46279	// Sql is a required field
46280	Sql *string `locationName:"sql" type:"string" required:"true"`
46281}
46282
46283// String returns the string representation
46284func (s TopicRulePayload) String() string {
46285	return awsutil.Prettify(s)
46286}
46287
46288// GoString returns the string representation
46289func (s TopicRulePayload) GoString() string {
46290	return s.String()
46291}
46292
46293// Validate inspects the fields of the type to determine if they are valid.
46294func (s *TopicRulePayload) Validate() error {
46295	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
46296	if s.Actions == nil {
46297		invalidParams.Add(request.NewErrParamRequired("Actions"))
46298	}
46299	if s.Sql == nil {
46300		invalidParams.Add(request.NewErrParamRequired("Sql"))
46301	}
46302	if s.Actions != nil {
46303		for i, v := range s.Actions {
46304			if v == nil {
46305				continue
46306			}
46307			if err := v.Validate(); err != nil {
46308				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
46309			}
46310		}
46311	}
46312	if s.ErrorAction != nil {
46313		if err := s.ErrorAction.Validate(); err != nil {
46314			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
46315		}
46316	}
46317
46318	if invalidParams.Len() > 0 {
46319		return invalidParams
46320	}
46321	return nil
46322}
46323
46324// SetActions sets the Actions field's value.
46325func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
46326	s.Actions = v
46327	return s
46328}
46329
46330// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
46331func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
46332	s.AwsIotSqlVersion = &v
46333	return s
46334}
46335
46336// SetDescription sets the Description field's value.
46337func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
46338	s.Description = &v
46339	return s
46340}
46341
46342// SetErrorAction sets the ErrorAction field's value.
46343func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
46344	s.ErrorAction = v
46345	return s
46346}
46347
46348// SetRuleDisabled sets the RuleDisabled field's value.
46349func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
46350	s.RuleDisabled = &v
46351	return s
46352}
46353
46354// SetSql sets the Sql field's value.
46355func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
46356	s.Sql = &v
46357	return s
46358}
46359
46360// You can't revert the certificate transfer because the transfer is already
46361// complete.
46362type TransferAlreadyCompletedException struct {
46363	_            struct{}                  `type:"structure"`
46364	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
46365
46366	// The message for the exception.
46367	Message_ *string `locationName:"message" type:"string"`
46368}
46369
46370// String returns the string representation
46371func (s TransferAlreadyCompletedException) String() string {
46372	return awsutil.Prettify(s)
46373}
46374
46375// GoString returns the string representation
46376func (s TransferAlreadyCompletedException) GoString() string {
46377	return s.String()
46378}
46379
46380func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
46381	return &TransferAlreadyCompletedException{
46382		RespMetadata: v,
46383	}
46384}
46385
46386// Code returns the exception type name.
46387func (s *TransferAlreadyCompletedException) Code() string {
46388	return "TransferAlreadyCompletedException"
46389}
46390
46391// Message returns the exception's message.
46392func (s *TransferAlreadyCompletedException) Message() string {
46393	if s.Message_ != nil {
46394		return *s.Message_
46395	}
46396	return ""
46397}
46398
46399// OrigErr always returns nil, satisfies awserr.Error interface.
46400func (s *TransferAlreadyCompletedException) OrigErr() error {
46401	return nil
46402}
46403
46404func (s *TransferAlreadyCompletedException) Error() string {
46405	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
46406}
46407
46408// Status code returns the HTTP status code for the request's response error.
46409func (s *TransferAlreadyCompletedException) StatusCode() int {
46410	return s.RespMetadata.StatusCode
46411}
46412
46413// RequestID returns the service's response RequestID for request.
46414func (s *TransferAlreadyCompletedException) RequestID() string {
46415	return s.RespMetadata.RequestID
46416}
46417
46418// The input for the TransferCertificate operation.
46419type TransferCertificateInput struct {
46420	_ struct{} `type:"structure"`
46421
46422	// The ID of the certificate. (The last part of the certificate ARN contains
46423	// the certificate ID.)
46424	//
46425	// CertificateId is a required field
46426	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
46427
46428	// The AWS account.
46429	//
46430	// TargetAwsAccount is a required field
46431	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
46432
46433	// The transfer message.
46434	TransferMessage *string `locationName:"transferMessage" type:"string"`
46435}
46436
46437// String returns the string representation
46438func (s TransferCertificateInput) String() string {
46439	return awsutil.Prettify(s)
46440}
46441
46442// GoString returns the string representation
46443func (s TransferCertificateInput) GoString() string {
46444	return s.String()
46445}
46446
46447// Validate inspects the fields of the type to determine if they are valid.
46448func (s *TransferCertificateInput) Validate() error {
46449	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
46450	if s.CertificateId == nil {
46451		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
46452	}
46453	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
46454		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
46455	}
46456	if s.TargetAwsAccount == nil {
46457		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
46458	}
46459	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
46460		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
46461	}
46462
46463	if invalidParams.Len() > 0 {
46464		return invalidParams
46465	}
46466	return nil
46467}
46468
46469// SetCertificateId sets the CertificateId field's value.
46470func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
46471	s.CertificateId = &v
46472	return s
46473}
46474
46475// SetTargetAwsAccount sets the TargetAwsAccount field's value.
46476func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
46477	s.TargetAwsAccount = &v
46478	return s
46479}
46480
46481// SetTransferMessage sets the TransferMessage field's value.
46482func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
46483	s.TransferMessage = &v
46484	return s
46485}
46486
46487// The output from the TransferCertificate operation.
46488type TransferCertificateOutput struct {
46489	_ struct{} `type:"structure"`
46490
46491	// The ARN of the certificate.
46492	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
46493}
46494
46495// String returns the string representation
46496func (s TransferCertificateOutput) String() string {
46497	return awsutil.Prettify(s)
46498}
46499
46500// GoString returns the string representation
46501func (s TransferCertificateOutput) GoString() string {
46502	return s.String()
46503}
46504
46505// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
46506func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
46507	s.TransferredCertificateArn = &v
46508	return s
46509}
46510
46511// You can't transfer the certificate because authorization policies are still
46512// attached.
46513type TransferConflictException struct {
46514	_            struct{}                  `type:"structure"`
46515	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
46516
46517	// The message for the exception.
46518	Message_ *string `locationName:"message" type:"string"`
46519}
46520
46521// String returns the string representation
46522func (s TransferConflictException) String() string {
46523	return awsutil.Prettify(s)
46524}
46525
46526// GoString returns the string representation
46527func (s TransferConflictException) GoString() string {
46528	return s.String()
46529}
46530
46531func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
46532	return &TransferConflictException{
46533		RespMetadata: v,
46534	}
46535}
46536
46537// Code returns the exception type name.
46538func (s *TransferConflictException) Code() string {
46539	return "TransferConflictException"
46540}
46541
46542// Message returns the exception's message.
46543func (s *TransferConflictException) Message() string {
46544	if s.Message_ != nil {
46545		return *s.Message_
46546	}
46547	return ""
46548}
46549
46550// OrigErr always returns nil, satisfies awserr.Error interface.
46551func (s *TransferConflictException) OrigErr() error {
46552	return nil
46553}
46554
46555func (s *TransferConflictException) Error() string {
46556	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
46557}
46558
46559// Status code returns the HTTP status code for the request's response error.
46560func (s *TransferConflictException) StatusCode() int {
46561	return s.RespMetadata.StatusCode
46562}
46563
46564// RequestID returns the service's response RequestID for request.
46565func (s *TransferConflictException) RequestID() string {
46566	return s.RespMetadata.RequestID
46567}
46568
46569// Data used to transfer a certificate to an AWS account.
46570type TransferData struct {
46571	_ struct{} `type:"structure"`
46572
46573	// The date the transfer was accepted.
46574	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
46575
46576	// The date the transfer was rejected.
46577	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
46578
46579	// The reason why the transfer was rejected.
46580	RejectReason *string `locationName:"rejectReason" type:"string"`
46581
46582	// The date the transfer took place.
46583	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
46584
46585	// The transfer message.
46586	TransferMessage *string `locationName:"transferMessage" type:"string"`
46587}
46588
46589// String returns the string representation
46590func (s TransferData) String() string {
46591	return awsutil.Prettify(s)
46592}
46593
46594// GoString returns the string representation
46595func (s TransferData) GoString() string {
46596	return s.String()
46597}
46598
46599// SetAcceptDate sets the AcceptDate field's value.
46600func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
46601	s.AcceptDate = &v
46602	return s
46603}
46604
46605// SetRejectDate sets the RejectDate field's value.
46606func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
46607	s.RejectDate = &v
46608	return s
46609}
46610
46611// SetRejectReason sets the RejectReason field's value.
46612func (s *TransferData) SetRejectReason(v string) *TransferData {
46613	s.RejectReason = &v
46614	return s
46615}
46616
46617// SetTransferDate sets the TransferDate field's value.
46618func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
46619	s.TransferDate = &v
46620	return s
46621}
46622
46623// SetTransferMessage sets the TransferMessage field's value.
46624func (s *TransferData) SetTransferMessage(v string) *TransferData {
46625	s.TransferMessage = &v
46626	return s
46627}
46628
46629// You are not authorized to perform this operation.
46630type UnauthorizedException struct {
46631	_            struct{}                  `type:"structure"`
46632	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
46633
46634	// The message for the exception.
46635	Message_ *string `locationName:"message" type:"string"`
46636}
46637
46638// String returns the string representation
46639func (s UnauthorizedException) String() string {
46640	return awsutil.Prettify(s)
46641}
46642
46643// GoString returns the string representation
46644func (s UnauthorizedException) GoString() string {
46645	return s.String()
46646}
46647
46648func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
46649	return &UnauthorizedException{
46650		RespMetadata: v,
46651	}
46652}
46653
46654// Code returns the exception type name.
46655func (s *UnauthorizedException) Code() string {
46656	return "UnauthorizedException"
46657}
46658
46659// Message returns the exception's message.
46660func (s *UnauthorizedException) Message() string {
46661	if s.Message_ != nil {
46662		return *s.Message_
46663	}
46664	return ""
46665}
46666
46667// OrigErr always returns nil, satisfies awserr.Error interface.
46668func (s *UnauthorizedException) OrigErr() error {
46669	return nil
46670}
46671
46672func (s *UnauthorizedException) Error() string {
46673	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
46674}
46675
46676// Status code returns the HTTP status code for the request's response error.
46677func (s *UnauthorizedException) StatusCode() int {
46678	return s.RespMetadata.StatusCode
46679}
46680
46681// RequestID returns the service's response RequestID for request.
46682func (s *UnauthorizedException) RequestID() string {
46683	return s.RespMetadata.RequestID
46684}
46685
46686type UntagResourceInput struct {
46687	_ struct{} `type:"structure"`
46688
46689	// The ARN of the resource.
46690	//
46691	// ResourceArn is a required field
46692	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
46693
46694	// A list of the keys of the tags to be removed from the resource.
46695	//
46696	// TagKeys is a required field
46697	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
46698}
46699
46700// String returns the string representation
46701func (s UntagResourceInput) String() string {
46702	return awsutil.Prettify(s)
46703}
46704
46705// GoString returns the string representation
46706func (s UntagResourceInput) GoString() string {
46707	return s.String()
46708}
46709
46710// Validate inspects the fields of the type to determine if they are valid.
46711func (s *UntagResourceInput) Validate() error {
46712	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
46713	if s.ResourceArn == nil {
46714		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
46715	}
46716	if s.TagKeys == nil {
46717		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
46718	}
46719
46720	if invalidParams.Len() > 0 {
46721		return invalidParams
46722	}
46723	return nil
46724}
46725
46726// SetResourceArn sets the ResourceArn field's value.
46727func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
46728	s.ResourceArn = &v
46729	return s
46730}
46731
46732// SetTagKeys sets the TagKeys field's value.
46733func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
46734	s.TagKeys = v
46735	return s
46736}
46737
46738type UntagResourceOutput struct {
46739	_ struct{} `type:"structure"`
46740}
46741
46742// String returns the string representation
46743func (s UntagResourceOutput) String() string {
46744	return awsutil.Prettify(s)
46745}
46746
46747// GoString returns the string representation
46748func (s UntagResourceOutput) GoString() string {
46749	return s.String()
46750}
46751
46752type UpdateAccountAuditConfigurationInput struct {
46753	_ struct{} `type:"structure"`
46754
46755	// Specifies which audit checks are enabled and disabled for this account. Use
46756	// DescribeAccountAuditConfiguration to see the list of all checks, including
46757	// those that are currently enabled.
46758	//
46759	// Some data collection might start immediately when certain checks are enabled.
46760	// When a check is disabled, any data collected so far in relation to the check
46761	// is deleted.
46762	//
46763	// You cannot disable a check if it is used by any scheduled audit. You must
46764	// first delete the check from the scheduled audit or delete the scheduled audit
46765	// itself.
46766	//
46767	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
46768	// and must specify at least one enabled check.
46769	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
46770
46771	// Information about the targets to which audit notifications are sent.
46772	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
46773
46774	// The ARN of the role that grants permission to AWS IoT to access information
46775	// about your devices, policies, certificates and other items as required when
46776	// performing an audit.
46777	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
46778}
46779
46780// String returns the string representation
46781func (s UpdateAccountAuditConfigurationInput) String() string {
46782	return awsutil.Prettify(s)
46783}
46784
46785// GoString returns the string representation
46786func (s UpdateAccountAuditConfigurationInput) GoString() string {
46787	return s.String()
46788}
46789
46790// Validate inspects the fields of the type to determine if they are valid.
46791func (s *UpdateAccountAuditConfigurationInput) Validate() error {
46792	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
46793	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
46794		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
46795	}
46796	if s.AuditNotificationTargetConfigurations != nil {
46797		for i, v := range s.AuditNotificationTargetConfigurations {
46798			if v == nil {
46799				continue
46800			}
46801			if err := v.Validate(); err != nil {
46802				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
46803			}
46804		}
46805	}
46806
46807	if invalidParams.Len() > 0 {
46808		return invalidParams
46809	}
46810	return nil
46811}
46812
46813// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
46814func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
46815	s.AuditCheckConfigurations = v
46816	return s
46817}
46818
46819// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
46820func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
46821	s.AuditNotificationTargetConfigurations = v
46822	return s
46823}
46824
46825// SetRoleArn sets the RoleArn field's value.
46826func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
46827	s.RoleArn = &v
46828	return s
46829}
46830
46831type UpdateAccountAuditConfigurationOutput struct {
46832	_ struct{} `type:"structure"`
46833}
46834
46835// String returns the string representation
46836func (s UpdateAccountAuditConfigurationOutput) String() string {
46837	return awsutil.Prettify(s)
46838}
46839
46840// GoString returns the string representation
46841func (s UpdateAccountAuditConfigurationOutput) GoString() string {
46842	return s.String()
46843}
46844
46845type UpdateAuthorizerInput struct {
46846	_ struct{} `type:"structure"`
46847
46848	// The ARN of the authorizer's Lambda function.
46849	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
46850
46851	// The authorizer name.
46852	//
46853	// AuthorizerName is a required field
46854	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
46855
46856	// The status of the update authorizer request.
46857	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
46858
46859	// The key used to extract the token from the HTTP headers.
46860	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
46861
46862	// The public keys used to verify the token signature.
46863	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
46864}
46865
46866// String returns the string representation
46867func (s UpdateAuthorizerInput) String() string {
46868	return awsutil.Prettify(s)
46869}
46870
46871// GoString returns the string representation
46872func (s UpdateAuthorizerInput) GoString() string {
46873	return s.String()
46874}
46875
46876// Validate inspects the fields of the type to determine if they are valid.
46877func (s *UpdateAuthorizerInput) Validate() error {
46878	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
46879	if s.AuthorizerName == nil {
46880		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
46881	}
46882	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
46883		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
46884	}
46885	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
46886		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
46887	}
46888
46889	if invalidParams.Len() > 0 {
46890		return invalidParams
46891	}
46892	return nil
46893}
46894
46895// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
46896func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
46897	s.AuthorizerFunctionArn = &v
46898	return s
46899}
46900
46901// SetAuthorizerName sets the AuthorizerName field's value.
46902func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
46903	s.AuthorizerName = &v
46904	return s
46905}
46906
46907// SetStatus sets the Status field's value.
46908func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
46909	s.Status = &v
46910	return s
46911}
46912
46913// SetTokenKeyName sets the TokenKeyName field's value.
46914func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
46915	s.TokenKeyName = &v
46916	return s
46917}
46918
46919// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
46920func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
46921	s.TokenSigningPublicKeys = v
46922	return s
46923}
46924
46925type UpdateAuthorizerOutput struct {
46926	_ struct{} `type:"structure"`
46927
46928	// The authorizer ARN.
46929	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
46930
46931	// The authorizer name.
46932	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
46933}
46934
46935// String returns the string representation
46936func (s UpdateAuthorizerOutput) String() string {
46937	return awsutil.Prettify(s)
46938}
46939
46940// GoString returns the string representation
46941func (s UpdateAuthorizerOutput) GoString() string {
46942	return s.String()
46943}
46944
46945// SetAuthorizerArn sets the AuthorizerArn field's value.
46946func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
46947	s.AuthorizerArn = &v
46948	return s
46949}
46950
46951// SetAuthorizerName sets the AuthorizerName field's value.
46952func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
46953	s.AuthorizerName = &v
46954	return s
46955}
46956
46957type UpdateBillingGroupInput struct {
46958	_ struct{} `type:"structure"`
46959
46960	// The name of the billing group.
46961	//
46962	// BillingGroupName is a required field
46963	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
46964
46965	// The properties of the billing group.
46966	//
46967	// BillingGroupProperties is a required field
46968	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
46969
46970	// The expected version of the billing group. If the version of the billing
46971	// group does not match the expected version specified in the request, the UpdateBillingGroup
46972	// request is rejected with a VersionConflictException.
46973	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
46974}
46975
46976// String returns the string representation
46977func (s UpdateBillingGroupInput) String() string {
46978	return awsutil.Prettify(s)
46979}
46980
46981// GoString returns the string representation
46982func (s UpdateBillingGroupInput) GoString() string {
46983	return s.String()
46984}
46985
46986// Validate inspects the fields of the type to determine if they are valid.
46987func (s *UpdateBillingGroupInput) Validate() error {
46988	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
46989	if s.BillingGroupName == nil {
46990		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
46991	}
46992	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
46993		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
46994	}
46995	if s.BillingGroupProperties == nil {
46996		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
46997	}
46998
46999	if invalidParams.Len() > 0 {
47000		return invalidParams
47001	}
47002	return nil
47003}
47004
47005// SetBillingGroupName sets the BillingGroupName field's value.
47006func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
47007	s.BillingGroupName = &v
47008	return s
47009}
47010
47011// SetBillingGroupProperties sets the BillingGroupProperties field's value.
47012func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
47013	s.BillingGroupProperties = v
47014	return s
47015}
47016
47017// SetExpectedVersion sets the ExpectedVersion field's value.
47018func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
47019	s.ExpectedVersion = &v
47020	return s
47021}
47022
47023type UpdateBillingGroupOutput struct {
47024	_ struct{} `type:"structure"`
47025
47026	// The latest version of the billing group.
47027	Version *int64 `locationName:"version" type:"long"`
47028}
47029
47030// String returns the string representation
47031func (s UpdateBillingGroupOutput) String() string {
47032	return awsutil.Prettify(s)
47033}
47034
47035// GoString returns the string representation
47036func (s UpdateBillingGroupOutput) GoString() string {
47037	return s.String()
47038}
47039
47040// SetVersion sets the Version field's value.
47041func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
47042	s.Version = &v
47043	return s
47044}
47045
47046// The input to the UpdateCACertificate operation.
47047type UpdateCACertificateInput struct {
47048	_ struct{} `type:"structure"`
47049
47050	// The CA certificate identifier.
47051	//
47052	// CertificateId is a required field
47053	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
47054
47055	// The new value for the auto registration status. Valid values are: "ENABLE"
47056	// or "DISABLE".
47057	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
47058
47059	// The updated status of the CA certificate.
47060	//
47061	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
47062	// used.
47063	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
47064
47065	// Information about the registration configuration.
47066	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
47067
47068	// If true, removes auto registration.
47069	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
47070}
47071
47072// String returns the string representation
47073func (s UpdateCACertificateInput) String() string {
47074	return awsutil.Prettify(s)
47075}
47076
47077// GoString returns the string representation
47078func (s UpdateCACertificateInput) GoString() string {
47079	return s.String()
47080}
47081
47082// Validate inspects the fields of the type to determine if they are valid.
47083func (s *UpdateCACertificateInput) Validate() error {
47084	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
47085	if s.CertificateId == nil {
47086		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
47087	}
47088	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
47089		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
47090	}
47091	if s.RegistrationConfig != nil {
47092		if err := s.RegistrationConfig.Validate(); err != nil {
47093			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
47094		}
47095	}
47096
47097	if invalidParams.Len() > 0 {
47098		return invalidParams
47099	}
47100	return nil
47101}
47102
47103// SetCertificateId sets the CertificateId field's value.
47104func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
47105	s.CertificateId = &v
47106	return s
47107}
47108
47109// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
47110func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
47111	s.NewAutoRegistrationStatus = &v
47112	return s
47113}
47114
47115// SetNewStatus sets the NewStatus field's value.
47116func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
47117	s.NewStatus = &v
47118	return s
47119}
47120
47121// SetRegistrationConfig sets the RegistrationConfig field's value.
47122func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
47123	s.RegistrationConfig = v
47124	return s
47125}
47126
47127// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
47128func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
47129	s.RemoveAutoRegistration = &v
47130	return s
47131}
47132
47133type UpdateCACertificateOutput struct {
47134	_ struct{} `type:"structure"`
47135}
47136
47137// String returns the string representation
47138func (s UpdateCACertificateOutput) String() string {
47139	return awsutil.Prettify(s)
47140}
47141
47142// GoString returns the string representation
47143func (s UpdateCACertificateOutput) GoString() string {
47144	return s.String()
47145}
47146
47147// Parameters to define a mitigation action that changes the state of the CA
47148// certificate to inactive.
47149type UpdateCACertificateParams struct {
47150	_ struct{} `type:"structure"`
47151
47152	// The action that you want to apply to the CA cerrtificate. The only supported
47153	// value is DEACTIVATE.
47154	//
47155	// Action is a required field
47156	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
47157}
47158
47159// String returns the string representation
47160func (s UpdateCACertificateParams) String() string {
47161	return awsutil.Prettify(s)
47162}
47163
47164// GoString returns the string representation
47165func (s UpdateCACertificateParams) GoString() string {
47166	return s.String()
47167}
47168
47169// Validate inspects the fields of the type to determine if they are valid.
47170func (s *UpdateCACertificateParams) Validate() error {
47171	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
47172	if s.Action == nil {
47173		invalidParams.Add(request.NewErrParamRequired("Action"))
47174	}
47175
47176	if invalidParams.Len() > 0 {
47177		return invalidParams
47178	}
47179	return nil
47180}
47181
47182// SetAction sets the Action field's value.
47183func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
47184	s.Action = &v
47185	return s
47186}
47187
47188// The input for the UpdateCertificate operation.
47189type UpdateCertificateInput struct {
47190	_ struct{} `type:"structure"`
47191
47192	// The ID of the certificate. (The last part of the certificate ARN contains
47193	// the certificate ID.)
47194	//
47195	// CertificateId is a required field
47196	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
47197
47198	// The new status.
47199	//
47200	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
47201	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
47202	// statuses used internally by AWS IoT. They are not intended for developer
47203	// use.
47204	//
47205	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
47206	// used.
47207	//
47208	// NewStatus is a required field
47209	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
47210}
47211
47212// String returns the string representation
47213func (s UpdateCertificateInput) String() string {
47214	return awsutil.Prettify(s)
47215}
47216
47217// GoString returns the string representation
47218func (s UpdateCertificateInput) GoString() string {
47219	return s.String()
47220}
47221
47222// Validate inspects the fields of the type to determine if they are valid.
47223func (s *UpdateCertificateInput) Validate() error {
47224	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
47225	if s.CertificateId == nil {
47226		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
47227	}
47228	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
47229		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
47230	}
47231	if s.NewStatus == nil {
47232		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
47233	}
47234
47235	if invalidParams.Len() > 0 {
47236		return invalidParams
47237	}
47238	return nil
47239}
47240
47241// SetCertificateId sets the CertificateId field's value.
47242func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
47243	s.CertificateId = &v
47244	return s
47245}
47246
47247// SetNewStatus sets the NewStatus field's value.
47248func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
47249	s.NewStatus = &v
47250	return s
47251}
47252
47253type UpdateCertificateOutput struct {
47254	_ struct{} `type:"structure"`
47255}
47256
47257// String returns the string representation
47258func (s UpdateCertificateOutput) String() string {
47259	return awsutil.Prettify(s)
47260}
47261
47262// GoString returns the string representation
47263func (s UpdateCertificateOutput) GoString() string {
47264	return s.String()
47265}
47266
47267// Parameters to define a mitigation action that changes the state of the device
47268// certificate to inactive.
47269type UpdateDeviceCertificateParams struct {
47270	_ struct{} `type:"structure"`
47271
47272	// The action that you want to apply to the device cerrtificate. The only supported
47273	// value is DEACTIVATE.
47274	//
47275	// Action is a required field
47276	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
47277}
47278
47279// String returns the string representation
47280func (s UpdateDeviceCertificateParams) String() string {
47281	return awsutil.Prettify(s)
47282}
47283
47284// GoString returns the string representation
47285func (s UpdateDeviceCertificateParams) GoString() string {
47286	return s.String()
47287}
47288
47289// Validate inspects the fields of the type to determine if they are valid.
47290func (s *UpdateDeviceCertificateParams) Validate() error {
47291	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
47292	if s.Action == nil {
47293		invalidParams.Add(request.NewErrParamRequired("Action"))
47294	}
47295
47296	if invalidParams.Len() > 0 {
47297		return invalidParams
47298	}
47299	return nil
47300}
47301
47302// SetAction sets the Action field's value.
47303func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
47304	s.Action = &v
47305	return s
47306}
47307
47308type UpdateDimensionInput struct {
47309	_ struct{} `type:"structure"`
47310
47311	// A unique identifier for the dimension. Choose something that describes the
47312	// type and value to make it easy to remember what it does.
47313	//
47314	// Name is a required field
47315	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
47316
47317	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
47318	// dimensions, this is a pattern used to match the MQTT topic (for example,
47319	// "admin/#").
47320	//
47321	// StringValues is a required field
47322	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
47323}
47324
47325// String returns the string representation
47326func (s UpdateDimensionInput) String() string {
47327	return awsutil.Prettify(s)
47328}
47329
47330// GoString returns the string representation
47331func (s UpdateDimensionInput) GoString() string {
47332	return s.String()
47333}
47334
47335// Validate inspects the fields of the type to determine if they are valid.
47336func (s *UpdateDimensionInput) Validate() error {
47337	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
47338	if s.Name == nil {
47339		invalidParams.Add(request.NewErrParamRequired("Name"))
47340	}
47341	if s.Name != nil && len(*s.Name) < 1 {
47342		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
47343	}
47344	if s.StringValues == nil {
47345		invalidParams.Add(request.NewErrParamRequired("StringValues"))
47346	}
47347	if s.StringValues != nil && len(s.StringValues) < 1 {
47348		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
47349	}
47350
47351	if invalidParams.Len() > 0 {
47352		return invalidParams
47353	}
47354	return nil
47355}
47356
47357// SetName sets the Name field's value.
47358func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
47359	s.Name = &v
47360	return s
47361}
47362
47363// SetStringValues sets the StringValues field's value.
47364func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
47365	s.StringValues = v
47366	return s
47367}
47368
47369type UpdateDimensionOutput struct {
47370	_ struct{} `type:"structure"`
47371
47372	// The ARN (Amazon resource name) of the created dimension.
47373	Arn *string `locationName:"arn" type:"string"`
47374
47375	// The date and time, in milliseconds since epoch, when the dimension was initially
47376	// created.
47377	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47378
47379	// The date and time, in milliseconds since epoch, when the dimension was most
47380	// recently updated.
47381	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
47382
47383	// A unique identifier for the dimension.
47384	Name *string `locationName:"name" min:"1" type:"string"`
47385
47386	// The value or list of values used to scope the dimension. For example, for
47387	// topic filters, this is the pattern used to match the MQTT topic name.
47388	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
47389
47390	// The type of the dimension.
47391	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
47392}
47393
47394// String returns the string representation
47395func (s UpdateDimensionOutput) String() string {
47396	return awsutil.Prettify(s)
47397}
47398
47399// GoString returns the string representation
47400func (s UpdateDimensionOutput) GoString() string {
47401	return s.String()
47402}
47403
47404// SetArn sets the Arn field's value.
47405func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
47406	s.Arn = &v
47407	return s
47408}
47409
47410// SetCreationDate sets the CreationDate field's value.
47411func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
47412	s.CreationDate = &v
47413	return s
47414}
47415
47416// SetLastModifiedDate sets the LastModifiedDate field's value.
47417func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
47418	s.LastModifiedDate = &v
47419	return s
47420}
47421
47422// SetName sets the Name field's value.
47423func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
47424	s.Name = &v
47425	return s
47426}
47427
47428// SetStringValues sets the StringValues field's value.
47429func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
47430	s.StringValues = v
47431	return s
47432}
47433
47434// SetType sets the Type field's value.
47435func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
47436	s.Type = &v
47437	return s
47438}
47439
47440type UpdateDomainConfigurationInput struct {
47441	_ struct{} `type:"structure"`
47442
47443	// An object that specifies the authorization service for a domain.
47444	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
47445
47446	// The name of the domain configuration to be updated.
47447	//
47448	// DomainConfigurationName is a required field
47449	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
47450
47451	// The status to which the domain configuration should be updated.
47452	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
47453
47454	// Removes the authorization configuration from a domain.
47455	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
47456}
47457
47458// String returns the string representation
47459func (s UpdateDomainConfigurationInput) String() string {
47460	return awsutil.Prettify(s)
47461}
47462
47463// GoString returns the string representation
47464func (s UpdateDomainConfigurationInput) GoString() string {
47465	return s.String()
47466}
47467
47468// Validate inspects the fields of the type to determine if they are valid.
47469func (s *UpdateDomainConfigurationInput) Validate() error {
47470	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
47471	if s.DomainConfigurationName == nil {
47472		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
47473	}
47474	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
47475		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
47476	}
47477	if s.AuthorizerConfig != nil {
47478		if err := s.AuthorizerConfig.Validate(); err != nil {
47479			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
47480		}
47481	}
47482
47483	if invalidParams.Len() > 0 {
47484		return invalidParams
47485	}
47486	return nil
47487}
47488
47489// SetAuthorizerConfig sets the AuthorizerConfig field's value.
47490func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
47491	s.AuthorizerConfig = v
47492	return s
47493}
47494
47495// SetDomainConfigurationName sets the DomainConfigurationName field's value.
47496func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
47497	s.DomainConfigurationName = &v
47498	return s
47499}
47500
47501// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
47502func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
47503	s.DomainConfigurationStatus = &v
47504	return s
47505}
47506
47507// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
47508func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
47509	s.RemoveAuthorizerConfig = &v
47510	return s
47511}
47512
47513type UpdateDomainConfigurationOutput struct {
47514	_ struct{} `type:"structure"`
47515
47516	// The ARN of the domain configuration that was updated.
47517	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
47518
47519	// The name of the domain configuration that was updated.
47520	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
47521}
47522
47523// String returns the string representation
47524func (s UpdateDomainConfigurationOutput) String() string {
47525	return awsutil.Prettify(s)
47526}
47527
47528// GoString returns the string representation
47529func (s UpdateDomainConfigurationOutput) GoString() string {
47530	return s.String()
47531}
47532
47533// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
47534func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
47535	s.DomainConfigurationArn = &v
47536	return s
47537}
47538
47539// SetDomainConfigurationName sets the DomainConfigurationName field's value.
47540func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
47541	s.DomainConfigurationName = &v
47542	return s
47543}
47544
47545type UpdateDynamicThingGroupInput struct {
47546	_ struct{} `type:"structure"`
47547
47548	// The expected version of the dynamic thing group to update.
47549	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
47550
47551	// The dynamic thing group index to update.
47552	//
47553	// Currently one index is supported: 'AWS_Things'.
47554	IndexName *string `locationName:"indexName" min:"1" type:"string"`
47555
47556	// The dynamic thing group search query string to update.
47557	QueryString *string `locationName:"queryString" min:"1" type:"string"`
47558
47559	// The dynamic thing group query version to update.
47560	//
47561	// Currently one query version is supported: "2017-09-30". If not specified,
47562	// the query version defaults to this value.
47563	QueryVersion *string `locationName:"queryVersion" type:"string"`
47564
47565	// The name of the dynamic thing group to update.
47566	//
47567	// ThingGroupName is a required field
47568	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
47569
47570	// The dynamic thing group properties to update.
47571	//
47572	// ThingGroupProperties is a required field
47573	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
47574}
47575
47576// String returns the string representation
47577func (s UpdateDynamicThingGroupInput) String() string {
47578	return awsutil.Prettify(s)
47579}
47580
47581// GoString returns the string representation
47582func (s UpdateDynamicThingGroupInput) GoString() string {
47583	return s.String()
47584}
47585
47586// Validate inspects the fields of the type to determine if they are valid.
47587func (s *UpdateDynamicThingGroupInput) Validate() error {
47588	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
47589	if s.IndexName != nil && len(*s.IndexName) < 1 {
47590		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
47591	}
47592	if s.QueryString != nil && len(*s.QueryString) < 1 {
47593		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
47594	}
47595	if s.ThingGroupName == nil {
47596		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
47597	}
47598	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
47599		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
47600	}
47601	if s.ThingGroupProperties == nil {
47602		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
47603	}
47604
47605	if invalidParams.Len() > 0 {
47606		return invalidParams
47607	}
47608	return nil
47609}
47610
47611// SetExpectedVersion sets the ExpectedVersion field's value.
47612func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
47613	s.ExpectedVersion = &v
47614	return s
47615}
47616
47617// SetIndexName sets the IndexName field's value.
47618func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
47619	s.IndexName = &v
47620	return s
47621}
47622
47623// SetQueryString sets the QueryString field's value.
47624func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
47625	s.QueryString = &v
47626	return s
47627}
47628
47629// SetQueryVersion sets the QueryVersion field's value.
47630func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
47631	s.QueryVersion = &v
47632	return s
47633}
47634
47635// SetThingGroupName sets the ThingGroupName field's value.
47636func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
47637	s.ThingGroupName = &v
47638	return s
47639}
47640
47641// SetThingGroupProperties sets the ThingGroupProperties field's value.
47642func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
47643	s.ThingGroupProperties = v
47644	return s
47645}
47646
47647type UpdateDynamicThingGroupOutput struct {
47648	_ struct{} `type:"structure"`
47649
47650	// The dynamic thing group version.
47651	Version *int64 `locationName:"version" type:"long"`
47652}
47653
47654// String returns the string representation
47655func (s UpdateDynamicThingGroupOutput) String() string {
47656	return awsutil.Prettify(s)
47657}
47658
47659// GoString returns the string representation
47660func (s UpdateDynamicThingGroupOutput) GoString() string {
47661	return s.String()
47662}
47663
47664// SetVersion sets the Version field's value.
47665func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
47666	s.Version = &v
47667	return s
47668}
47669
47670type UpdateEventConfigurationsInput struct {
47671	_ struct{} `type:"structure"`
47672
47673	// The new event configuration values.
47674	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
47675}
47676
47677// String returns the string representation
47678func (s UpdateEventConfigurationsInput) String() string {
47679	return awsutil.Prettify(s)
47680}
47681
47682// GoString returns the string representation
47683func (s UpdateEventConfigurationsInput) GoString() string {
47684	return s.String()
47685}
47686
47687// SetEventConfigurations sets the EventConfigurations field's value.
47688func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
47689	s.EventConfigurations = v
47690	return s
47691}
47692
47693type UpdateEventConfigurationsOutput struct {
47694	_ struct{} `type:"structure"`
47695}
47696
47697// String returns the string representation
47698func (s UpdateEventConfigurationsOutput) String() string {
47699	return awsutil.Prettify(s)
47700}
47701
47702// GoString returns the string representation
47703func (s UpdateEventConfigurationsOutput) GoString() string {
47704	return s.String()
47705}
47706
47707type UpdateIndexingConfigurationInput struct {
47708	_ struct{} `type:"structure"`
47709
47710	// Thing group indexing configuration.
47711	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
47712
47713	// Thing indexing configuration.
47714	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
47715}
47716
47717// String returns the string representation
47718func (s UpdateIndexingConfigurationInput) String() string {
47719	return awsutil.Prettify(s)
47720}
47721
47722// GoString returns the string representation
47723func (s UpdateIndexingConfigurationInput) GoString() string {
47724	return s.String()
47725}
47726
47727// Validate inspects the fields of the type to determine if they are valid.
47728func (s *UpdateIndexingConfigurationInput) Validate() error {
47729	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
47730	if s.ThingGroupIndexingConfiguration != nil {
47731		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
47732			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
47733		}
47734	}
47735	if s.ThingIndexingConfiguration != nil {
47736		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
47737			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
47738		}
47739	}
47740
47741	if invalidParams.Len() > 0 {
47742		return invalidParams
47743	}
47744	return nil
47745}
47746
47747// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
47748func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
47749	s.ThingGroupIndexingConfiguration = v
47750	return s
47751}
47752
47753// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
47754func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
47755	s.ThingIndexingConfiguration = v
47756	return s
47757}
47758
47759type UpdateIndexingConfigurationOutput struct {
47760	_ struct{} `type:"structure"`
47761}
47762
47763// String returns the string representation
47764func (s UpdateIndexingConfigurationOutput) String() string {
47765	return awsutil.Prettify(s)
47766}
47767
47768// GoString returns the string representation
47769func (s UpdateIndexingConfigurationOutput) GoString() string {
47770	return s.String()
47771}
47772
47773type UpdateJobInput struct {
47774	_ struct{} `type:"structure"`
47775
47776	// Allows you to create criteria to abort a job.
47777	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
47778
47779	// A short text description of the job.
47780	Description *string `locationName:"description" type:"string"`
47781
47782	// Allows you to create a staged rollout of the job.
47783	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
47784
47785	// The ID of the job to be updated.
47786	//
47787	// JobId is a required field
47788	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
47789
47790	// Configuration information for pre-signed S3 URLs.
47791	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
47792
47793	// Specifies the amount of time each device has to finish its execution of the
47794	// job. The timer is started when the job execution status is set to IN_PROGRESS.
47795	// If the job execution status is not set to another terminal state before the
47796	// time expires, it will be automatically set to TIMED_OUT.
47797	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
47798}
47799
47800// String returns the string representation
47801func (s UpdateJobInput) String() string {
47802	return awsutil.Prettify(s)
47803}
47804
47805// GoString returns the string representation
47806func (s UpdateJobInput) GoString() string {
47807	return s.String()
47808}
47809
47810// Validate inspects the fields of the type to determine if they are valid.
47811func (s *UpdateJobInput) Validate() error {
47812	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
47813	if s.JobId == nil {
47814		invalidParams.Add(request.NewErrParamRequired("JobId"))
47815	}
47816	if s.JobId != nil && len(*s.JobId) < 1 {
47817		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
47818	}
47819	if s.AbortConfig != nil {
47820		if err := s.AbortConfig.Validate(); err != nil {
47821			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
47822		}
47823	}
47824	if s.JobExecutionsRolloutConfig != nil {
47825		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
47826			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
47827		}
47828	}
47829	if s.PresignedUrlConfig != nil {
47830		if err := s.PresignedUrlConfig.Validate(); err != nil {
47831			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
47832		}
47833	}
47834
47835	if invalidParams.Len() > 0 {
47836		return invalidParams
47837	}
47838	return nil
47839}
47840
47841// SetAbortConfig sets the AbortConfig field's value.
47842func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
47843	s.AbortConfig = v
47844	return s
47845}
47846
47847// SetDescription sets the Description field's value.
47848func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
47849	s.Description = &v
47850	return s
47851}
47852
47853// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
47854func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
47855	s.JobExecutionsRolloutConfig = v
47856	return s
47857}
47858
47859// SetJobId sets the JobId field's value.
47860func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
47861	s.JobId = &v
47862	return s
47863}
47864
47865// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
47866func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
47867	s.PresignedUrlConfig = v
47868	return s
47869}
47870
47871// SetTimeoutConfig sets the TimeoutConfig field's value.
47872func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
47873	s.TimeoutConfig = v
47874	return s
47875}
47876
47877type UpdateJobOutput struct {
47878	_ struct{} `type:"structure"`
47879}
47880
47881// String returns the string representation
47882func (s UpdateJobOutput) String() string {
47883	return awsutil.Prettify(s)
47884}
47885
47886// GoString returns the string representation
47887func (s UpdateJobOutput) GoString() string {
47888	return s.String()
47889}
47890
47891type UpdateMitigationActionInput struct {
47892	_ struct{} `type:"structure"`
47893
47894	// The friendly name for the mitigation action. You can't change the name by
47895	// using UpdateMitigationAction. Instead, you must delete and re-create the
47896	// mitigation action with the new name.
47897	//
47898	// ActionName is a required field
47899	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
47900
47901	// Defines the type of action and the parameters for that action.
47902	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
47903
47904	// The ARN of the IAM role that is used to apply the mitigation action.
47905	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
47906}
47907
47908// String returns the string representation
47909func (s UpdateMitigationActionInput) String() string {
47910	return awsutil.Prettify(s)
47911}
47912
47913// GoString returns the string representation
47914func (s UpdateMitigationActionInput) GoString() string {
47915	return s.String()
47916}
47917
47918// Validate inspects the fields of the type to determine if they are valid.
47919func (s *UpdateMitigationActionInput) Validate() error {
47920	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
47921	if s.ActionName == nil {
47922		invalidParams.Add(request.NewErrParamRequired("ActionName"))
47923	}
47924	if s.ActionName != nil && len(*s.ActionName) < 1 {
47925		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
47926	}
47927	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
47928		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
47929	}
47930	if s.ActionParams != nil {
47931		if err := s.ActionParams.Validate(); err != nil {
47932			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
47933		}
47934	}
47935
47936	if invalidParams.Len() > 0 {
47937		return invalidParams
47938	}
47939	return nil
47940}
47941
47942// SetActionName sets the ActionName field's value.
47943func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
47944	s.ActionName = &v
47945	return s
47946}
47947
47948// SetActionParams sets the ActionParams field's value.
47949func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
47950	s.ActionParams = v
47951	return s
47952}
47953
47954// SetRoleArn sets the RoleArn field's value.
47955func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
47956	s.RoleArn = &v
47957	return s
47958}
47959
47960type UpdateMitigationActionOutput struct {
47961	_ struct{} `type:"structure"`
47962
47963	// The ARN for the new mitigation action.
47964	ActionArn *string `locationName:"actionArn" type:"string"`
47965
47966	// A unique identifier for the mitigation action.
47967	ActionId *string `locationName:"actionId" type:"string"`
47968}
47969
47970// String returns the string representation
47971func (s UpdateMitigationActionOutput) String() string {
47972	return awsutil.Prettify(s)
47973}
47974
47975// GoString returns the string representation
47976func (s UpdateMitigationActionOutput) GoString() string {
47977	return s.String()
47978}
47979
47980// SetActionArn sets the ActionArn field's value.
47981func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
47982	s.ActionArn = &v
47983	return s
47984}
47985
47986// SetActionId sets the ActionId field's value.
47987func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
47988	s.ActionId = &v
47989	return s
47990}
47991
47992type UpdateProvisioningTemplateInput struct {
47993	_ struct{} `type:"structure"`
47994
47995	// The ID of the default provisioning template version.
47996	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
47997
47998	// The description of the fleet provisioning template.
47999	Description *string `locationName:"description" type:"string"`
48000
48001	// True to enable the fleet provisioning template, otherwise false.
48002	Enabled *bool `locationName:"enabled" type:"boolean"`
48003
48004	// Updates the pre-provisioning hook template.
48005	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
48006
48007	// The ARN of the role associated with the provisioning template. This IoT role
48008	// grants permission to provision a device.
48009	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
48010
48011	// Removes pre-provisioning hook template.
48012	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
48013
48014	// The name of the fleet provisioning template.
48015	//
48016	// TemplateName is a required field
48017	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
48018}
48019
48020// String returns the string representation
48021func (s UpdateProvisioningTemplateInput) String() string {
48022	return awsutil.Prettify(s)
48023}
48024
48025// GoString returns the string representation
48026func (s UpdateProvisioningTemplateInput) GoString() string {
48027	return s.String()
48028}
48029
48030// Validate inspects the fields of the type to determine if they are valid.
48031func (s *UpdateProvisioningTemplateInput) Validate() error {
48032	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
48033	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
48034		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
48035	}
48036	if s.TemplateName == nil {
48037		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
48038	}
48039	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
48040		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
48041	}
48042	if s.PreProvisioningHook != nil {
48043		if err := s.PreProvisioningHook.Validate(); err != nil {
48044			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
48045		}
48046	}
48047
48048	if invalidParams.Len() > 0 {
48049		return invalidParams
48050	}
48051	return nil
48052}
48053
48054// SetDefaultVersionId sets the DefaultVersionId field's value.
48055func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
48056	s.DefaultVersionId = &v
48057	return s
48058}
48059
48060// SetDescription sets the Description field's value.
48061func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
48062	s.Description = &v
48063	return s
48064}
48065
48066// SetEnabled sets the Enabled field's value.
48067func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
48068	s.Enabled = &v
48069	return s
48070}
48071
48072// SetPreProvisioningHook sets the PreProvisioningHook field's value.
48073func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
48074	s.PreProvisioningHook = v
48075	return s
48076}
48077
48078// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
48079func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
48080	s.ProvisioningRoleArn = &v
48081	return s
48082}
48083
48084// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
48085func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
48086	s.RemovePreProvisioningHook = &v
48087	return s
48088}
48089
48090// SetTemplateName sets the TemplateName field's value.
48091func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
48092	s.TemplateName = &v
48093	return s
48094}
48095
48096type UpdateProvisioningTemplateOutput struct {
48097	_ struct{} `type:"structure"`
48098}
48099
48100// String returns the string representation
48101func (s UpdateProvisioningTemplateOutput) String() string {
48102	return awsutil.Prettify(s)
48103}
48104
48105// GoString returns the string representation
48106func (s UpdateProvisioningTemplateOutput) GoString() string {
48107	return s.String()
48108}
48109
48110type UpdateRoleAliasInput struct {
48111	_ struct{} `type:"structure"`
48112
48113	// The number of seconds the credential will be valid.
48114	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
48115
48116	// The role alias to update.
48117	//
48118	// RoleAlias is a required field
48119	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
48120
48121	// The role ARN.
48122	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
48123}
48124
48125// String returns the string representation
48126func (s UpdateRoleAliasInput) String() string {
48127	return awsutil.Prettify(s)
48128}
48129
48130// GoString returns the string representation
48131func (s UpdateRoleAliasInput) GoString() string {
48132	return s.String()
48133}
48134
48135// Validate inspects the fields of the type to determine if they are valid.
48136func (s *UpdateRoleAliasInput) Validate() error {
48137	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
48138	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
48139		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
48140	}
48141	if s.RoleAlias == nil {
48142		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
48143	}
48144	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
48145		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
48146	}
48147	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
48148		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
48149	}
48150
48151	if invalidParams.Len() > 0 {
48152		return invalidParams
48153	}
48154	return nil
48155}
48156
48157// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
48158func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
48159	s.CredentialDurationSeconds = &v
48160	return s
48161}
48162
48163// SetRoleAlias sets the RoleAlias field's value.
48164func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
48165	s.RoleAlias = &v
48166	return s
48167}
48168
48169// SetRoleArn sets the RoleArn field's value.
48170func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
48171	s.RoleArn = &v
48172	return s
48173}
48174
48175type UpdateRoleAliasOutput struct {
48176	_ struct{} `type:"structure"`
48177
48178	// The role alias.
48179	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
48180
48181	// The role alias ARN.
48182	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
48183}
48184
48185// String returns the string representation
48186func (s UpdateRoleAliasOutput) String() string {
48187	return awsutil.Prettify(s)
48188}
48189
48190// GoString returns the string representation
48191func (s UpdateRoleAliasOutput) GoString() string {
48192	return s.String()
48193}
48194
48195// SetRoleAlias sets the RoleAlias field's value.
48196func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
48197	s.RoleAlias = &v
48198	return s
48199}
48200
48201// SetRoleAliasArn sets the RoleAliasArn field's value.
48202func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
48203	s.RoleAliasArn = &v
48204	return s
48205}
48206
48207type UpdateScheduledAuditInput struct {
48208	_ struct{} `type:"structure"`
48209
48210	// The day of the month on which the scheduled audit takes place. Can be "1"
48211	// through "31" or "LAST". This field is required if the "frequency" parameter
48212	// is set to "MONTHLY". If days 29-31 are specified, and the month does not
48213	// have that many days, the audit takes place on the "LAST" day of the month.
48214	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
48215
48216	// The day of the week on which the scheduled audit takes place. Can be one
48217	// of "SUN", "MON", "TUE", "WED", "THU", "FRI", or "SAT". This field is required
48218	// if the "frequency" parameter is set to "WEEKLY" or "BIWEEKLY".
48219	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
48220
48221	// How often the scheduled audit takes place. Can be one of "DAILY", "WEEKLY",
48222	// "BIWEEKLY", or "MONTHLY". The start time of each audit is determined by the
48223	// system.
48224	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
48225
48226	// The name of the scheduled audit. (Max. 128 chars)
48227	//
48228	// ScheduledAuditName is a required field
48229	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
48230
48231	// Which checks are performed during the scheduled audit. Checks must be enabled
48232	// for your account. (Use DescribeAccountAuditConfiguration to see the list
48233	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
48234	// to select which checks are enabled.)
48235	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
48236}
48237
48238// String returns the string representation
48239func (s UpdateScheduledAuditInput) String() string {
48240	return awsutil.Prettify(s)
48241}
48242
48243// GoString returns the string representation
48244func (s UpdateScheduledAuditInput) GoString() string {
48245	return s.String()
48246}
48247
48248// Validate inspects the fields of the type to determine if they are valid.
48249func (s *UpdateScheduledAuditInput) Validate() error {
48250	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
48251	if s.ScheduledAuditName == nil {
48252		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
48253	}
48254	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
48255		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
48256	}
48257
48258	if invalidParams.Len() > 0 {
48259		return invalidParams
48260	}
48261	return nil
48262}
48263
48264// SetDayOfMonth sets the DayOfMonth field's value.
48265func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
48266	s.DayOfMonth = &v
48267	return s
48268}
48269
48270// SetDayOfWeek sets the DayOfWeek field's value.
48271func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
48272	s.DayOfWeek = &v
48273	return s
48274}
48275
48276// SetFrequency sets the Frequency field's value.
48277func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
48278	s.Frequency = &v
48279	return s
48280}
48281
48282// SetScheduledAuditName sets the ScheduledAuditName field's value.
48283func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
48284	s.ScheduledAuditName = &v
48285	return s
48286}
48287
48288// SetTargetCheckNames sets the TargetCheckNames field's value.
48289func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
48290	s.TargetCheckNames = v
48291	return s
48292}
48293
48294type UpdateScheduledAuditOutput struct {
48295	_ struct{} `type:"structure"`
48296
48297	// The ARN of the scheduled audit.
48298	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
48299}
48300
48301// String returns the string representation
48302func (s UpdateScheduledAuditOutput) String() string {
48303	return awsutil.Prettify(s)
48304}
48305
48306// GoString returns the string representation
48307func (s UpdateScheduledAuditOutput) GoString() string {
48308	return s.String()
48309}
48310
48311// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
48312func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
48313	s.ScheduledAuditArn = &v
48314	return s
48315}
48316
48317type UpdateSecurityProfileInput struct {
48318	_ struct{} `type:"structure"`
48319
48320	// A list of metrics whose data is retained (stored). By default, data is retained
48321	// for any metric used in the profile's behaviors, but it is also retained for
48322	// any metric specified here.
48323	//
48324	// Note: This API field is deprecated. Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2
48325	// instead.
48326	//
48327	// Deprecated: Use additionalMetricsToRetainV2.
48328	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
48329
48330	// A list of metrics whose data is retained (stored). By default, data is retained
48331	// for any metric used in the profile's behaviors, but it is also retained for
48332	// any metric specified here.
48333	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
48334
48335	// Where the alerts are sent. (Alerts are always sent to the console.)
48336	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
48337
48338	// Specifies the behaviors that, when violated by a device (thing), cause an
48339	// alert.
48340	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
48341
48342	// If true, delete all additionalMetricsToRetain defined for this security profile.
48343	// If any additionalMetricsToRetain are defined in the current invocation, an
48344	// exception occurs.
48345	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
48346
48347	// If true, delete all alertTargets defined for this security profile. If any
48348	// alertTargets are defined in the current invocation, an exception occurs.
48349	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
48350
48351	// If true, delete all behaviors defined for this security profile. If any behaviors
48352	// are defined in the current invocation, an exception occurs.
48353	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
48354
48355	// The expected version of the security profile. A new version is generated
48356	// whenever the security profile is updated. If you specify a value that is
48357	// different from the actual version, a VersionConflictException is thrown.
48358	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
48359
48360	// A description of the security profile.
48361	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
48362
48363	// The name of the security profile you want to update.
48364	//
48365	// SecurityProfileName is a required field
48366	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
48367}
48368
48369// String returns the string representation
48370func (s UpdateSecurityProfileInput) String() string {
48371	return awsutil.Prettify(s)
48372}
48373
48374// GoString returns the string representation
48375func (s UpdateSecurityProfileInput) GoString() string {
48376	return s.String()
48377}
48378
48379// Validate inspects the fields of the type to determine if they are valid.
48380func (s *UpdateSecurityProfileInput) Validate() error {
48381	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
48382	if s.SecurityProfileName == nil {
48383		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
48384	}
48385	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
48386		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
48387	}
48388	if s.AdditionalMetricsToRetainV2 != nil {
48389		for i, v := range s.AdditionalMetricsToRetainV2 {
48390			if v == nil {
48391				continue
48392			}
48393			if err := v.Validate(); err != nil {
48394				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
48395			}
48396		}
48397	}
48398	if s.AlertTargets != nil {
48399		for i, v := range s.AlertTargets {
48400			if v == nil {
48401				continue
48402			}
48403			if err := v.Validate(); err != nil {
48404				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
48405			}
48406		}
48407	}
48408	if s.Behaviors != nil {
48409		for i, v := range s.Behaviors {
48410			if v == nil {
48411				continue
48412			}
48413			if err := v.Validate(); err != nil {
48414				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
48415			}
48416		}
48417	}
48418
48419	if invalidParams.Len() > 0 {
48420		return invalidParams
48421	}
48422	return nil
48423}
48424
48425// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
48426func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
48427	s.AdditionalMetricsToRetain = v
48428	return s
48429}
48430
48431// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
48432func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
48433	s.AdditionalMetricsToRetainV2 = v
48434	return s
48435}
48436
48437// SetAlertTargets sets the AlertTargets field's value.
48438func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
48439	s.AlertTargets = v
48440	return s
48441}
48442
48443// SetBehaviors sets the Behaviors field's value.
48444func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
48445	s.Behaviors = v
48446	return s
48447}
48448
48449// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
48450func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
48451	s.DeleteAdditionalMetricsToRetain = &v
48452	return s
48453}
48454
48455// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
48456func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
48457	s.DeleteAlertTargets = &v
48458	return s
48459}
48460
48461// SetDeleteBehaviors sets the DeleteBehaviors field's value.
48462func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
48463	s.DeleteBehaviors = &v
48464	return s
48465}
48466
48467// SetExpectedVersion sets the ExpectedVersion field's value.
48468func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
48469	s.ExpectedVersion = &v
48470	return s
48471}
48472
48473// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
48474func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
48475	s.SecurityProfileDescription = &v
48476	return s
48477}
48478
48479// SetSecurityProfileName sets the SecurityProfileName field's value.
48480func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
48481	s.SecurityProfileName = &v
48482	return s
48483}
48484
48485type UpdateSecurityProfileOutput struct {
48486	_ struct{} `type:"structure"`
48487
48488	// A list of metrics whose data is retained (stored). By default, data is retained
48489	// for any metric used in the security profile's behaviors, but it is also retained
48490	// for any metric specified here.
48491	//
48492	// Note: This API field is deprecated. Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2
48493	// instead.
48494	//
48495	// Deprecated: Use additionalMetricsToRetainV2.
48496	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
48497
48498	// A list of metrics whose data is retained (stored). By default, data is retained
48499	// for any metric used in the profile's behaviors, but it is also retained for
48500	// any metric specified here.
48501	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
48502
48503	// Where the alerts are sent. (Alerts are always sent to the console.)
48504	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
48505
48506	// Specifies the behaviors that, when violated by a device (thing), cause an
48507	// alert.
48508	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
48509
48510	// The time the security profile was created.
48511	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48512
48513	// The time the security profile was last modified.
48514	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
48515
48516	// The ARN of the security profile that was updated.
48517	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
48518
48519	// The description of the security profile.
48520	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
48521
48522	// The name of the security profile that was updated.
48523	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
48524
48525	// The updated version of the security profile.
48526	Version *int64 `locationName:"version" type:"long"`
48527}
48528
48529// String returns the string representation
48530func (s UpdateSecurityProfileOutput) String() string {
48531	return awsutil.Prettify(s)
48532}
48533
48534// GoString returns the string representation
48535func (s UpdateSecurityProfileOutput) GoString() string {
48536	return s.String()
48537}
48538
48539// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
48540func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
48541	s.AdditionalMetricsToRetain = v
48542	return s
48543}
48544
48545// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
48546func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
48547	s.AdditionalMetricsToRetainV2 = v
48548	return s
48549}
48550
48551// SetAlertTargets sets the AlertTargets field's value.
48552func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
48553	s.AlertTargets = v
48554	return s
48555}
48556
48557// SetBehaviors sets the Behaviors field's value.
48558func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
48559	s.Behaviors = v
48560	return s
48561}
48562
48563// SetCreationDate sets the CreationDate field's value.
48564func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
48565	s.CreationDate = &v
48566	return s
48567}
48568
48569// SetLastModifiedDate sets the LastModifiedDate field's value.
48570func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
48571	s.LastModifiedDate = &v
48572	return s
48573}
48574
48575// SetSecurityProfileArn sets the SecurityProfileArn field's value.
48576func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
48577	s.SecurityProfileArn = &v
48578	return s
48579}
48580
48581// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
48582func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
48583	s.SecurityProfileDescription = &v
48584	return s
48585}
48586
48587// SetSecurityProfileName sets the SecurityProfileName field's value.
48588func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
48589	s.SecurityProfileName = &v
48590	return s
48591}
48592
48593// SetVersion sets the Version field's value.
48594func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
48595	s.Version = &v
48596	return s
48597}
48598
48599type UpdateStreamInput struct {
48600	_ struct{} `type:"structure"`
48601
48602	// The description of the stream.
48603	Description *string `locationName:"description" type:"string"`
48604
48605	// The files associated with the stream.
48606	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
48607
48608	// An IAM role that allows the IoT service principal assumes to access your
48609	// S3 files.
48610	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
48611
48612	// The stream ID.
48613	//
48614	// StreamId is a required field
48615	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
48616}
48617
48618// String returns the string representation
48619func (s UpdateStreamInput) String() string {
48620	return awsutil.Prettify(s)
48621}
48622
48623// GoString returns the string representation
48624func (s UpdateStreamInput) GoString() string {
48625	return s.String()
48626}
48627
48628// Validate inspects the fields of the type to determine if they are valid.
48629func (s *UpdateStreamInput) Validate() error {
48630	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
48631	if s.Files != nil && len(s.Files) < 1 {
48632		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
48633	}
48634	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
48635		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
48636	}
48637	if s.StreamId == nil {
48638		invalidParams.Add(request.NewErrParamRequired("StreamId"))
48639	}
48640	if s.StreamId != nil && len(*s.StreamId) < 1 {
48641		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
48642	}
48643	if s.Files != nil {
48644		for i, v := range s.Files {
48645			if v == nil {
48646				continue
48647			}
48648			if err := v.Validate(); err != nil {
48649				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
48650			}
48651		}
48652	}
48653
48654	if invalidParams.Len() > 0 {
48655		return invalidParams
48656	}
48657	return nil
48658}
48659
48660// SetDescription sets the Description field's value.
48661func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
48662	s.Description = &v
48663	return s
48664}
48665
48666// SetFiles sets the Files field's value.
48667func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
48668	s.Files = v
48669	return s
48670}
48671
48672// SetRoleArn sets the RoleArn field's value.
48673func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
48674	s.RoleArn = &v
48675	return s
48676}
48677
48678// SetStreamId sets the StreamId field's value.
48679func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
48680	s.StreamId = &v
48681	return s
48682}
48683
48684type UpdateStreamOutput struct {
48685	_ struct{} `type:"structure"`
48686
48687	// A description of the stream.
48688	Description *string `locationName:"description" type:"string"`
48689
48690	// The stream ARN.
48691	StreamArn *string `locationName:"streamArn" type:"string"`
48692
48693	// The stream ID.
48694	StreamId *string `locationName:"streamId" min:"1" type:"string"`
48695
48696	// The stream version.
48697	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
48698}
48699
48700// String returns the string representation
48701func (s UpdateStreamOutput) String() string {
48702	return awsutil.Prettify(s)
48703}
48704
48705// GoString returns the string representation
48706func (s UpdateStreamOutput) GoString() string {
48707	return s.String()
48708}
48709
48710// SetDescription sets the Description field's value.
48711func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
48712	s.Description = &v
48713	return s
48714}
48715
48716// SetStreamArn sets the StreamArn field's value.
48717func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
48718	s.StreamArn = &v
48719	return s
48720}
48721
48722// SetStreamId sets the StreamId field's value.
48723func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
48724	s.StreamId = &v
48725	return s
48726}
48727
48728// SetStreamVersion sets the StreamVersion field's value.
48729func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
48730	s.StreamVersion = &v
48731	return s
48732}
48733
48734type UpdateThingGroupInput struct {
48735	_ struct{} `type:"structure"`
48736
48737	// The expected version of the thing group. If this does not match the version
48738	// of the thing group being updated, the update will fail.
48739	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
48740
48741	// The thing group to update.
48742	//
48743	// ThingGroupName is a required field
48744	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
48745
48746	// The thing group properties.
48747	//
48748	// ThingGroupProperties is a required field
48749	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
48750}
48751
48752// String returns the string representation
48753func (s UpdateThingGroupInput) String() string {
48754	return awsutil.Prettify(s)
48755}
48756
48757// GoString returns the string representation
48758func (s UpdateThingGroupInput) GoString() string {
48759	return s.String()
48760}
48761
48762// Validate inspects the fields of the type to determine if they are valid.
48763func (s *UpdateThingGroupInput) Validate() error {
48764	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
48765	if s.ThingGroupName == nil {
48766		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
48767	}
48768	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
48769		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
48770	}
48771	if s.ThingGroupProperties == nil {
48772		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
48773	}
48774
48775	if invalidParams.Len() > 0 {
48776		return invalidParams
48777	}
48778	return nil
48779}
48780
48781// SetExpectedVersion sets the ExpectedVersion field's value.
48782func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
48783	s.ExpectedVersion = &v
48784	return s
48785}
48786
48787// SetThingGroupName sets the ThingGroupName field's value.
48788func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
48789	s.ThingGroupName = &v
48790	return s
48791}
48792
48793// SetThingGroupProperties sets the ThingGroupProperties field's value.
48794func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
48795	s.ThingGroupProperties = v
48796	return s
48797}
48798
48799type UpdateThingGroupOutput struct {
48800	_ struct{} `type:"structure"`
48801
48802	// The version of the updated thing group.
48803	Version *int64 `locationName:"version" type:"long"`
48804}
48805
48806// String returns the string representation
48807func (s UpdateThingGroupOutput) String() string {
48808	return awsutil.Prettify(s)
48809}
48810
48811// GoString returns the string representation
48812func (s UpdateThingGroupOutput) GoString() string {
48813	return s.String()
48814}
48815
48816// SetVersion sets the Version field's value.
48817func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
48818	s.Version = &v
48819	return s
48820}
48821
48822type UpdateThingGroupsForThingInput struct {
48823	_ struct{} `type:"structure"`
48824
48825	// Override dynamic thing groups with static thing groups when 10-group limit
48826	// is reached. If a thing belongs to 10 thing groups, and one or more of those
48827	// groups are dynamic thing groups, adding a thing to a static group removes
48828	// the thing from the last dynamic group.
48829	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
48830
48831	// The groups to which the thing will be added.
48832	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
48833
48834	// The groups from which the thing will be removed.
48835	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
48836
48837	// The thing whose group memberships will be updated.
48838	ThingName *string `locationName:"thingName" min:"1" type:"string"`
48839}
48840
48841// String returns the string representation
48842func (s UpdateThingGroupsForThingInput) String() string {
48843	return awsutil.Prettify(s)
48844}
48845
48846// GoString returns the string representation
48847func (s UpdateThingGroupsForThingInput) GoString() string {
48848	return s.String()
48849}
48850
48851// Validate inspects the fields of the type to determine if they are valid.
48852func (s *UpdateThingGroupsForThingInput) Validate() error {
48853	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
48854	if s.ThingName != nil && len(*s.ThingName) < 1 {
48855		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48856	}
48857
48858	if invalidParams.Len() > 0 {
48859		return invalidParams
48860	}
48861	return nil
48862}
48863
48864// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
48865func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
48866	s.OverrideDynamicGroups = &v
48867	return s
48868}
48869
48870// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
48871func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
48872	s.ThingGroupsToAdd = v
48873	return s
48874}
48875
48876// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
48877func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
48878	s.ThingGroupsToRemove = v
48879	return s
48880}
48881
48882// SetThingName sets the ThingName field's value.
48883func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
48884	s.ThingName = &v
48885	return s
48886}
48887
48888type UpdateThingGroupsForThingOutput struct {
48889	_ struct{} `type:"structure"`
48890}
48891
48892// String returns the string representation
48893func (s UpdateThingGroupsForThingOutput) String() string {
48894	return awsutil.Prettify(s)
48895}
48896
48897// GoString returns the string representation
48898func (s UpdateThingGroupsForThingOutput) GoString() string {
48899	return s.String()
48900}
48901
48902// The input for the UpdateThing operation.
48903type UpdateThingInput struct {
48904	_ struct{} `type:"structure"`
48905
48906	// A list of thing attributes, a JSON string containing name-value pairs. For
48907	// example:
48908	//
48909	// {\"attributes\":{\"name1\":\"value2\"}}
48910	//
48911	// This data is used to add new attributes or update existing attributes.
48912	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
48913
48914	// The expected version of the thing record in the registry. If the version
48915	// of the record in the registry does not match the expected version specified
48916	// in the request, the UpdateThing request is rejected with a VersionConflictException.
48917	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
48918
48919	// Remove a thing type association. If true, the association is removed.
48920	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
48921
48922	// The name of the thing to update.
48923	//
48924	// You can't change a thing's name. To change a thing's name, you must create
48925	// a new thing, give it the new name, and then delete the old thing.
48926	//
48927	// ThingName is a required field
48928	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
48929
48930	// The name of the thing type.
48931	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
48932}
48933
48934// String returns the string representation
48935func (s UpdateThingInput) String() string {
48936	return awsutil.Prettify(s)
48937}
48938
48939// GoString returns the string representation
48940func (s UpdateThingInput) GoString() string {
48941	return s.String()
48942}
48943
48944// Validate inspects the fields of the type to determine if they are valid.
48945func (s *UpdateThingInput) Validate() error {
48946	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
48947	if s.ThingName == nil {
48948		invalidParams.Add(request.NewErrParamRequired("ThingName"))
48949	}
48950	if s.ThingName != nil && len(*s.ThingName) < 1 {
48951		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48952	}
48953	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
48954		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
48955	}
48956
48957	if invalidParams.Len() > 0 {
48958		return invalidParams
48959	}
48960	return nil
48961}
48962
48963// SetAttributePayload sets the AttributePayload field's value.
48964func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
48965	s.AttributePayload = v
48966	return s
48967}
48968
48969// SetExpectedVersion sets the ExpectedVersion field's value.
48970func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
48971	s.ExpectedVersion = &v
48972	return s
48973}
48974
48975// SetRemoveThingType sets the RemoveThingType field's value.
48976func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
48977	s.RemoveThingType = &v
48978	return s
48979}
48980
48981// SetThingName sets the ThingName field's value.
48982func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
48983	s.ThingName = &v
48984	return s
48985}
48986
48987// SetThingTypeName sets the ThingTypeName field's value.
48988func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
48989	s.ThingTypeName = &v
48990	return s
48991}
48992
48993// The output from the UpdateThing operation.
48994type UpdateThingOutput struct {
48995	_ struct{} `type:"structure"`
48996}
48997
48998// String returns the string representation
48999func (s UpdateThingOutput) String() string {
49000	return awsutil.Prettify(s)
49001}
49002
49003// GoString returns the string representation
49004func (s UpdateThingOutput) GoString() string {
49005	return s.String()
49006}
49007
49008type UpdateTopicRuleDestinationInput struct {
49009	_ struct{} `type:"structure"`
49010
49011	// The ARN of the topic rule destination.
49012	//
49013	// Arn is a required field
49014	Arn *string `locationName:"arn" type:"string" required:"true"`
49015
49016	// The status of the topic rule destination. Valid values are:
49017	//
49018	// IN_PROGRESS
49019	//
49020	// A topic rule destination was created but has not been confirmed. You can
49021	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
49022	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
49023	// to your confirmation endpoint.
49024	//
49025	// ENABLED
49026	//
49027	// Confirmation was completed, and traffic to this destination is allowed. You
49028	// can set status to DISABLED by calling UpdateTopicRuleDestination.
49029	//
49030	// DISABLED
49031	//
49032	// Confirmation was completed, and traffic to this destination is not allowed.
49033	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
49034	//
49035	// ERROR
49036	//
49037	// Confirmation could not be completed, for example if the confirmation timed
49038	// out. You can call GetTopicRuleDestination for details about the error. You
49039	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
49040	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
49041	// to your confirmation endpoint.
49042	//
49043	// Status is a required field
49044	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
49045}
49046
49047// String returns the string representation
49048func (s UpdateTopicRuleDestinationInput) String() string {
49049	return awsutil.Prettify(s)
49050}
49051
49052// GoString returns the string representation
49053func (s UpdateTopicRuleDestinationInput) GoString() string {
49054	return s.String()
49055}
49056
49057// Validate inspects the fields of the type to determine if they are valid.
49058func (s *UpdateTopicRuleDestinationInput) Validate() error {
49059	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
49060	if s.Arn == nil {
49061		invalidParams.Add(request.NewErrParamRequired("Arn"))
49062	}
49063	if s.Status == nil {
49064		invalidParams.Add(request.NewErrParamRequired("Status"))
49065	}
49066
49067	if invalidParams.Len() > 0 {
49068		return invalidParams
49069	}
49070	return nil
49071}
49072
49073// SetArn sets the Arn field's value.
49074func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
49075	s.Arn = &v
49076	return s
49077}
49078
49079// SetStatus sets the Status field's value.
49080func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
49081	s.Status = &v
49082	return s
49083}
49084
49085type UpdateTopicRuleDestinationOutput struct {
49086	_ struct{} `type:"structure"`
49087}
49088
49089// String returns the string representation
49090func (s UpdateTopicRuleDestinationOutput) String() string {
49091	return awsutil.Prettify(s)
49092}
49093
49094// GoString returns the string representation
49095func (s UpdateTopicRuleDestinationOutput) GoString() string {
49096	return s.String()
49097}
49098
49099type ValidateSecurityProfileBehaviorsInput struct {
49100	_ struct{} `type:"structure"`
49101
49102	// Specifies the behaviors that, when violated by a device (thing), cause an
49103	// alert.
49104	//
49105	// Behaviors is a required field
49106	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
49107}
49108
49109// String returns the string representation
49110func (s ValidateSecurityProfileBehaviorsInput) String() string {
49111	return awsutil.Prettify(s)
49112}
49113
49114// GoString returns the string representation
49115func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
49116	return s.String()
49117}
49118
49119// Validate inspects the fields of the type to determine if they are valid.
49120func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
49121	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
49122	if s.Behaviors == nil {
49123		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
49124	}
49125	if s.Behaviors != nil {
49126		for i, v := range s.Behaviors {
49127			if v == nil {
49128				continue
49129			}
49130			if err := v.Validate(); err != nil {
49131				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
49132			}
49133		}
49134	}
49135
49136	if invalidParams.Len() > 0 {
49137		return invalidParams
49138	}
49139	return nil
49140}
49141
49142// SetBehaviors sets the Behaviors field's value.
49143func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
49144	s.Behaviors = v
49145	return s
49146}
49147
49148type ValidateSecurityProfileBehaviorsOutput struct {
49149	_ struct{} `type:"structure"`
49150
49151	// True if the behaviors were valid.
49152	Valid *bool `locationName:"valid" type:"boolean"`
49153
49154	// The list of any errors found in the behaviors.
49155	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
49156}
49157
49158// String returns the string representation
49159func (s ValidateSecurityProfileBehaviorsOutput) String() string {
49160	return awsutil.Prettify(s)
49161}
49162
49163// GoString returns the string representation
49164func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
49165	return s.String()
49166}
49167
49168// SetValid sets the Valid field's value.
49169func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
49170	s.Valid = &v
49171	return s
49172}
49173
49174// SetValidationErrors sets the ValidationErrors field's value.
49175func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
49176	s.ValidationErrors = v
49177	return s
49178}
49179
49180// Information about an error found in a behavior specification.
49181type ValidationError struct {
49182	_ struct{} `type:"structure"`
49183
49184	// The description of an error found in the behaviors.
49185	ErrorMessage *string `locationName:"errorMessage" type:"string"`
49186}
49187
49188// String returns the string representation
49189func (s ValidationError) String() string {
49190	return awsutil.Prettify(s)
49191}
49192
49193// GoString returns the string representation
49194func (s ValidationError) GoString() string {
49195	return s.String()
49196}
49197
49198// SetErrorMessage sets the ErrorMessage field's value.
49199func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
49200	s.ErrorMessage = &v
49201	return s
49202}
49203
49204// An exception thrown when the version of an entity specified with the expectedVersion
49205// parameter does not match the latest version in the system.
49206type VersionConflictException struct {
49207	_            struct{}                  `type:"structure"`
49208	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49209
49210	// The message for the exception.
49211	Message_ *string `locationName:"message" type:"string"`
49212}
49213
49214// String returns the string representation
49215func (s VersionConflictException) String() string {
49216	return awsutil.Prettify(s)
49217}
49218
49219// GoString returns the string representation
49220func (s VersionConflictException) GoString() string {
49221	return s.String()
49222}
49223
49224func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
49225	return &VersionConflictException{
49226		RespMetadata: v,
49227	}
49228}
49229
49230// Code returns the exception type name.
49231func (s *VersionConflictException) Code() string {
49232	return "VersionConflictException"
49233}
49234
49235// Message returns the exception's message.
49236func (s *VersionConflictException) Message() string {
49237	if s.Message_ != nil {
49238		return *s.Message_
49239	}
49240	return ""
49241}
49242
49243// OrigErr always returns nil, satisfies awserr.Error interface.
49244func (s *VersionConflictException) OrigErr() error {
49245	return nil
49246}
49247
49248func (s *VersionConflictException) Error() string {
49249	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49250}
49251
49252// Status code returns the HTTP status code for the request's response error.
49253func (s *VersionConflictException) StatusCode() int {
49254	return s.RespMetadata.StatusCode
49255}
49256
49257// RequestID returns the service's response RequestID for request.
49258func (s *VersionConflictException) RequestID() string {
49259	return s.RespMetadata.RequestID
49260}
49261
49262// The number of policy versions exceeds the limit.
49263type VersionsLimitExceededException struct {
49264	_            struct{}                  `type:"structure"`
49265	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49266
49267	// The message for the exception.
49268	Message_ *string `locationName:"message" type:"string"`
49269}
49270
49271// String returns the string representation
49272func (s VersionsLimitExceededException) String() string {
49273	return awsutil.Prettify(s)
49274}
49275
49276// GoString returns the string representation
49277func (s VersionsLimitExceededException) GoString() string {
49278	return s.String()
49279}
49280
49281func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
49282	return &VersionsLimitExceededException{
49283		RespMetadata: v,
49284	}
49285}
49286
49287// Code returns the exception type name.
49288func (s *VersionsLimitExceededException) Code() string {
49289	return "VersionsLimitExceededException"
49290}
49291
49292// Message returns the exception's message.
49293func (s *VersionsLimitExceededException) Message() string {
49294	if s.Message_ != nil {
49295		return *s.Message_
49296	}
49297	return ""
49298}
49299
49300// OrigErr always returns nil, satisfies awserr.Error interface.
49301func (s *VersionsLimitExceededException) OrigErr() error {
49302	return nil
49303}
49304
49305func (s *VersionsLimitExceededException) Error() string {
49306	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49307}
49308
49309// Status code returns the HTTP status code for the request's response error.
49310func (s *VersionsLimitExceededException) StatusCode() int {
49311	return s.RespMetadata.StatusCode
49312}
49313
49314// RequestID returns the service's response RequestID for request.
49315func (s *VersionsLimitExceededException) RequestID() string {
49316	return s.RespMetadata.RequestID
49317}
49318
49319// Information about a Device Defender security profile behavior violation.
49320type ViolationEvent struct {
49321	_ struct{} `type:"structure"`
49322
49323	// The behavior which was violated.
49324	Behavior *Behavior `locationName:"behavior" type:"structure"`
49325
49326	// The value of the metric (the measurement).
49327	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
49328
49329	// The name of the security profile whose behavior was violated.
49330	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
49331
49332	// The name of the thing responsible for the violation event.
49333	ThingName *string `locationName:"thingName" min:"1" type:"string"`
49334
49335	// The time the violation event occurred.
49336	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
49337
49338	// The type of violation event.
49339	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
49340
49341	// The ID of the violation event.
49342	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
49343}
49344
49345// String returns the string representation
49346func (s ViolationEvent) String() string {
49347	return awsutil.Prettify(s)
49348}
49349
49350// GoString returns the string representation
49351func (s ViolationEvent) GoString() string {
49352	return s.String()
49353}
49354
49355// SetBehavior sets the Behavior field's value.
49356func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
49357	s.Behavior = v
49358	return s
49359}
49360
49361// SetMetricValue sets the MetricValue field's value.
49362func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
49363	s.MetricValue = v
49364	return s
49365}
49366
49367// SetSecurityProfileName sets the SecurityProfileName field's value.
49368func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
49369	s.SecurityProfileName = &v
49370	return s
49371}
49372
49373// SetThingName sets the ThingName field's value.
49374func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
49375	s.ThingName = &v
49376	return s
49377}
49378
49379// SetViolationEventTime sets the ViolationEventTime field's value.
49380func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
49381	s.ViolationEventTime = &v
49382	return s
49383}
49384
49385// SetViolationEventType sets the ViolationEventType field's value.
49386func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
49387	s.ViolationEventType = &v
49388	return s
49389}
49390
49391// SetViolationId sets the ViolationId field's value.
49392func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
49393	s.ViolationId = &v
49394	return s
49395}
49396
49397const (
49398	// AbortActionCancel is a AbortAction enum value
49399	AbortActionCancel = "CANCEL"
49400)
49401
49402const (
49403	// ActionTypePublish is a ActionType enum value
49404	ActionTypePublish = "PUBLISH"
49405
49406	// ActionTypeSubscribe is a ActionType enum value
49407	ActionTypeSubscribe = "SUBSCRIBE"
49408
49409	// ActionTypeReceive is a ActionType enum value
49410	ActionTypeReceive = "RECEIVE"
49411
49412	// ActionTypeConnect is a ActionType enum value
49413	ActionTypeConnect = "CONNECT"
49414)
49415
49416// The type of alert target: one of "SNS".
49417const (
49418	// AlertTargetTypeSns is a AlertTargetType enum value
49419	AlertTargetTypeSns = "SNS"
49420)
49421
49422const (
49423	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
49424	AuditCheckRunStatusInProgress = "IN_PROGRESS"
49425
49426	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
49427	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
49428
49429	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
49430	AuditCheckRunStatusCanceled = "CANCELED"
49431
49432	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
49433	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
49434
49435	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
49436	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
49437
49438	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
49439	AuditCheckRunStatusFailed = "FAILED"
49440)
49441
49442const (
49443	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
49444	AuditFindingSeverityCritical = "CRITICAL"
49445
49446	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
49447	AuditFindingSeverityHigh = "HIGH"
49448
49449	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
49450	AuditFindingSeverityMedium = "MEDIUM"
49451
49452	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
49453	AuditFindingSeverityLow = "LOW"
49454)
49455
49456const (
49457	// AuditFrequencyDaily is a AuditFrequency enum value
49458	AuditFrequencyDaily = "DAILY"
49459
49460	// AuditFrequencyWeekly is a AuditFrequency enum value
49461	AuditFrequencyWeekly = "WEEKLY"
49462
49463	// AuditFrequencyBiweekly is a AuditFrequency enum value
49464	AuditFrequencyBiweekly = "BIWEEKLY"
49465
49466	// AuditFrequencyMonthly is a AuditFrequency enum value
49467	AuditFrequencyMonthly = "MONTHLY"
49468)
49469
49470const (
49471	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
49472	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
49473
49474	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
49475	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
49476
49477	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
49478	AuditMitigationActionsExecutionStatusFailed = "FAILED"
49479
49480	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
49481	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
49482
49483	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
49484	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
49485
49486	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
49487	AuditMitigationActionsExecutionStatusPending = "PENDING"
49488)
49489
49490const (
49491	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
49492	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
49493
49494	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
49495	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
49496
49497	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
49498	AuditMitigationActionsTaskStatusFailed = "FAILED"
49499
49500	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
49501	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
49502)
49503
49504const (
49505	// AuditNotificationTypeSns is a AuditNotificationType enum value
49506	AuditNotificationTypeSns = "SNS"
49507)
49508
49509const (
49510	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
49511	AuditTaskStatusInProgress = "IN_PROGRESS"
49512
49513	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
49514	AuditTaskStatusCompleted = "COMPLETED"
49515
49516	// AuditTaskStatusFailed is a AuditTaskStatus enum value
49517	AuditTaskStatusFailed = "FAILED"
49518
49519	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
49520	AuditTaskStatusCanceled = "CANCELED"
49521)
49522
49523const (
49524	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
49525	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
49526
49527	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
49528	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
49529)
49530
49531const (
49532	// AuthDecisionAllowed is a AuthDecision enum value
49533	AuthDecisionAllowed = "ALLOWED"
49534
49535	// AuthDecisionExplicitDeny is a AuthDecision enum value
49536	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
49537
49538	// AuthDecisionImplicitDeny is a AuthDecision enum value
49539	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
49540)
49541
49542const (
49543	// AuthorizerStatusActive is a AuthorizerStatus enum value
49544	AuthorizerStatusActive = "ACTIVE"
49545
49546	// AuthorizerStatusInactive is a AuthorizerStatus enum value
49547	AuthorizerStatusInactive = "INACTIVE"
49548)
49549
49550const (
49551	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
49552	AutoRegistrationStatusEnable = "ENABLE"
49553
49554	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
49555	AutoRegistrationStatusDisable = "DISABLE"
49556)
49557
49558const (
49559	// CACertificateStatusActive is a CACertificateStatus enum value
49560	CACertificateStatusActive = "ACTIVE"
49561
49562	// CACertificateStatusInactive is a CACertificateStatus enum value
49563	CACertificateStatusInactive = "INACTIVE"
49564)
49565
49566const (
49567	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
49568	CACertificateUpdateActionDeactivate = "DEACTIVATE"
49569)
49570
49571const (
49572	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
49573	CannedAccessControlListPrivate = "private"
49574
49575	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
49576	CannedAccessControlListPublicRead = "public-read"
49577
49578	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
49579	CannedAccessControlListPublicReadWrite = "public-read-write"
49580
49581	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
49582	CannedAccessControlListAwsExecRead = "aws-exec-read"
49583
49584	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
49585	CannedAccessControlListAuthenticatedRead = "authenticated-read"
49586
49587	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
49588	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
49589
49590	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
49591	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
49592
49593	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
49594	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
49595)
49596
49597const (
49598	// CertificateModeDefault is a CertificateMode enum value
49599	CertificateModeDefault = "DEFAULT"
49600
49601	// CertificateModeSniOnly is a CertificateMode enum value
49602	CertificateModeSniOnly = "SNI_ONLY"
49603)
49604
49605const (
49606	// CertificateStatusActive is a CertificateStatus enum value
49607	CertificateStatusActive = "ACTIVE"
49608
49609	// CertificateStatusInactive is a CertificateStatus enum value
49610	CertificateStatusInactive = "INACTIVE"
49611
49612	// CertificateStatusRevoked is a CertificateStatus enum value
49613	CertificateStatusRevoked = "REVOKED"
49614
49615	// CertificateStatusPendingTransfer is a CertificateStatus enum value
49616	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
49617
49618	// CertificateStatusRegisterInactive is a CertificateStatus enum value
49619	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
49620
49621	// CertificateStatusPendingActivation is a CertificateStatus enum value
49622	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
49623)
49624
49625const (
49626	// ComparisonOperatorLessThan is a ComparisonOperator enum value
49627	ComparisonOperatorLessThan = "less-than"
49628
49629	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
49630	ComparisonOperatorLessThanEquals = "less-than-equals"
49631
49632	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
49633	ComparisonOperatorGreaterThan = "greater-than"
49634
49635	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
49636	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
49637
49638	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
49639	ComparisonOperatorInCidrSet = "in-cidr-set"
49640
49641	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
49642	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
49643
49644	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
49645	ComparisonOperatorInPortSet = "in-port-set"
49646
49647	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
49648	ComparisonOperatorNotInPortSet = "not-in-port-set"
49649)
49650
49651const (
49652	// DayOfWeekSun is a DayOfWeek enum value
49653	DayOfWeekSun = "SUN"
49654
49655	// DayOfWeekMon is a DayOfWeek enum value
49656	DayOfWeekMon = "MON"
49657
49658	// DayOfWeekTue is a DayOfWeek enum value
49659	DayOfWeekTue = "TUE"
49660
49661	// DayOfWeekWed is a DayOfWeek enum value
49662	DayOfWeekWed = "WED"
49663
49664	// DayOfWeekThu is a DayOfWeek enum value
49665	DayOfWeekThu = "THU"
49666
49667	// DayOfWeekFri is a DayOfWeek enum value
49668	DayOfWeekFri = "FRI"
49669
49670	// DayOfWeekSat is a DayOfWeek enum value
49671	DayOfWeekSat = "SAT"
49672)
49673
49674const (
49675	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
49676	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
49677)
49678
49679const (
49680	// DimensionTypeTopicFilter is a DimensionType enum value
49681	DimensionTypeTopicFilter = "TOPIC_FILTER"
49682)
49683
49684const (
49685	// DimensionValueOperatorIn is a DimensionValueOperator enum value
49686	DimensionValueOperatorIn = "IN"
49687
49688	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
49689	DimensionValueOperatorNotIn = "NOT_IN"
49690)
49691
49692const (
49693	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
49694	DomainConfigurationStatusEnabled = "ENABLED"
49695
49696	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
49697	DomainConfigurationStatusDisabled = "DISABLED"
49698)
49699
49700const (
49701	// DomainTypeEndpoint is a DomainType enum value
49702	DomainTypeEndpoint = "ENDPOINT"
49703
49704	// DomainTypeAwsManaged is a DomainType enum value
49705	DomainTypeAwsManaged = "AWS_MANAGED"
49706
49707	// DomainTypeCustomerManaged is a DomainType enum value
49708	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
49709)
49710
49711const (
49712	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
49713	DynamicGroupStatusActive = "ACTIVE"
49714
49715	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
49716	DynamicGroupStatusBuilding = "BUILDING"
49717
49718	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
49719	DynamicGroupStatusRebuilding = "REBUILDING"
49720)
49721
49722const (
49723	// DynamoKeyTypeString is a DynamoKeyType enum value
49724	DynamoKeyTypeString = "STRING"
49725
49726	// DynamoKeyTypeNumber is a DynamoKeyType enum value
49727	DynamoKeyTypeNumber = "NUMBER"
49728)
49729
49730const (
49731	// EventTypeThing is a EventType enum value
49732	EventTypeThing = "THING"
49733
49734	// EventTypeThingGroup is a EventType enum value
49735	EventTypeThingGroup = "THING_GROUP"
49736
49737	// EventTypeThingType is a EventType enum value
49738	EventTypeThingType = "THING_TYPE"
49739
49740	// EventTypeThingGroupMembership is a EventType enum value
49741	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
49742
49743	// EventTypeThingGroupHierarchy is a EventType enum value
49744	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
49745
49746	// EventTypeThingTypeAssociation is a EventType enum value
49747	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
49748
49749	// EventTypeJob is a EventType enum value
49750	EventTypeJob = "JOB"
49751
49752	// EventTypeJobExecution is a EventType enum value
49753	EventTypeJobExecution = "JOB_EXECUTION"
49754
49755	// EventTypePolicy is a EventType enum value
49756	EventTypePolicy = "POLICY"
49757
49758	// EventTypeCertificate is a EventType enum value
49759	EventTypeCertificate = "CERTIFICATE"
49760
49761	// EventTypeCaCertificate is a EventType enum value
49762	EventTypeCaCertificate = "CA_CERTIFICATE"
49763)
49764
49765const (
49766	// FieldTypeNumber is a FieldType enum value
49767	FieldTypeNumber = "Number"
49768
49769	// FieldTypeString is a FieldType enum value
49770	FieldTypeString = "String"
49771
49772	// FieldTypeBoolean is a FieldType enum value
49773	FieldTypeBoolean = "Boolean"
49774)
49775
49776const (
49777	// IndexStatusActive is a IndexStatus enum value
49778	IndexStatusActive = "ACTIVE"
49779
49780	// IndexStatusBuilding is a IndexStatus enum value
49781	IndexStatusBuilding = "BUILDING"
49782
49783	// IndexStatusRebuilding is a IndexStatus enum value
49784	IndexStatusRebuilding = "REBUILDING"
49785)
49786
49787const (
49788	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
49789	JobExecutionFailureTypeFailed = "FAILED"
49790
49791	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
49792	JobExecutionFailureTypeRejected = "REJECTED"
49793
49794	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
49795	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
49796
49797	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
49798	JobExecutionFailureTypeAll = "ALL"
49799)
49800
49801const (
49802	// JobExecutionStatusQueued is a JobExecutionStatus enum value
49803	JobExecutionStatusQueued = "QUEUED"
49804
49805	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
49806	JobExecutionStatusInProgress = "IN_PROGRESS"
49807
49808	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
49809	JobExecutionStatusSucceeded = "SUCCEEDED"
49810
49811	// JobExecutionStatusFailed is a JobExecutionStatus enum value
49812	JobExecutionStatusFailed = "FAILED"
49813
49814	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
49815	JobExecutionStatusTimedOut = "TIMED_OUT"
49816
49817	// JobExecutionStatusRejected is a JobExecutionStatus enum value
49818	JobExecutionStatusRejected = "REJECTED"
49819
49820	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
49821	JobExecutionStatusRemoved = "REMOVED"
49822
49823	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
49824	JobExecutionStatusCanceled = "CANCELED"
49825)
49826
49827const (
49828	// JobStatusInProgress is a JobStatus enum value
49829	JobStatusInProgress = "IN_PROGRESS"
49830
49831	// JobStatusCanceled is a JobStatus enum value
49832	JobStatusCanceled = "CANCELED"
49833
49834	// JobStatusCompleted is a JobStatus enum value
49835	JobStatusCompleted = "COMPLETED"
49836
49837	// JobStatusDeletionInProgress is a JobStatus enum value
49838	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
49839)
49840
49841const (
49842	// LogLevelDebug is a LogLevel enum value
49843	LogLevelDebug = "DEBUG"
49844
49845	// LogLevelInfo is a LogLevel enum value
49846	LogLevelInfo = "INFO"
49847
49848	// LogLevelError is a LogLevel enum value
49849	LogLevelError = "ERROR"
49850
49851	// LogLevelWarn is a LogLevel enum value
49852	LogLevelWarn = "WARN"
49853
49854	// LogLevelDisabled is a LogLevel enum value
49855	LogLevelDisabled = "DISABLED"
49856)
49857
49858const (
49859	// LogTargetTypeDefault is a LogTargetType enum value
49860	LogTargetTypeDefault = "DEFAULT"
49861
49862	// LogTargetTypeThingGroup is a LogTargetType enum value
49863	LogTargetTypeThingGroup = "THING_GROUP"
49864)
49865
49866const (
49867	// MessageFormatRaw is a MessageFormat enum value
49868	MessageFormatRaw = "RAW"
49869
49870	// MessageFormatJson is a MessageFormat enum value
49871	MessageFormatJson = "JSON"
49872)
49873
49874const (
49875	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
49876	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
49877
49878	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
49879	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
49880
49881	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
49882	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
49883
49884	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
49885	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
49886
49887	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
49888	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
49889
49890	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
49891	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
49892)
49893
49894const (
49895	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
49896	OTAUpdateStatusCreatePending = "CREATE_PENDING"
49897
49898	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
49899	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
49900
49901	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
49902	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
49903
49904	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
49905	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
49906)
49907
49908const (
49909	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
49910	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
49911)
49912
49913const (
49914	// ProtocolMqtt is a Protocol enum value
49915	ProtocolMqtt = "MQTT"
49916
49917	// ProtocolHttp is a Protocol enum value
49918	ProtocolHttp = "HTTP"
49919)
49920
49921const (
49922	// ReportTypeErrors is a ReportType enum value
49923	ReportTypeErrors = "ERRORS"
49924
49925	// ReportTypeResults is a ReportType enum value
49926	ReportTypeResults = "RESULTS"
49927)
49928
49929const (
49930	// ResourceTypeDeviceCertificate is a ResourceType enum value
49931	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
49932
49933	// ResourceTypeCaCertificate is a ResourceType enum value
49934	ResourceTypeCaCertificate = "CA_CERTIFICATE"
49935
49936	// ResourceTypeIotPolicy is a ResourceType enum value
49937	ResourceTypeIotPolicy = "IOT_POLICY"
49938
49939	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
49940	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
49941
49942	// ResourceTypeClientId is a ResourceType enum value
49943	ResourceTypeClientId = "CLIENT_ID"
49944
49945	// ResourceTypeAccountSettings is a ResourceType enum value
49946	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
49947
49948	// ResourceTypeRoleAlias is a ResourceType enum value
49949	ResourceTypeRoleAlias = "ROLE_ALIAS"
49950
49951	// ResourceTypeIamRole is a ResourceType enum value
49952	ResourceTypeIamRole = "IAM_ROLE"
49953)
49954
49955const (
49956	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
49957	ServerCertificateStatusInvalid = "INVALID"
49958
49959	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
49960	ServerCertificateStatusValid = "VALID"
49961)
49962
49963const (
49964	// ServiceTypeData is a ServiceType enum value
49965	ServiceTypeData = "DATA"
49966
49967	// ServiceTypeCredentialProvider is a ServiceType enum value
49968	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
49969
49970	// ServiceTypeJobs is a ServiceType enum value
49971	ServiceTypeJobs = "JOBS"
49972)
49973
49974const (
49975	// StatusInProgress is a Status enum value
49976	StatusInProgress = "InProgress"
49977
49978	// StatusCompleted is a Status enum value
49979	StatusCompleted = "Completed"
49980
49981	// StatusFailed is a Status enum value
49982	StatusFailed = "Failed"
49983
49984	// StatusCancelled is a Status enum value
49985	StatusCancelled = "Cancelled"
49986
49987	// StatusCancelling is a Status enum value
49988	StatusCancelling = "Cancelling"
49989)
49990
49991const (
49992	// TargetSelectionContinuous is a TargetSelection enum value
49993	TargetSelectionContinuous = "CONTINUOUS"
49994
49995	// TargetSelectionSnapshot is a TargetSelection enum value
49996	TargetSelectionSnapshot = "SNAPSHOT"
49997)
49998
49999const (
50000	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
50001	ThingConnectivityIndexingModeOff = "OFF"
50002
50003	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
50004	ThingConnectivityIndexingModeStatus = "STATUS"
50005)
50006
50007const (
50008	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
50009	ThingGroupIndexingModeOff = "OFF"
50010
50011	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
50012	ThingGroupIndexingModeOn = "ON"
50013)
50014
50015const (
50016	// ThingIndexingModeOff is a ThingIndexingMode enum value
50017	ThingIndexingModeOff = "OFF"
50018
50019	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
50020	ThingIndexingModeRegistry = "REGISTRY"
50021
50022	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
50023	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
50024)
50025
50026const (
50027	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
50028	TopicRuleDestinationStatusEnabled = "ENABLED"
50029
50030	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
50031	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
50032
50033	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
50034	TopicRuleDestinationStatusDisabled = "DISABLED"
50035
50036	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
50037	TopicRuleDestinationStatusError = "ERROR"
50038)
50039
50040const (
50041	// ViolationEventTypeInAlarm is a ViolationEventType enum value
50042	ViolationEventTypeInAlarm = "in-alarm"
50043
50044	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
50045	ViolationEventTypeAlarmCleared = "alarm-cleared"
50046
50047	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
50048	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
50049)
50050