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 isn't in progress, an "InvalidRequestException" occurs.
907//
908// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
909// with awserr.Error's Code and Message methods to get detailed information about
910// the error.
911//
912// See the AWS API reference guide for AWS IoT's
913// API operation CancelAuditTask for usage and error information.
914//
915// Returned Error Types:
916//   * ResourceNotFoundException
917//   The specified resource does not exist.
918//
919//   * InvalidRequestException
920//   The request is not valid.
921//
922//   * ThrottlingException
923//   The rate exceeds the limit.
924//
925//   * InternalFailureException
926//   An unexpected error has occurred.
927//
928func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
929	req, out := c.CancelAuditTaskRequest(input)
930	return out, req.Send()
931}
932
933// CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
934// the ability to pass a context and additional request options.
935//
936// See CancelAuditTask for details on how to use this API operation.
937//
938// The context must be non-nil and will be used for request cancellation. If
939// the context is nil a panic will occur. In the future the SDK may create
940// sub-contexts for http.Requests. See https://golang.org/pkg/context/
941// for more information on using Contexts.
942func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
943	req, out := c.CancelAuditTaskRequest(input)
944	req.SetContext(ctx)
945	req.ApplyOptions(opts...)
946	return out, req.Send()
947}
948
949const opCancelCertificateTransfer = "CancelCertificateTransfer"
950
951// CancelCertificateTransferRequest generates a "aws/request.Request" representing the
952// client's request for the CancelCertificateTransfer operation. The "output" return
953// value will be populated with the request's response once the request completes
954// successfully.
955//
956// Use "Send" method on the returned Request to send the API call to the service.
957// the "output" return value is not valid until after Send returns without error.
958//
959// See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
960// API call, and error handling.
961//
962// This method is useful when you want to inject custom logic or configuration
963// into the SDK's request lifecycle. Such as custom headers, or retry logic.
964//
965//
966//    // Example sending a request using the CancelCertificateTransferRequest method.
967//    req, resp := client.CancelCertificateTransferRequest(params)
968//
969//    err := req.Send()
970//    if err == nil { // resp is now filled
971//        fmt.Println(resp)
972//    }
973func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
974	op := &request.Operation{
975		Name:       opCancelCertificateTransfer,
976		HTTPMethod: "PATCH",
977		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
978	}
979
980	if input == nil {
981		input = &CancelCertificateTransferInput{}
982	}
983
984	output = &CancelCertificateTransferOutput{}
985	req = c.newRequest(op, input, output)
986	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
987	return
988}
989
990// CancelCertificateTransfer API operation for AWS IoT.
991//
992// Cancels a pending transfer for the specified certificate.
993//
994// Note Only the transfer source account can use this operation to cancel a
995// transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
996// After transfer, AWS IoT returns the certificate to the source account in
997// the INACTIVE state. After the destination account has accepted the transfer,
998// the transfer cannot be cancelled.
999//
1000// After a certificate transfer is cancelled, the status of the certificate
1001// changes from PENDING_TRANSFER to INACTIVE.
1002//
1003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1004// with awserr.Error's Code and Message methods to get detailed information about
1005// the error.
1006//
1007// See the AWS API reference guide for AWS IoT's
1008// API operation CancelCertificateTransfer for usage and error information.
1009//
1010// Returned Error Types:
1011//   * ResourceNotFoundException
1012//   The specified resource does not exist.
1013//
1014//   * TransferAlreadyCompletedException
1015//   You can't revert the certificate transfer because the transfer is already
1016//   complete.
1017//
1018//   * InvalidRequestException
1019//   The request is not valid.
1020//
1021//   * ThrottlingException
1022//   The rate exceeds the limit.
1023//
1024//   * UnauthorizedException
1025//   You are not authorized to perform this operation.
1026//
1027//   * ServiceUnavailableException
1028//   The service is temporarily unavailable.
1029//
1030//   * InternalFailureException
1031//   An unexpected error has occurred.
1032//
1033func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
1034	req, out := c.CancelCertificateTransferRequest(input)
1035	return out, req.Send()
1036}
1037
1038// CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
1039// the ability to pass a context and additional request options.
1040//
1041// See CancelCertificateTransfer for details on how to use this API operation.
1042//
1043// The context must be non-nil and will be used for request cancellation. If
1044// the context is nil a panic will occur. In the future the SDK may create
1045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1046// for more information on using Contexts.
1047func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
1048	req, out := c.CancelCertificateTransferRequest(input)
1049	req.SetContext(ctx)
1050	req.ApplyOptions(opts...)
1051	return out, req.Send()
1052}
1053
1054const opCancelDetectMitigationActionsTask = "CancelDetectMitigationActionsTask"
1055
1056// CancelDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
1057// client's request for the CancelDetectMitigationActionsTask operation. The "output" return
1058// value will be populated with the request's response once the request completes
1059// successfully.
1060//
1061// Use "Send" method on the returned Request to send the API call to the service.
1062// the "output" return value is not valid until after Send returns without error.
1063//
1064// See CancelDetectMitigationActionsTask for more information on using the CancelDetectMitigationActionsTask
1065// API call, and error handling.
1066//
1067// This method is useful when you want to inject custom logic or configuration
1068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1069//
1070//
1071//    // Example sending a request using the CancelDetectMitigationActionsTaskRequest method.
1072//    req, resp := client.CancelDetectMitigationActionsTaskRequest(params)
1073//
1074//    err := req.Send()
1075//    if err == nil { // resp is now filled
1076//        fmt.Println(resp)
1077//    }
1078func (c *IoT) CancelDetectMitigationActionsTaskRequest(input *CancelDetectMitigationActionsTaskInput) (req *request.Request, output *CancelDetectMitigationActionsTaskOutput) {
1079	op := &request.Operation{
1080		Name:       opCancelDetectMitigationActionsTask,
1081		HTTPMethod: "PUT",
1082		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}/cancel",
1083	}
1084
1085	if input == nil {
1086		input = &CancelDetectMitigationActionsTaskInput{}
1087	}
1088
1089	output = &CancelDetectMitigationActionsTaskOutput{}
1090	req = c.newRequest(op, input, output)
1091	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1092	return
1093}
1094
1095// CancelDetectMitigationActionsTask API operation for AWS IoT.
1096//
1097// Cancels a Device Defender ML Detect mitigation action.
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 CancelDetectMitigationActionsTask for usage and error information.
1105//
1106// Returned Error Types:
1107//   * ResourceNotFoundException
1108//   The specified resource does not exist.
1109//
1110//   * InvalidRequestException
1111//   The request is not valid.
1112//
1113//   * ThrottlingException
1114//   The rate exceeds the limit.
1115//
1116//   * InternalFailureException
1117//   An unexpected error has occurred.
1118//
1119func (c *IoT) CancelDetectMitigationActionsTask(input *CancelDetectMitigationActionsTaskInput) (*CancelDetectMitigationActionsTaskOutput, error) {
1120	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1121	return out, req.Send()
1122}
1123
1124// CancelDetectMitigationActionsTaskWithContext is the same as CancelDetectMitigationActionsTask with the addition of
1125// the ability to pass a context and additional request options.
1126//
1127// See CancelDetectMitigationActionsTask 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) CancelDetectMitigationActionsTaskWithContext(ctx aws.Context, input *CancelDetectMitigationActionsTaskInput, opts ...request.Option) (*CancelDetectMitigationActionsTaskOutput, error) {
1134	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1135	req.SetContext(ctx)
1136	req.ApplyOptions(opts...)
1137	return out, req.Send()
1138}
1139
1140const opCancelJob = "CancelJob"
1141
1142// CancelJobRequest generates a "aws/request.Request" representing the
1143// client's request for the CancelJob 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 CancelJob for more information on using the CancelJob
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 CancelJobRequest method.
1158//    req, resp := client.CancelJobRequest(params)
1159//
1160//    err := req.Send()
1161//    if err == nil { // resp is now filled
1162//        fmt.Println(resp)
1163//    }
1164func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
1165	op := &request.Operation{
1166		Name:       opCancelJob,
1167		HTTPMethod: "PUT",
1168		HTTPPath:   "/jobs/{jobId}/cancel",
1169	}
1170
1171	if input == nil {
1172		input = &CancelJobInput{}
1173	}
1174
1175	output = &CancelJobOutput{}
1176	req = c.newRequest(op, input, output)
1177	return
1178}
1179
1180// CancelJob API operation for AWS IoT.
1181//
1182// Cancels a job.
1183//
1184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1185// with awserr.Error's Code and Message methods to get detailed information about
1186// the error.
1187//
1188// See the AWS API reference guide for AWS IoT's
1189// API operation CancelJob for usage and error information.
1190//
1191// Returned Error Types:
1192//   * InvalidRequestException
1193//   The request is not valid.
1194//
1195//   * ResourceNotFoundException
1196//   The specified resource does not exist.
1197//
1198//   * ThrottlingException
1199//   The rate exceeds the limit.
1200//
1201//   * ServiceUnavailableException
1202//   The service is temporarily unavailable.
1203//
1204func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
1205	req, out := c.CancelJobRequest(input)
1206	return out, req.Send()
1207}
1208
1209// CancelJobWithContext is the same as CancelJob with the addition of
1210// the ability to pass a context and additional request options.
1211//
1212// See CancelJob for details on how to use this API operation.
1213//
1214// The context must be non-nil and will be used for request cancellation. If
1215// the context is nil a panic will occur. In the future the SDK may create
1216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1217// for more information on using Contexts.
1218func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
1219	req, out := c.CancelJobRequest(input)
1220	req.SetContext(ctx)
1221	req.ApplyOptions(opts...)
1222	return out, req.Send()
1223}
1224
1225const opCancelJobExecution = "CancelJobExecution"
1226
1227// CancelJobExecutionRequest generates a "aws/request.Request" representing the
1228// client's request for the CancelJobExecution operation. The "output" return
1229// value will be populated with the request's response once the request completes
1230// successfully.
1231//
1232// Use "Send" method on the returned Request to send the API call to the service.
1233// the "output" return value is not valid until after Send returns without error.
1234//
1235// See CancelJobExecution for more information on using the CancelJobExecution
1236// API call, and error handling.
1237//
1238// This method is useful when you want to inject custom logic or configuration
1239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1240//
1241//
1242//    // Example sending a request using the CancelJobExecutionRequest method.
1243//    req, resp := client.CancelJobExecutionRequest(params)
1244//
1245//    err := req.Send()
1246//    if err == nil { // resp is now filled
1247//        fmt.Println(resp)
1248//    }
1249func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
1250	op := &request.Operation{
1251		Name:       opCancelJobExecution,
1252		HTTPMethod: "PUT",
1253		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
1254	}
1255
1256	if input == nil {
1257		input = &CancelJobExecutionInput{}
1258	}
1259
1260	output = &CancelJobExecutionOutput{}
1261	req = c.newRequest(op, input, output)
1262	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1263	return
1264}
1265
1266// CancelJobExecution API operation for AWS IoT.
1267//
1268// Cancels the execution of a job for a given thing.
1269//
1270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1271// with awserr.Error's Code and Message methods to get detailed information about
1272// the error.
1273//
1274// See the AWS API reference guide for AWS IoT's
1275// API operation CancelJobExecution for usage and error information.
1276//
1277// Returned Error Types:
1278//   * InvalidRequestException
1279//   The request is not valid.
1280//
1281//   * InvalidStateTransitionException
1282//   An attempt was made to change to an invalid state, for example by deleting
1283//   a job or a job execution which is "IN_PROGRESS" without setting the force
1284//   parameter.
1285//
1286//   * ResourceNotFoundException
1287//   The specified resource does not exist.
1288//
1289//   * ThrottlingException
1290//   The rate exceeds the limit.
1291//
1292//   * ServiceUnavailableException
1293//   The service is temporarily unavailable.
1294//
1295//   * VersionConflictException
1296//   An exception thrown when the version of an entity specified with the expectedVersion
1297//   parameter does not match the latest version in the system.
1298//
1299func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
1300	req, out := c.CancelJobExecutionRequest(input)
1301	return out, req.Send()
1302}
1303
1304// CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
1305// the ability to pass a context and additional request options.
1306//
1307// See CancelJobExecution for details on how to use this API operation.
1308//
1309// The context must be non-nil and will be used for request cancellation. If
1310// the context is nil a panic will occur. In the future the SDK may create
1311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1312// for more information on using Contexts.
1313func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
1314	req, out := c.CancelJobExecutionRequest(input)
1315	req.SetContext(ctx)
1316	req.ApplyOptions(opts...)
1317	return out, req.Send()
1318}
1319
1320const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
1321
1322// ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
1323// client's request for the ClearDefaultAuthorizer operation. The "output" return
1324// value will be populated with the request's response once the request completes
1325// successfully.
1326//
1327// Use "Send" method on the returned Request to send the API call to the service.
1328// the "output" return value is not valid until after Send returns without error.
1329//
1330// See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
1331// API call, and error handling.
1332//
1333// This method is useful when you want to inject custom logic or configuration
1334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1335//
1336//
1337//    // Example sending a request using the ClearDefaultAuthorizerRequest method.
1338//    req, resp := client.ClearDefaultAuthorizerRequest(params)
1339//
1340//    err := req.Send()
1341//    if err == nil { // resp is now filled
1342//        fmt.Println(resp)
1343//    }
1344func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
1345	op := &request.Operation{
1346		Name:       opClearDefaultAuthorizer,
1347		HTTPMethod: "DELETE",
1348		HTTPPath:   "/default-authorizer",
1349	}
1350
1351	if input == nil {
1352		input = &ClearDefaultAuthorizerInput{}
1353	}
1354
1355	output = &ClearDefaultAuthorizerOutput{}
1356	req = c.newRequest(op, input, output)
1357	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1358	return
1359}
1360
1361// ClearDefaultAuthorizer API operation for AWS IoT.
1362//
1363// Clears the default authorizer.
1364//
1365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1366// with awserr.Error's Code and Message methods to get detailed information about
1367// the error.
1368//
1369// See the AWS API reference guide for AWS IoT's
1370// API operation ClearDefaultAuthorizer for usage and error information.
1371//
1372// Returned Error Types:
1373//   * ResourceNotFoundException
1374//   The specified resource does not exist.
1375//
1376//   * InvalidRequestException
1377//   The request is not valid.
1378//
1379//   * ThrottlingException
1380//   The rate exceeds the limit.
1381//
1382//   * UnauthorizedException
1383//   You are not authorized to perform this operation.
1384//
1385//   * ServiceUnavailableException
1386//   The service is temporarily unavailable.
1387//
1388//   * InternalFailureException
1389//   An unexpected error has occurred.
1390//
1391func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
1392	req, out := c.ClearDefaultAuthorizerRequest(input)
1393	return out, req.Send()
1394}
1395
1396// ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
1397// the ability to pass a context and additional request options.
1398//
1399// See ClearDefaultAuthorizer for details on how to use this API operation.
1400//
1401// The context must be non-nil and will be used for request cancellation. If
1402// the context is nil a panic will occur. In the future the SDK may create
1403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1404// for more information on using Contexts.
1405func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
1406	req, out := c.ClearDefaultAuthorizerRequest(input)
1407	req.SetContext(ctx)
1408	req.ApplyOptions(opts...)
1409	return out, req.Send()
1410}
1411
1412const opConfirmTopicRuleDestination = "ConfirmTopicRuleDestination"
1413
1414// ConfirmTopicRuleDestinationRequest generates a "aws/request.Request" representing the
1415// client's request for the ConfirmTopicRuleDestination operation. The "output" return
1416// value will be populated with the request's response once the request completes
1417// successfully.
1418//
1419// Use "Send" method on the returned Request to send the API call to the service.
1420// the "output" return value is not valid until after Send returns without error.
1421//
1422// See ConfirmTopicRuleDestination for more information on using the ConfirmTopicRuleDestination
1423// API call, and error handling.
1424//
1425// This method is useful when you want to inject custom logic or configuration
1426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1427//
1428//
1429//    // Example sending a request using the ConfirmTopicRuleDestinationRequest method.
1430//    req, resp := client.ConfirmTopicRuleDestinationRequest(params)
1431//
1432//    err := req.Send()
1433//    if err == nil { // resp is now filled
1434//        fmt.Println(resp)
1435//    }
1436func (c *IoT) ConfirmTopicRuleDestinationRequest(input *ConfirmTopicRuleDestinationInput) (req *request.Request, output *ConfirmTopicRuleDestinationOutput) {
1437	op := &request.Operation{
1438		Name:       opConfirmTopicRuleDestination,
1439		HTTPMethod: "GET",
1440		HTTPPath:   "/confirmdestination/{confirmationToken+}",
1441	}
1442
1443	if input == nil {
1444		input = &ConfirmTopicRuleDestinationInput{}
1445	}
1446
1447	output = &ConfirmTopicRuleDestinationOutput{}
1448	req = c.newRequest(op, input, output)
1449	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1450	return
1451}
1452
1453// ConfirmTopicRuleDestination API operation for AWS IoT.
1454//
1455// Confirms a topic rule destination. When you create a rule requiring a destination,
1456// AWS IoT sends a confirmation message to the endpoint or base address you
1457// specify. The message includes a token which you pass back when calling ConfirmTopicRuleDestination
1458// to confirm that you own or have access to the endpoint.
1459//
1460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1461// with awserr.Error's Code and Message methods to get detailed information about
1462// the error.
1463//
1464// See the AWS API reference guide for AWS IoT's
1465// API operation ConfirmTopicRuleDestination for usage and error information.
1466//
1467// Returned Error Types:
1468//   * InternalException
1469//   An unexpected error has occurred.
1470//
1471//   * InvalidRequestException
1472//   The request is not valid.
1473//
1474//   * ServiceUnavailableException
1475//   The service is temporarily unavailable.
1476//
1477//   * UnauthorizedException
1478//   You are not authorized to perform this operation.
1479//
1480//   * ConflictingResourceUpdateException
1481//   A conflicting resource update exception. This exception is thrown when two
1482//   pending updates cause a conflict.
1483//
1484func (c *IoT) ConfirmTopicRuleDestination(input *ConfirmTopicRuleDestinationInput) (*ConfirmTopicRuleDestinationOutput, error) {
1485	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1486	return out, req.Send()
1487}
1488
1489// ConfirmTopicRuleDestinationWithContext is the same as ConfirmTopicRuleDestination with the addition of
1490// the ability to pass a context and additional request options.
1491//
1492// See ConfirmTopicRuleDestination for details on how to use this API operation.
1493//
1494// The context must be non-nil and will be used for request cancellation. If
1495// the context is nil a panic will occur. In the future the SDK may create
1496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1497// for more information on using Contexts.
1498func (c *IoT) ConfirmTopicRuleDestinationWithContext(ctx aws.Context, input *ConfirmTopicRuleDestinationInput, opts ...request.Option) (*ConfirmTopicRuleDestinationOutput, error) {
1499	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1500	req.SetContext(ctx)
1501	req.ApplyOptions(opts...)
1502	return out, req.Send()
1503}
1504
1505const opCreateAuditSuppression = "CreateAuditSuppression"
1506
1507// CreateAuditSuppressionRequest generates a "aws/request.Request" representing the
1508// client's request for the CreateAuditSuppression operation. The "output" return
1509// value will be populated with the request's response once the request completes
1510// successfully.
1511//
1512// Use "Send" method on the returned Request to send the API call to the service.
1513// the "output" return value is not valid until after Send returns without error.
1514//
1515// See CreateAuditSuppression for more information on using the CreateAuditSuppression
1516// API call, and error handling.
1517//
1518// This method is useful when you want to inject custom logic or configuration
1519// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1520//
1521//
1522//    // Example sending a request using the CreateAuditSuppressionRequest method.
1523//    req, resp := client.CreateAuditSuppressionRequest(params)
1524//
1525//    err := req.Send()
1526//    if err == nil { // resp is now filled
1527//        fmt.Println(resp)
1528//    }
1529func (c *IoT) CreateAuditSuppressionRequest(input *CreateAuditSuppressionInput) (req *request.Request, output *CreateAuditSuppressionOutput) {
1530	op := &request.Operation{
1531		Name:       opCreateAuditSuppression,
1532		HTTPMethod: "POST",
1533		HTTPPath:   "/audit/suppressions/create",
1534	}
1535
1536	if input == nil {
1537		input = &CreateAuditSuppressionInput{}
1538	}
1539
1540	output = &CreateAuditSuppressionOutput{}
1541	req = c.newRequest(op, input, output)
1542	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1543	return
1544}
1545
1546// CreateAuditSuppression API operation for AWS IoT.
1547//
1548// Creates a Device Defender audit suppression.
1549//
1550// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1551// with awserr.Error's Code and Message methods to get detailed information about
1552// the error.
1553//
1554// See the AWS API reference guide for AWS IoT's
1555// API operation CreateAuditSuppression for usage and error information.
1556//
1557// Returned Error Types:
1558//   * InvalidRequestException
1559//   The request is not valid.
1560//
1561//   * ResourceAlreadyExistsException
1562//   The resource already exists.
1563//
1564//   * ThrottlingException
1565//   The rate exceeds the limit.
1566//
1567//   * InternalFailureException
1568//   An unexpected error has occurred.
1569//
1570//   * LimitExceededException
1571//   A limit has been exceeded.
1572//
1573func (c *IoT) CreateAuditSuppression(input *CreateAuditSuppressionInput) (*CreateAuditSuppressionOutput, error) {
1574	req, out := c.CreateAuditSuppressionRequest(input)
1575	return out, req.Send()
1576}
1577
1578// CreateAuditSuppressionWithContext is the same as CreateAuditSuppression with the addition of
1579// the ability to pass a context and additional request options.
1580//
1581// See CreateAuditSuppression for details on how to use this API operation.
1582//
1583// The context must be non-nil and will be used for request cancellation. If
1584// the context is nil a panic will occur. In the future the SDK may create
1585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1586// for more information on using Contexts.
1587func (c *IoT) CreateAuditSuppressionWithContext(ctx aws.Context, input *CreateAuditSuppressionInput, opts ...request.Option) (*CreateAuditSuppressionOutput, error) {
1588	req, out := c.CreateAuditSuppressionRequest(input)
1589	req.SetContext(ctx)
1590	req.ApplyOptions(opts...)
1591	return out, req.Send()
1592}
1593
1594const opCreateAuthorizer = "CreateAuthorizer"
1595
1596// CreateAuthorizerRequest generates a "aws/request.Request" representing the
1597// client's request for the CreateAuthorizer operation. The "output" return
1598// value will be populated with the request's response once the request completes
1599// successfully.
1600//
1601// Use "Send" method on the returned Request to send the API call to the service.
1602// the "output" return value is not valid until after Send returns without error.
1603//
1604// See CreateAuthorizer for more information on using the CreateAuthorizer
1605// API call, and error handling.
1606//
1607// This method is useful when you want to inject custom logic or configuration
1608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1609//
1610//
1611//    // Example sending a request using the CreateAuthorizerRequest method.
1612//    req, resp := client.CreateAuthorizerRequest(params)
1613//
1614//    err := req.Send()
1615//    if err == nil { // resp is now filled
1616//        fmt.Println(resp)
1617//    }
1618func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
1619	op := &request.Operation{
1620		Name:       opCreateAuthorizer,
1621		HTTPMethod: "POST",
1622		HTTPPath:   "/authorizer/{authorizerName}",
1623	}
1624
1625	if input == nil {
1626		input = &CreateAuthorizerInput{}
1627	}
1628
1629	output = &CreateAuthorizerOutput{}
1630	req = c.newRequest(op, input, output)
1631	return
1632}
1633
1634// CreateAuthorizer API operation for AWS IoT.
1635//
1636// Creates an authorizer.
1637//
1638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1639// with awserr.Error's Code and Message methods to get detailed information about
1640// the error.
1641//
1642// See the AWS API reference guide for AWS IoT's
1643// API operation CreateAuthorizer for usage and error information.
1644//
1645// Returned Error Types:
1646//   * ResourceAlreadyExistsException
1647//   The resource already exists.
1648//
1649//   * InvalidRequestException
1650//   The request is not valid.
1651//
1652//   * LimitExceededException
1653//   A limit has been exceeded.
1654//
1655//   * ThrottlingException
1656//   The rate exceeds the limit.
1657//
1658//   * UnauthorizedException
1659//   You are not authorized to perform this operation.
1660//
1661//   * ServiceUnavailableException
1662//   The service is temporarily unavailable.
1663//
1664//   * InternalFailureException
1665//   An unexpected error has occurred.
1666//
1667func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
1668	req, out := c.CreateAuthorizerRequest(input)
1669	return out, req.Send()
1670}
1671
1672// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
1673// the ability to pass a context and additional request options.
1674//
1675// See CreateAuthorizer for details on how to use this API operation.
1676//
1677// The context must be non-nil and will be used for request cancellation. If
1678// the context is nil a panic will occur. In the future the SDK may create
1679// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1680// for more information on using Contexts.
1681func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
1682	req, out := c.CreateAuthorizerRequest(input)
1683	req.SetContext(ctx)
1684	req.ApplyOptions(opts...)
1685	return out, req.Send()
1686}
1687
1688const opCreateBillingGroup = "CreateBillingGroup"
1689
1690// CreateBillingGroupRequest generates a "aws/request.Request" representing the
1691// client's request for the CreateBillingGroup operation. The "output" return
1692// value will be populated with the request's response once the request completes
1693// successfully.
1694//
1695// Use "Send" method on the returned Request to send the API call to the service.
1696// the "output" return value is not valid until after Send returns without error.
1697//
1698// See CreateBillingGroup for more information on using the CreateBillingGroup
1699// API call, and error handling.
1700//
1701// This method is useful when you want to inject custom logic or configuration
1702// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1703//
1704//
1705//    // Example sending a request using the CreateBillingGroupRequest method.
1706//    req, resp := client.CreateBillingGroupRequest(params)
1707//
1708//    err := req.Send()
1709//    if err == nil { // resp is now filled
1710//        fmt.Println(resp)
1711//    }
1712func (c *IoT) CreateBillingGroupRequest(input *CreateBillingGroupInput) (req *request.Request, output *CreateBillingGroupOutput) {
1713	op := &request.Operation{
1714		Name:       opCreateBillingGroup,
1715		HTTPMethod: "POST",
1716		HTTPPath:   "/billing-groups/{billingGroupName}",
1717	}
1718
1719	if input == nil {
1720		input = &CreateBillingGroupInput{}
1721	}
1722
1723	output = &CreateBillingGroupOutput{}
1724	req = c.newRequest(op, input, output)
1725	return
1726}
1727
1728// CreateBillingGroup API operation for AWS IoT.
1729//
1730// Creates a billing group.
1731//
1732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1733// with awserr.Error's Code and Message methods to get detailed information about
1734// the error.
1735//
1736// See the AWS API reference guide for AWS IoT's
1737// API operation CreateBillingGroup for usage and error information.
1738//
1739// Returned Error Types:
1740//   * InvalidRequestException
1741//   The request is not valid.
1742//
1743//   * ResourceAlreadyExistsException
1744//   The resource already exists.
1745//
1746//   * ThrottlingException
1747//   The rate exceeds the limit.
1748//
1749//   * InternalFailureException
1750//   An unexpected error has occurred.
1751//
1752func (c *IoT) CreateBillingGroup(input *CreateBillingGroupInput) (*CreateBillingGroupOutput, error) {
1753	req, out := c.CreateBillingGroupRequest(input)
1754	return out, req.Send()
1755}
1756
1757// CreateBillingGroupWithContext is the same as CreateBillingGroup with the addition of
1758// the ability to pass a context and additional request options.
1759//
1760// See CreateBillingGroup for details on how to use this API operation.
1761//
1762// The context must be non-nil and will be used for request cancellation. If
1763// the context is nil a panic will occur. In the future the SDK may create
1764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1765// for more information on using Contexts.
1766func (c *IoT) CreateBillingGroupWithContext(ctx aws.Context, input *CreateBillingGroupInput, opts ...request.Option) (*CreateBillingGroupOutput, error) {
1767	req, out := c.CreateBillingGroupRequest(input)
1768	req.SetContext(ctx)
1769	req.ApplyOptions(opts...)
1770	return out, req.Send()
1771}
1772
1773const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
1774
1775// CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
1776// client's request for the CreateCertificateFromCsr operation. The "output" return
1777// value will be populated with the request's response once the request completes
1778// successfully.
1779//
1780// Use "Send" method on the returned Request to send the API call to the service.
1781// the "output" return value is not valid until after Send returns without error.
1782//
1783// See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
1784// API call, and error handling.
1785//
1786// This method is useful when you want to inject custom logic or configuration
1787// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1788//
1789//
1790//    // Example sending a request using the CreateCertificateFromCsrRequest method.
1791//    req, resp := client.CreateCertificateFromCsrRequest(params)
1792//
1793//    err := req.Send()
1794//    if err == nil { // resp is now filled
1795//        fmt.Println(resp)
1796//    }
1797func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
1798	op := &request.Operation{
1799		Name:       opCreateCertificateFromCsr,
1800		HTTPMethod: "POST",
1801		HTTPPath:   "/certificates",
1802	}
1803
1804	if input == nil {
1805		input = &CreateCertificateFromCsrInput{}
1806	}
1807
1808	output = &CreateCertificateFromCsrOutput{}
1809	req = c.newRequest(op, input, output)
1810	return
1811}
1812
1813// CreateCertificateFromCsr API operation for AWS IoT.
1814//
1815// Creates an X.509 certificate using the specified certificate signing request.
1816//
1817// Note: The CSR must include a public key that is either an RSA key with a
1818// length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
1819// curves.
1820//
1821// Note: Reusing the same certificate signing request (CSR) results in a distinct
1822// certificate.
1823//
1824// You can create multiple certificates in a batch by creating a directory,
1825// copying multiple .csr files into that directory, and then specifying that
1826// directory on the command line. The following commands show how to create
1827// a batch of certificates given a batch of CSRs.
1828//
1829// Assuming a set of CSRs are located inside of the directory my-csr-directory:
1830//
1831// On Linux and OS X, the command is:
1832//
1833// $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
1834// --certificate-signing-request file://my-csr-directory/{}
1835//
1836// This command lists all of the CSRs in my-csr-directory and pipes each CSR
1837// file name to the aws iot create-certificate-from-csr AWS CLI command to create
1838// a certificate for the corresponding CSR.
1839//
1840// The aws iot create-certificate-from-csr part of the command can also be run
1841// in parallel to speed up the certificate creation process:
1842//
1843// $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
1844// --certificate-signing-request file://my-csr-directory/{}
1845//
1846// On Windows PowerShell, the command to create certificates for all CSRs in
1847// my-csr-directory is:
1848//
1849// > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
1850// file://my-csr-directory/$_}
1851//
1852// On a Windows command prompt, the command to create certificates for all CSRs
1853// in my-csr-directory is:
1854//
1855// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
1856// --certificate-signing-request file://@path"
1857//
1858// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1859// with awserr.Error's Code and Message methods to get detailed information about
1860// the error.
1861//
1862// See the AWS API reference guide for AWS IoT's
1863// API operation CreateCertificateFromCsr for usage and error information.
1864//
1865// Returned Error Types:
1866//   * InvalidRequestException
1867//   The request is not valid.
1868//
1869//   * ThrottlingException
1870//   The rate exceeds the limit.
1871//
1872//   * UnauthorizedException
1873//   You are not authorized to perform this operation.
1874//
1875//   * ServiceUnavailableException
1876//   The service is temporarily unavailable.
1877//
1878//   * InternalFailureException
1879//   An unexpected error has occurred.
1880//
1881func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
1882	req, out := c.CreateCertificateFromCsrRequest(input)
1883	return out, req.Send()
1884}
1885
1886// CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
1887// the ability to pass a context and additional request options.
1888//
1889// See CreateCertificateFromCsr for details on how to use this API operation.
1890//
1891// The context must be non-nil and will be used for request cancellation. If
1892// the context is nil a panic will occur. In the future the SDK may create
1893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1894// for more information on using Contexts.
1895func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
1896	req, out := c.CreateCertificateFromCsrRequest(input)
1897	req.SetContext(ctx)
1898	req.ApplyOptions(opts...)
1899	return out, req.Send()
1900}
1901
1902const opCreateCustomMetric = "CreateCustomMetric"
1903
1904// CreateCustomMetricRequest generates a "aws/request.Request" representing the
1905// client's request for the CreateCustomMetric operation. The "output" return
1906// value will be populated with the request's response once the request completes
1907// successfully.
1908//
1909// Use "Send" method on the returned Request to send the API call to the service.
1910// the "output" return value is not valid until after Send returns without error.
1911//
1912// See CreateCustomMetric for more information on using the CreateCustomMetric
1913// API call, and error handling.
1914//
1915// This method is useful when you want to inject custom logic or configuration
1916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1917//
1918//
1919//    // Example sending a request using the CreateCustomMetricRequest method.
1920//    req, resp := client.CreateCustomMetricRequest(params)
1921//
1922//    err := req.Send()
1923//    if err == nil { // resp is now filled
1924//        fmt.Println(resp)
1925//    }
1926func (c *IoT) CreateCustomMetricRequest(input *CreateCustomMetricInput) (req *request.Request, output *CreateCustomMetricOutput) {
1927	op := &request.Operation{
1928		Name:       opCreateCustomMetric,
1929		HTTPMethod: "POST",
1930		HTTPPath:   "/custom-metric/{metricName}",
1931	}
1932
1933	if input == nil {
1934		input = &CreateCustomMetricInput{}
1935	}
1936
1937	output = &CreateCustomMetricOutput{}
1938	req = c.newRequest(op, input, output)
1939	return
1940}
1941
1942// CreateCustomMetric API operation for AWS IoT.
1943//
1944// Use this API to define a Custom Metric published by your devices to Device
1945// Defender.
1946//
1947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1948// with awserr.Error's Code and Message methods to get detailed information about
1949// the error.
1950//
1951// See the AWS API reference guide for AWS IoT's
1952// API operation CreateCustomMetric for usage and error information.
1953//
1954// Returned Error Types:
1955//   * InvalidRequestException
1956//   The request is not valid.
1957//
1958//   * LimitExceededException
1959//   A limit has been exceeded.
1960//
1961//   * ResourceAlreadyExistsException
1962//   The resource already exists.
1963//
1964//   * ThrottlingException
1965//   The rate exceeds the limit.
1966//
1967//   * InternalFailureException
1968//   An unexpected error has occurred.
1969//
1970func (c *IoT) CreateCustomMetric(input *CreateCustomMetricInput) (*CreateCustomMetricOutput, error) {
1971	req, out := c.CreateCustomMetricRequest(input)
1972	return out, req.Send()
1973}
1974
1975// CreateCustomMetricWithContext is the same as CreateCustomMetric with the addition of
1976// the ability to pass a context and additional request options.
1977//
1978// See CreateCustomMetric for details on how to use this API operation.
1979//
1980// The context must be non-nil and will be used for request cancellation. If
1981// the context is nil a panic will occur. In the future the SDK may create
1982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1983// for more information on using Contexts.
1984func (c *IoT) CreateCustomMetricWithContext(ctx aws.Context, input *CreateCustomMetricInput, opts ...request.Option) (*CreateCustomMetricOutput, error) {
1985	req, out := c.CreateCustomMetricRequest(input)
1986	req.SetContext(ctx)
1987	req.ApplyOptions(opts...)
1988	return out, req.Send()
1989}
1990
1991const opCreateDimension = "CreateDimension"
1992
1993// CreateDimensionRequest generates a "aws/request.Request" representing the
1994// client's request for the CreateDimension operation. The "output" return
1995// value will be populated with the request's response once the request completes
1996// successfully.
1997//
1998// Use "Send" method on the returned Request to send the API call to the service.
1999// the "output" return value is not valid until after Send returns without error.
2000//
2001// See CreateDimension for more information on using the CreateDimension
2002// API call, and error handling.
2003//
2004// This method is useful when you want to inject custom logic or configuration
2005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2006//
2007//
2008//    // Example sending a request using the CreateDimensionRequest method.
2009//    req, resp := client.CreateDimensionRequest(params)
2010//
2011//    err := req.Send()
2012//    if err == nil { // resp is now filled
2013//        fmt.Println(resp)
2014//    }
2015func (c *IoT) CreateDimensionRequest(input *CreateDimensionInput) (req *request.Request, output *CreateDimensionOutput) {
2016	op := &request.Operation{
2017		Name:       opCreateDimension,
2018		HTTPMethod: "POST",
2019		HTTPPath:   "/dimensions/{name}",
2020	}
2021
2022	if input == nil {
2023		input = &CreateDimensionInput{}
2024	}
2025
2026	output = &CreateDimensionOutput{}
2027	req = c.newRequest(op, input, output)
2028	return
2029}
2030
2031// CreateDimension API operation for AWS IoT.
2032//
2033// Create a dimension that you can use to limit the scope of a metric used in
2034// a security profile for AWS IoT Device Defender. For example, using a TOPIC_FILTER
2035// dimension, you can narrow down the scope of the metric only to MQTT topics
2036// whose name match the pattern specified in the dimension.
2037//
2038// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2039// with awserr.Error's Code and Message methods to get detailed information about
2040// the error.
2041//
2042// See the AWS API reference guide for AWS IoT's
2043// API operation CreateDimension for usage and error information.
2044//
2045// Returned Error Types:
2046//   * InternalFailureException
2047//   An unexpected error has occurred.
2048//
2049//   * InvalidRequestException
2050//   The request is not valid.
2051//
2052//   * LimitExceededException
2053//   A limit has been exceeded.
2054//
2055//   * ResourceAlreadyExistsException
2056//   The resource already exists.
2057//
2058//   * ThrottlingException
2059//   The rate exceeds the limit.
2060//
2061func (c *IoT) CreateDimension(input *CreateDimensionInput) (*CreateDimensionOutput, error) {
2062	req, out := c.CreateDimensionRequest(input)
2063	return out, req.Send()
2064}
2065
2066// CreateDimensionWithContext is the same as CreateDimension with the addition of
2067// the ability to pass a context and additional request options.
2068//
2069// See CreateDimension for details on how to use this API operation.
2070//
2071// The context must be non-nil and will be used for request cancellation. If
2072// the context is nil a panic will occur. In the future the SDK may create
2073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2074// for more information on using Contexts.
2075func (c *IoT) CreateDimensionWithContext(ctx aws.Context, input *CreateDimensionInput, opts ...request.Option) (*CreateDimensionOutput, error) {
2076	req, out := c.CreateDimensionRequest(input)
2077	req.SetContext(ctx)
2078	req.ApplyOptions(opts...)
2079	return out, req.Send()
2080}
2081
2082const opCreateDomainConfiguration = "CreateDomainConfiguration"
2083
2084// CreateDomainConfigurationRequest generates a "aws/request.Request" representing the
2085// client's request for the CreateDomainConfiguration operation. The "output" return
2086// value will be populated with the request's response once the request completes
2087// successfully.
2088//
2089// Use "Send" method on the returned Request to send the API call to the service.
2090// the "output" return value is not valid until after Send returns without error.
2091//
2092// See CreateDomainConfiguration for more information on using the CreateDomainConfiguration
2093// API call, and error handling.
2094//
2095// This method is useful when you want to inject custom logic or configuration
2096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2097//
2098//
2099//    // Example sending a request using the CreateDomainConfigurationRequest method.
2100//    req, resp := client.CreateDomainConfigurationRequest(params)
2101//
2102//    err := req.Send()
2103//    if err == nil { // resp is now filled
2104//        fmt.Println(resp)
2105//    }
2106func (c *IoT) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) (req *request.Request, output *CreateDomainConfigurationOutput) {
2107	op := &request.Operation{
2108		Name:       opCreateDomainConfiguration,
2109		HTTPMethod: "POST",
2110		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
2111	}
2112
2113	if input == nil {
2114		input = &CreateDomainConfigurationInput{}
2115	}
2116
2117	output = &CreateDomainConfigurationOutput{}
2118	req = c.newRequest(op, input, output)
2119	return
2120}
2121
2122// CreateDomainConfiguration API operation for AWS IoT.
2123//
2124// Creates a domain configuration.
2125//
2126// The domain configuration feature is in public preview and is subject to change.
2127//
2128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2129// with awserr.Error's Code and Message methods to get detailed information about
2130// the error.
2131//
2132// See the AWS API reference guide for AWS IoT's
2133// API operation CreateDomainConfiguration for usage and error information.
2134//
2135// Returned Error Types:
2136//   * LimitExceededException
2137//   A limit has been exceeded.
2138//
2139//   * CertificateValidationException
2140//   The certificate is invalid.
2141//
2142//   * ResourceAlreadyExistsException
2143//   The resource already exists.
2144//
2145//   * ServiceUnavailableException
2146//   The service is temporarily unavailable.
2147//
2148//   * InternalFailureException
2149//   An unexpected error has occurred.
2150//
2151//   * InvalidRequestException
2152//   The request is not valid.
2153//
2154//   * UnauthorizedException
2155//   You are not authorized to perform this operation.
2156//
2157//   * ThrottlingException
2158//   The rate exceeds the limit.
2159//
2160func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
2161	req, out := c.CreateDomainConfigurationRequest(input)
2162	return out, req.Send()
2163}
2164
2165// CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
2166// the ability to pass a context and additional request options.
2167//
2168// See CreateDomainConfiguration for details on how to use this API operation.
2169//
2170// The context must be non-nil and will be used for request cancellation. If
2171// the context is nil a panic will occur. In the future the SDK may create
2172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2173// for more information on using Contexts.
2174func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
2175	req, out := c.CreateDomainConfigurationRequest(input)
2176	req.SetContext(ctx)
2177	req.ApplyOptions(opts...)
2178	return out, req.Send()
2179}
2180
2181const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
2182
2183// CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
2184// client's request for the CreateDynamicThingGroup operation. The "output" return
2185// value will be populated with the request's response once the request completes
2186// successfully.
2187//
2188// Use "Send" method on the returned Request to send the API call to the service.
2189// the "output" return value is not valid until after Send returns without error.
2190//
2191// See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
2192// API call, and error handling.
2193//
2194// This method is useful when you want to inject custom logic or configuration
2195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2196//
2197//
2198//    // Example sending a request using the CreateDynamicThingGroupRequest method.
2199//    req, resp := client.CreateDynamicThingGroupRequest(params)
2200//
2201//    err := req.Send()
2202//    if err == nil { // resp is now filled
2203//        fmt.Println(resp)
2204//    }
2205func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
2206	op := &request.Operation{
2207		Name:       opCreateDynamicThingGroup,
2208		HTTPMethod: "POST",
2209		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
2210	}
2211
2212	if input == nil {
2213		input = &CreateDynamicThingGroupInput{}
2214	}
2215
2216	output = &CreateDynamicThingGroupOutput{}
2217	req = c.newRequest(op, input, output)
2218	return
2219}
2220
2221// CreateDynamicThingGroup API operation for AWS IoT.
2222//
2223// Creates a dynamic thing group.
2224//
2225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2226// with awserr.Error's Code and Message methods to get detailed information about
2227// the error.
2228//
2229// See the AWS API reference guide for AWS IoT's
2230// API operation CreateDynamicThingGroup for usage and error information.
2231//
2232// Returned Error Types:
2233//   * InvalidRequestException
2234//   The request is not valid.
2235//
2236//   * ResourceAlreadyExistsException
2237//   The resource already exists.
2238//
2239//   * ResourceNotFoundException
2240//   The specified resource does not exist.
2241//
2242//   * ThrottlingException
2243//   The rate exceeds the limit.
2244//
2245//   * InternalFailureException
2246//   An unexpected error has occurred.
2247//
2248//   * InvalidQueryException
2249//   The query is invalid.
2250//
2251//   * LimitExceededException
2252//   A limit has been exceeded.
2253//
2254func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
2255	req, out := c.CreateDynamicThingGroupRequest(input)
2256	return out, req.Send()
2257}
2258
2259// CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
2260// the ability to pass a context and additional request options.
2261//
2262// See CreateDynamicThingGroup for details on how to use this API operation.
2263//
2264// The context must be non-nil and will be used for request cancellation. If
2265// the context is nil a panic will occur. In the future the SDK may create
2266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2267// for more information on using Contexts.
2268func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
2269	req, out := c.CreateDynamicThingGroupRequest(input)
2270	req.SetContext(ctx)
2271	req.ApplyOptions(opts...)
2272	return out, req.Send()
2273}
2274
2275const opCreateJob = "CreateJob"
2276
2277// CreateJobRequest generates a "aws/request.Request" representing the
2278// client's request for the CreateJob operation. The "output" return
2279// value will be populated with the request's response once the request completes
2280// successfully.
2281//
2282// Use "Send" method on the returned Request to send the API call to the service.
2283// the "output" return value is not valid until after Send returns without error.
2284//
2285// See CreateJob for more information on using the CreateJob
2286// API call, and error handling.
2287//
2288// This method is useful when you want to inject custom logic or configuration
2289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2290//
2291//
2292//    // Example sending a request using the CreateJobRequest method.
2293//    req, resp := client.CreateJobRequest(params)
2294//
2295//    err := req.Send()
2296//    if err == nil { // resp is now filled
2297//        fmt.Println(resp)
2298//    }
2299func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
2300	op := &request.Operation{
2301		Name:       opCreateJob,
2302		HTTPMethod: "PUT",
2303		HTTPPath:   "/jobs/{jobId}",
2304	}
2305
2306	if input == nil {
2307		input = &CreateJobInput{}
2308	}
2309
2310	output = &CreateJobOutput{}
2311	req = c.newRequest(op, input, output)
2312	return
2313}
2314
2315// CreateJob API operation for AWS IoT.
2316//
2317// Creates a job.
2318//
2319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2320// with awserr.Error's Code and Message methods to get detailed information about
2321// the error.
2322//
2323// See the AWS API reference guide for AWS IoT's
2324// API operation CreateJob for usage and error information.
2325//
2326// Returned Error Types:
2327//   * InvalidRequestException
2328//   The request is not valid.
2329//
2330//   * ResourceNotFoundException
2331//   The specified resource does not exist.
2332//
2333//   * ResourceAlreadyExistsException
2334//   The resource already exists.
2335//
2336//   * LimitExceededException
2337//   A limit has been exceeded.
2338//
2339//   * ThrottlingException
2340//   The rate exceeds the limit.
2341//
2342//   * ServiceUnavailableException
2343//   The service is temporarily unavailable.
2344//
2345func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
2346	req, out := c.CreateJobRequest(input)
2347	return out, req.Send()
2348}
2349
2350// CreateJobWithContext is the same as CreateJob with the addition of
2351// the ability to pass a context and additional request options.
2352//
2353// See CreateJob for details on how to use this API operation.
2354//
2355// The context must be non-nil and will be used for request cancellation. If
2356// the context is nil a panic will occur. In the future the SDK may create
2357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2358// for more information on using Contexts.
2359func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
2360	req, out := c.CreateJobRequest(input)
2361	req.SetContext(ctx)
2362	req.ApplyOptions(opts...)
2363	return out, req.Send()
2364}
2365
2366const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
2367
2368// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
2369// client's request for the CreateKeysAndCertificate operation. The "output" return
2370// value will be populated with the request's response once the request completes
2371// successfully.
2372//
2373// Use "Send" method on the returned Request to send the API call to the service.
2374// the "output" return value is not valid until after Send returns without error.
2375//
2376// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
2377// API call, and error handling.
2378//
2379// This method is useful when you want to inject custom logic or configuration
2380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2381//
2382//
2383//    // Example sending a request using the CreateKeysAndCertificateRequest method.
2384//    req, resp := client.CreateKeysAndCertificateRequest(params)
2385//
2386//    err := req.Send()
2387//    if err == nil { // resp is now filled
2388//        fmt.Println(resp)
2389//    }
2390func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
2391	op := &request.Operation{
2392		Name:       opCreateKeysAndCertificate,
2393		HTTPMethod: "POST",
2394		HTTPPath:   "/keys-and-certificate",
2395	}
2396
2397	if input == nil {
2398		input = &CreateKeysAndCertificateInput{}
2399	}
2400
2401	output = &CreateKeysAndCertificateOutput{}
2402	req = c.newRequest(op, input, output)
2403	return
2404}
2405
2406// CreateKeysAndCertificate API operation for AWS IoT.
2407//
2408// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
2409// issued public key. You can also call CreateKeysAndCertificate over MQTT from
2410// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
2411//
2412// Note This is the only time AWS IoT issues the private key for this certificate,
2413// so it is important to keep it in a secure location.
2414//
2415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2416// with awserr.Error's Code and Message methods to get detailed information about
2417// the error.
2418//
2419// See the AWS API reference guide for AWS IoT's
2420// API operation CreateKeysAndCertificate for usage and error information.
2421//
2422// Returned Error Types:
2423//   * InvalidRequestException
2424//   The request is not valid.
2425//
2426//   * ThrottlingException
2427//   The rate exceeds the limit.
2428//
2429//   * UnauthorizedException
2430//   You are not authorized to perform this operation.
2431//
2432//   * ServiceUnavailableException
2433//   The service is temporarily unavailable.
2434//
2435//   * InternalFailureException
2436//   An unexpected error has occurred.
2437//
2438func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
2439	req, out := c.CreateKeysAndCertificateRequest(input)
2440	return out, req.Send()
2441}
2442
2443// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
2444// the ability to pass a context and additional request options.
2445//
2446// See CreateKeysAndCertificate for details on how to use this API operation.
2447//
2448// The context must be non-nil and will be used for request cancellation. If
2449// the context is nil a panic will occur. In the future the SDK may create
2450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2451// for more information on using Contexts.
2452func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
2453	req, out := c.CreateKeysAndCertificateRequest(input)
2454	req.SetContext(ctx)
2455	req.ApplyOptions(opts...)
2456	return out, req.Send()
2457}
2458
2459const opCreateMitigationAction = "CreateMitigationAction"
2460
2461// CreateMitigationActionRequest generates a "aws/request.Request" representing the
2462// client's request for the CreateMitigationAction operation. The "output" return
2463// value will be populated with the request's response once the request completes
2464// successfully.
2465//
2466// Use "Send" method on the returned Request to send the API call to the service.
2467// the "output" return value is not valid until after Send returns without error.
2468//
2469// See CreateMitigationAction for more information on using the CreateMitigationAction
2470// API call, and error handling.
2471//
2472// This method is useful when you want to inject custom logic or configuration
2473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2474//
2475//
2476//    // Example sending a request using the CreateMitigationActionRequest method.
2477//    req, resp := client.CreateMitigationActionRequest(params)
2478//
2479//    err := req.Send()
2480//    if err == nil { // resp is now filled
2481//        fmt.Println(resp)
2482//    }
2483func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
2484	op := &request.Operation{
2485		Name:       opCreateMitigationAction,
2486		HTTPMethod: "POST",
2487		HTTPPath:   "/mitigationactions/actions/{actionName}",
2488	}
2489
2490	if input == nil {
2491		input = &CreateMitigationActionInput{}
2492	}
2493
2494	output = &CreateMitigationActionOutput{}
2495	req = c.newRequest(op, input, output)
2496	return
2497}
2498
2499// CreateMitigationAction API operation for AWS IoT.
2500//
2501// Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
2502// Only certain types of mitigation actions can be applied to specific check
2503// names. For more information, see Mitigation actions (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html).
2504// Each mitigation action can apply only one type of change.
2505//
2506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2507// with awserr.Error's Code and Message methods to get detailed information about
2508// the error.
2509//
2510// See the AWS API reference guide for AWS IoT's
2511// API operation CreateMitigationAction for usage and error information.
2512//
2513// Returned Error Types:
2514//   * InvalidRequestException
2515//   The request is not valid.
2516//
2517//   * ResourceAlreadyExistsException
2518//   The resource already exists.
2519//
2520//   * LimitExceededException
2521//   A limit has been exceeded.
2522//
2523//   * ThrottlingException
2524//   The rate exceeds the limit.
2525//
2526//   * InternalFailureException
2527//   An unexpected error has occurred.
2528//
2529func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
2530	req, out := c.CreateMitigationActionRequest(input)
2531	return out, req.Send()
2532}
2533
2534// CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
2535// the ability to pass a context and additional request options.
2536//
2537// See CreateMitigationAction for details on how to use this API operation.
2538//
2539// The context must be non-nil and will be used for request cancellation. If
2540// the context is nil a panic will occur. In the future the SDK may create
2541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2542// for more information on using Contexts.
2543func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
2544	req, out := c.CreateMitigationActionRequest(input)
2545	req.SetContext(ctx)
2546	req.ApplyOptions(opts...)
2547	return out, req.Send()
2548}
2549
2550const opCreateOTAUpdate = "CreateOTAUpdate"
2551
2552// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
2553// client's request for the CreateOTAUpdate operation. The "output" return
2554// value will be populated with the request's response once the request completes
2555// successfully.
2556//
2557// Use "Send" method on the returned Request to send the API call to the service.
2558// the "output" return value is not valid until after Send returns without error.
2559//
2560// See CreateOTAUpdate for more information on using the CreateOTAUpdate
2561// API call, and error handling.
2562//
2563// This method is useful when you want to inject custom logic or configuration
2564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2565//
2566//
2567//    // Example sending a request using the CreateOTAUpdateRequest method.
2568//    req, resp := client.CreateOTAUpdateRequest(params)
2569//
2570//    err := req.Send()
2571//    if err == nil { // resp is now filled
2572//        fmt.Println(resp)
2573//    }
2574func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
2575	op := &request.Operation{
2576		Name:       opCreateOTAUpdate,
2577		HTTPMethod: "POST",
2578		HTTPPath:   "/otaUpdates/{otaUpdateId}",
2579	}
2580
2581	if input == nil {
2582		input = &CreateOTAUpdateInput{}
2583	}
2584
2585	output = &CreateOTAUpdateOutput{}
2586	req = c.newRequest(op, input, output)
2587	return
2588}
2589
2590// CreateOTAUpdate API operation for AWS IoT.
2591//
2592// Creates an AWS IoT OTAUpdate on a target group of things or groups.
2593//
2594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2595// with awserr.Error's Code and Message methods to get detailed information about
2596// the error.
2597//
2598// See the AWS API reference guide for AWS IoT's
2599// API operation CreateOTAUpdate for usage and error information.
2600//
2601// Returned Error Types:
2602//   * InvalidRequestException
2603//   The request is not valid.
2604//
2605//   * LimitExceededException
2606//   A limit has been exceeded.
2607//
2608//   * ResourceNotFoundException
2609//   The specified resource does not exist.
2610//
2611//   * ResourceAlreadyExistsException
2612//   The resource already exists.
2613//
2614//   * ThrottlingException
2615//   The rate exceeds the limit.
2616//
2617//   * UnauthorizedException
2618//   You are not authorized to perform this operation.
2619//
2620//   * InternalFailureException
2621//   An unexpected error has occurred.
2622//
2623//   * ServiceUnavailableException
2624//   The service is temporarily unavailable.
2625//
2626func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
2627	req, out := c.CreateOTAUpdateRequest(input)
2628	return out, req.Send()
2629}
2630
2631// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
2632// the ability to pass a context and additional request options.
2633//
2634// See CreateOTAUpdate for details on how to use this API operation.
2635//
2636// The context must be non-nil and will be used for request cancellation. If
2637// the context is nil a panic will occur. In the future the SDK may create
2638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2639// for more information on using Contexts.
2640func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
2641	req, out := c.CreateOTAUpdateRequest(input)
2642	req.SetContext(ctx)
2643	req.ApplyOptions(opts...)
2644	return out, req.Send()
2645}
2646
2647const opCreatePolicy = "CreatePolicy"
2648
2649// CreatePolicyRequest generates a "aws/request.Request" representing the
2650// client's request for the CreatePolicy operation. The "output" return
2651// value will be populated with the request's response once the request completes
2652// successfully.
2653//
2654// Use "Send" method on the returned Request to send the API call to the service.
2655// the "output" return value is not valid until after Send returns without error.
2656//
2657// See CreatePolicy for more information on using the CreatePolicy
2658// API call, and error handling.
2659//
2660// This method is useful when you want to inject custom logic or configuration
2661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2662//
2663//
2664//    // Example sending a request using the CreatePolicyRequest method.
2665//    req, resp := client.CreatePolicyRequest(params)
2666//
2667//    err := req.Send()
2668//    if err == nil { // resp is now filled
2669//        fmt.Println(resp)
2670//    }
2671func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
2672	op := &request.Operation{
2673		Name:       opCreatePolicy,
2674		HTTPMethod: "POST",
2675		HTTPPath:   "/policies/{policyName}",
2676	}
2677
2678	if input == nil {
2679		input = &CreatePolicyInput{}
2680	}
2681
2682	output = &CreatePolicyOutput{}
2683	req = c.newRequest(op, input, output)
2684	return
2685}
2686
2687// CreatePolicy API operation for AWS IoT.
2688//
2689// Creates an AWS IoT policy.
2690//
2691// The created policy is the default version for the policy. This operation
2692// creates a policy version with a version identifier of 1 and sets 1 as the
2693// policy's default version.
2694//
2695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2696// with awserr.Error's Code and Message methods to get detailed information about
2697// the error.
2698//
2699// See the AWS API reference guide for AWS IoT's
2700// API operation CreatePolicy for usage and error information.
2701//
2702// Returned Error Types:
2703//   * ResourceAlreadyExistsException
2704//   The resource already exists.
2705//
2706//   * MalformedPolicyException
2707//   The policy documentation is not valid.
2708//
2709//   * InvalidRequestException
2710//   The request is not valid.
2711//
2712//   * ThrottlingException
2713//   The rate exceeds the limit.
2714//
2715//   * UnauthorizedException
2716//   You are not authorized to perform this operation.
2717//
2718//   * ServiceUnavailableException
2719//   The service is temporarily unavailable.
2720//
2721//   * InternalFailureException
2722//   An unexpected error has occurred.
2723//
2724func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
2725	req, out := c.CreatePolicyRequest(input)
2726	return out, req.Send()
2727}
2728
2729// CreatePolicyWithContext is the same as CreatePolicy with the addition of
2730// the ability to pass a context and additional request options.
2731//
2732// See CreatePolicy for details on how to use this API operation.
2733//
2734// The context must be non-nil and will be used for request cancellation. If
2735// the context is nil a panic will occur. In the future the SDK may create
2736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2737// for more information on using Contexts.
2738func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
2739	req, out := c.CreatePolicyRequest(input)
2740	req.SetContext(ctx)
2741	req.ApplyOptions(opts...)
2742	return out, req.Send()
2743}
2744
2745const opCreatePolicyVersion = "CreatePolicyVersion"
2746
2747// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
2748// client's request for the CreatePolicyVersion operation. The "output" return
2749// value will be populated with the request's response once the request completes
2750// successfully.
2751//
2752// Use "Send" method on the returned Request to send the API call to the service.
2753// the "output" return value is not valid until after Send returns without error.
2754//
2755// See CreatePolicyVersion for more information on using the CreatePolicyVersion
2756// API call, and error handling.
2757//
2758// This method is useful when you want to inject custom logic or configuration
2759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2760//
2761//
2762//    // Example sending a request using the CreatePolicyVersionRequest method.
2763//    req, resp := client.CreatePolicyVersionRequest(params)
2764//
2765//    err := req.Send()
2766//    if err == nil { // resp is now filled
2767//        fmt.Println(resp)
2768//    }
2769func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
2770	op := &request.Operation{
2771		Name:       opCreatePolicyVersion,
2772		HTTPMethod: "POST",
2773		HTTPPath:   "/policies/{policyName}/version",
2774	}
2775
2776	if input == nil {
2777		input = &CreatePolicyVersionInput{}
2778	}
2779
2780	output = &CreatePolicyVersionOutput{}
2781	req = c.newRequest(op, input, output)
2782	return
2783}
2784
2785// CreatePolicyVersion API operation for AWS IoT.
2786//
2787// Creates a new version of the specified AWS IoT policy. To update a policy,
2788// create a new policy version. A managed policy can have up to five versions.
2789// If the policy has five versions, you must use DeletePolicyVersion to delete
2790// an existing version before you create a new one.
2791//
2792// Optionally, you can set the new version as the policy's default version.
2793// The default version is the operative version (that is, the version that is
2794// in effect for the certificates to which the policy is attached).
2795//
2796// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2797// with awserr.Error's Code and Message methods to get detailed information about
2798// the error.
2799//
2800// See the AWS API reference guide for AWS IoT's
2801// API operation CreatePolicyVersion for usage and error information.
2802//
2803// Returned Error Types:
2804//   * ResourceNotFoundException
2805//   The specified resource does not exist.
2806//
2807//   * MalformedPolicyException
2808//   The policy documentation is not valid.
2809//
2810//   * VersionsLimitExceededException
2811//   The number of policy versions exceeds the limit.
2812//
2813//   * InvalidRequestException
2814//   The request is not valid.
2815//
2816//   * ThrottlingException
2817//   The rate exceeds the limit.
2818//
2819//   * UnauthorizedException
2820//   You are not authorized to perform this operation.
2821//
2822//   * ServiceUnavailableException
2823//   The service is temporarily unavailable.
2824//
2825//   * InternalFailureException
2826//   An unexpected error has occurred.
2827//
2828func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
2829	req, out := c.CreatePolicyVersionRequest(input)
2830	return out, req.Send()
2831}
2832
2833// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
2834// the ability to pass a context and additional request options.
2835//
2836// See CreatePolicyVersion for details on how to use this API operation.
2837//
2838// The context must be non-nil and will be used for request cancellation. If
2839// the context is nil a panic will occur. In the future the SDK may create
2840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2841// for more information on using Contexts.
2842func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
2843	req, out := c.CreatePolicyVersionRequest(input)
2844	req.SetContext(ctx)
2845	req.ApplyOptions(opts...)
2846	return out, req.Send()
2847}
2848
2849const opCreateProvisioningClaim = "CreateProvisioningClaim"
2850
2851// CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
2852// client's request for the CreateProvisioningClaim operation. The "output" return
2853// value will be populated with the request's response once the request completes
2854// successfully.
2855//
2856// Use "Send" method on the returned Request to send the API call to the service.
2857// the "output" return value is not valid until after Send returns without error.
2858//
2859// See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
2860// API call, and error handling.
2861//
2862// This method is useful when you want to inject custom logic or configuration
2863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2864//
2865//
2866//    // Example sending a request using the CreateProvisioningClaimRequest method.
2867//    req, resp := client.CreateProvisioningClaimRequest(params)
2868//
2869//    err := req.Send()
2870//    if err == nil { // resp is now filled
2871//        fmt.Println(resp)
2872//    }
2873func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
2874	op := &request.Operation{
2875		Name:       opCreateProvisioningClaim,
2876		HTTPMethod: "POST",
2877		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
2878	}
2879
2880	if input == nil {
2881		input = &CreateProvisioningClaimInput{}
2882	}
2883
2884	output = &CreateProvisioningClaimOutput{}
2885	req = c.newRequest(op, input, output)
2886	return
2887}
2888
2889// CreateProvisioningClaim API operation for AWS IoT.
2890//
2891// Creates a provisioning claim.
2892//
2893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2894// with awserr.Error's Code and Message methods to get detailed information about
2895// the error.
2896//
2897// See the AWS API reference guide for AWS IoT's
2898// API operation CreateProvisioningClaim for usage and error information.
2899//
2900// Returned Error Types:
2901//   * InvalidRequestException
2902//   The request is not valid.
2903//
2904//   * ResourceNotFoundException
2905//   The specified resource does not exist.
2906//
2907//   * ThrottlingException
2908//   The rate exceeds the limit.
2909//
2910//   * UnauthorizedException
2911//   You are not authorized to perform this operation.
2912//
2913//   * ServiceUnavailableException
2914//   The service is temporarily unavailable.
2915//
2916//   * InternalFailureException
2917//   An unexpected error has occurred.
2918//
2919func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
2920	req, out := c.CreateProvisioningClaimRequest(input)
2921	return out, req.Send()
2922}
2923
2924// CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
2925// the ability to pass a context and additional request options.
2926//
2927// See CreateProvisioningClaim for details on how to use this API operation.
2928//
2929// The context must be non-nil and will be used for request cancellation. If
2930// the context is nil a panic will occur. In the future the SDK may create
2931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2932// for more information on using Contexts.
2933func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
2934	req, out := c.CreateProvisioningClaimRequest(input)
2935	req.SetContext(ctx)
2936	req.ApplyOptions(opts...)
2937	return out, req.Send()
2938}
2939
2940const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
2941
2942// CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
2943// client's request for the CreateProvisioningTemplate operation. The "output" return
2944// value will be populated with the request's response once the request completes
2945// successfully.
2946//
2947// Use "Send" method on the returned Request to send the API call to the service.
2948// the "output" return value is not valid until after Send returns without error.
2949//
2950// See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
2951// API call, and error handling.
2952//
2953// This method is useful when you want to inject custom logic or configuration
2954// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2955//
2956//
2957//    // Example sending a request using the CreateProvisioningTemplateRequest method.
2958//    req, resp := client.CreateProvisioningTemplateRequest(params)
2959//
2960//    err := req.Send()
2961//    if err == nil { // resp is now filled
2962//        fmt.Println(resp)
2963//    }
2964func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
2965	op := &request.Operation{
2966		Name:       opCreateProvisioningTemplate,
2967		HTTPMethod: "POST",
2968		HTTPPath:   "/provisioning-templates",
2969	}
2970
2971	if input == nil {
2972		input = &CreateProvisioningTemplateInput{}
2973	}
2974
2975	output = &CreateProvisioningTemplateOutput{}
2976	req = c.newRequest(op, input, output)
2977	return
2978}
2979
2980// CreateProvisioningTemplate API operation for AWS IoT.
2981//
2982// Creates a fleet provisioning template.
2983//
2984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2985// with awserr.Error's Code and Message methods to get detailed information about
2986// the error.
2987//
2988// See the AWS API reference guide for AWS IoT's
2989// API operation CreateProvisioningTemplate for usage and error information.
2990//
2991// Returned Error Types:
2992//   * InternalFailureException
2993//   An unexpected error has occurred.
2994//
2995//   * InvalidRequestException
2996//   The request is not valid.
2997//
2998//   * LimitExceededException
2999//   A limit has been exceeded.
3000//
3001//   * ThrottlingException
3002//   The rate exceeds the limit.
3003//
3004//   * UnauthorizedException
3005//   You are not authorized to perform this operation.
3006//
3007//   * ResourceAlreadyExistsException
3008//   The resource already exists.
3009//
3010func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
3011	req, out := c.CreateProvisioningTemplateRequest(input)
3012	return out, req.Send()
3013}
3014
3015// CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
3016// the ability to pass a context and additional request options.
3017//
3018// See CreateProvisioningTemplate for details on how to use this API operation.
3019//
3020// The context must be non-nil and will be used for request cancellation. If
3021// the context is nil a panic will occur. In the future the SDK may create
3022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3023// for more information on using Contexts.
3024func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
3025	req, out := c.CreateProvisioningTemplateRequest(input)
3026	req.SetContext(ctx)
3027	req.ApplyOptions(opts...)
3028	return out, req.Send()
3029}
3030
3031const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
3032
3033// CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
3034// client's request for the CreateProvisioningTemplateVersion operation. The "output" return
3035// value will be populated with the request's response once the request completes
3036// successfully.
3037//
3038// Use "Send" method on the returned Request to send the API call to the service.
3039// the "output" return value is not valid until after Send returns without error.
3040//
3041// See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
3042// API call, and error handling.
3043//
3044// This method is useful when you want to inject custom logic or configuration
3045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3046//
3047//
3048//    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
3049//    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
3050//
3051//    err := req.Send()
3052//    if err == nil { // resp is now filled
3053//        fmt.Println(resp)
3054//    }
3055func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
3056	op := &request.Operation{
3057		Name:       opCreateProvisioningTemplateVersion,
3058		HTTPMethod: "POST",
3059		HTTPPath:   "/provisioning-templates/{templateName}/versions",
3060	}
3061
3062	if input == nil {
3063		input = &CreateProvisioningTemplateVersionInput{}
3064	}
3065
3066	output = &CreateProvisioningTemplateVersionOutput{}
3067	req = c.newRequest(op, input, output)
3068	return
3069}
3070
3071// CreateProvisioningTemplateVersion API operation for AWS IoT.
3072//
3073// Creates a new version of a fleet provisioning template.
3074//
3075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3076// with awserr.Error's Code and Message methods to get detailed information about
3077// the error.
3078//
3079// See the AWS API reference guide for AWS IoT's
3080// API operation CreateProvisioningTemplateVersion for usage and error information.
3081//
3082// Returned Error Types:
3083//   * VersionsLimitExceededException
3084//   The number of policy versions exceeds the limit.
3085//
3086//   * InternalFailureException
3087//   An unexpected error has occurred.
3088//
3089//   * InvalidRequestException
3090//   The request is not valid.
3091//
3092//   * ThrottlingException
3093//   The rate exceeds the limit.
3094//
3095//   * ResourceNotFoundException
3096//   The specified resource does not exist.
3097//
3098//   * UnauthorizedException
3099//   You are not authorized to perform this operation.
3100//
3101//   * ConflictingResourceUpdateException
3102//   A conflicting resource update exception. This exception is thrown when two
3103//   pending updates cause a conflict.
3104//
3105func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
3106	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3107	return out, req.Send()
3108}
3109
3110// CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
3111// the ability to pass a context and additional request options.
3112//
3113// See CreateProvisioningTemplateVersion for details on how to use this API operation.
3114//
3115// The context must be non-nil and will be used for request cancellation. If
3116// the context is nil a panic will occur. In the future the SDK may create
3117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3118// for more information on using Contexts.
3119func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
3120	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3121	req.SetContext(ctx)
3122	req.ApplyOptions(opts...)
3123	return out, req.Send()
3124}
3125
3126const opCreateRoleAlias = "CreateRoleAlias"
3127
3128// CreateRoleAliasRequest generates a "aws/request.Request" representing the
3129// client's request for the CreateRoleAlias operation. The "output" return
3130// value will be populated with the request's response once the request completes
3131// successfully.
3132//
3133// Use "Send" method on the returned Request to send the API call to the service.
3134// the "output" return value is not valid until after Send returns without error.
3135//
3136// See CreateRoleAlias for more information on using the CreateRoleAlias
3137// API call, and error handling.
3138//
3139// This method is useful when you want to inject custom logic or configuration
3140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3141//
3142//
3143//    // Example sending a request using the CreateRoleAliasRequest method.
3144//    req, resp := client.CreateRoleAliasRequest(params)
3145//
3146//    err := req.Send()
3147//    if err == nil { // resp is now filled
3148//        fmt.Println(resp)
3149//    }
3150func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
3151	op := &request.Operation{
3152		Name:       opCreateRoleAlias,
3153		HTTPMethod: "POST",
3154		HTTPPath:   "/role-aliases/{roleAlias}",
3155	}
3156
3157	if input == nil {
3158		input = &CreateRoleAliasInput{}
3159	}
3160
3161	output = &CreateRoleAliasOutput{}
3162	req = c.newRequest(op, input, output)
3163	return
3164}
3165
3166// CreateRoleAlias API operation for AWS IoT.
3167//
3168// Creates a role alias.
3169//
3170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3171// with awserr.Error's Code and Message methods to get detailed information about
3172// the error.
3173//
3174// See the AWS API reference guide for AWS IoT's
3175// API operation CreateRoleAlias for usage and error information.
3176//
3177// Returned Error Types:
3178//   * ResourceAlreadyExistsException
3179//   The resource already exists.
3180//
3181//   * InvalidRequestException
3182//   The request is not valid.
3183//
3184//   * LimitExceededException
3185//   A limit has been exceeded.
3186//
3187//   * ThrottlingException
3188//   The rate exceeds the limit.
3189//
3190//   * UnauthorizedException
3191//   You are not authorized to perform this operation.
3192//
3193//   * ServiceUnavailableException
3194//   The service is temporarily unavailable.
3195//
3196//   * InternalFailureException
3197//   An unexpected error has occurred.
3198//
3199func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
3200	req, out := c.CreateRoleAliasRequest(input)
3201	return out, req.Send()
3202}
3203
3204// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
3205// the ability to pass a context and additional request options.
3206//
3207// See CreateRoleAlias for details on how to use this API operation.
3208//
3209// The context must be non-nil and will be used for request cancellation. If
3210// the context is nil a panic will occur. In the future the SDK may create
3211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3212// for more information on using Contexts.
3213func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
3214	req, out := c.CreateRoleAliasRequest(input)
3215	req.SetContext(ctx)
3216	req.ApplyOptions(opts...)
3217	return out, req.Send()
3218}
3219
3220const opCreateScheduledAudit = "CreateScheduledAudit"
3221
3222// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
3223// client's request for the CreateScheduledAudit operation. The "output" return
3224// value will be populated with the request's response once the request completes
3225// successfully.
3226//
3227// Use "Send" method on the returned Request to send the API call to the service.
3228// the "output" return value is not valid until after Send returns without error.
3229//
3230// See CreateScheduledAudit for more information on using the CreateScheduledAudit
3231// API call, and error handling.
3232//
3233// This method is useful when you want to inject custom logic or configuration
3234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3235//
3236//
3237//    // Example sending a request using the CreateScheduledAuditRequest method.
3238//    req, resp := client.CreateScheduledAuditRequest(params)
3239//
3240//    err := req.Send()
3241//    if err == nil { // resp is now filled
3242//        fmt.Println(resp)
3243//    }
3244func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
3245	op := &request.Operation{
3246		Name:       opCreateScheduledAudit,
3247		HTTPMethod: "POST",
3248		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
3249	}
3250
3251	if input == nil {
3252		input = &CreateScheduledAuditInput{}
3253	}
3254
3255	output = &CreateScheduledAuditOutput{}
3256	req = c.newRequest(op, input, output)
3257	return
3258}
3259
3260// CreateScheduledAudit API operation for AWS IoT.
3261//
3262// Creates a scheduled audit that is run at a specified time interval.
3263//
3264// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3265// with awserr.Error's Code and Message methods to get detailed information about
3266// the error.
3267//
3268// See the AWS API reference guide for AWS IoT's
3269// API operation CreateScheduledAudit for usage and error information.
3270//
3271// Returned Error Types:
3272//   * InvalidRequestException
3273//   The request is not valid.
3274//
3275//   * ResourceAlreadyExistsException
3276//   The resource already exists.
3277//
3278//   * ThrottlingException
3279//   The rate exceeds the limit.
3280//
3281//   * InternalFailureException
3282//   An unexpected error has occurred.
3283//
3284//   * LimitExceededException
3285//   A limit has been exceeded.
3286//
3287func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
3288	req, out := c.CreateScheduledAuditRequest(input)
3289	return out, req.Send()
3290}
3291
3292// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
3293// the ability to pass a context and additional request options.
3294//
3295// See CreateScheduledAudit for details on how to use this API operation.
3296//
3297// The context must be non-nil and will be used for request cancellation. If
3298// the context is nil a panic will occur. In the future the SDK may create
3299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3300// for more information on using Contexts.
3301func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
3302	req, out := c.CreateScheduledAuditRequest(input)
3303	req.SetContext(ctx)
3304	req.ApplyOptions(opts...)
3305	return out, req.Send()
3306}
3307
3308const opCreateSecurityProfile = "CreateSecurityProfile"
3309
3310// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
3311// client's request for the CreateSecurityProfile operation. The "output" return
3312// value will be populated with the request's response once the request completes
3313// successfully.
3314//
3315// Use "Send" method on the returned Request to send the API call to the service.
3316// the "output" return value is not valid until after Send returns without error.
3317//
3318// See CreateSecurityProfile for more information on using the CreateSecurityProfile
3319// API call, and error handling.
3320//
3321// This method is useful when you want to inject custom logic or configuration
3322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3323//
3324//
3325//    // Example sending a request using the CreateSecurityProfileRequest method.
3326//    req, resp := client.CreateSecurityProfileRequest(params)
3327//
3328//    err := req.Send()
3329//    if err == nil { // resp is now filled
3330//        fmt.Println(resp)
3331//    }
3332func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
3333	op := &request.Operation{
3334		Name:       opCreateSecurityProfile,
3335		HTTPMethod: "POST",
3336		HTTPPath:   "/security-profiles/{securityProfileName}",
3337	}
3338
3339	if input == nil {
3340		input = &CreateSecurityProfileInput{}
3341	}
3342
3343	output = &CreateSecurityProfileOutput{}
3344	req = c.newRequest(op, input, output)
3345	return
3346}
3347
3348// CreateSecurityProfile API operation for AWS IoT.
3349//
3350// Creates a Device Defender security profile.
3351//
3352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3353// with awserr.Error's Code and Message methods to get detailed information about
3354// the error.
3355//
3356// See the AWS API reference guide for AWS IoT's
3357// API operation CreateSecurityProfile for usage and error information.
3358//
3359// Returned Error Types:
3360//   * InvalidRequestException
3361//   The request is not valid.
3362//
3363//   * ResourceAlreadyExistsException
3364//   The resource already exists.
3365//
3366//   * ThrottlingException
3367//   The rate exceeds the limit.
3368//
3369//   * InternalFailureException
3370//   An unexpected error has occurred.
3371//
3372func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
3373	req, out := c.CreateSecurityProfileRequest(input)
3374	return out, req.Send()
3375}
3376
3377// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
3378// the ability to pass a context and additional request options.
3379//
3380// See CreateSecurityProfile for details on how to use this API operation.
3381//
3382// The context must be non-nil and will be used for request cancellation. If
3383// the context is nil a panic will occur. In the future the SDK may create
3384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3385// for more information on using Contexts.
3386func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
3387	req, out := c.CreateSecurityProfileRequest(input)
3388	req.SetContext(ctx)
3389	req.ApplyOptions(opts...)
3390	return out, req.Send()
3391}
3392
3393const opCreateStream = "CreateStream"
3394
3395// CreateStreamRequest generates a "aws/request.Request" representing the
3396// client's request for the CreateStream operation. The "output" return
3397// value will be populated with the request's response once the request completes
3398// successfully.
3399//
3400// Use "Send" method on the returned Request to send the API call to the service.
3401// the "output" return value is not valid until after Send returns without error.
3402//
3403// See CreateStream for more information on using the CreateStream
3404// API call, and error handling.
3405//
3406// This method is useful when you want to inject custom logic or configuration
3407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3408//
3409//
3410//    // Example sending a request using the CreateStreamRequest method.
3411//    req, resp := client.CreateStreamRequest(params)
3412//
3413//    err := req.Send()
3414//    if err == nil { // resp is now filled
3415//        fmt.Println(resp)
3416//    }
3417func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
3418	op := &request.Operation{
3419		Name:       opCreateStream,
3420		HTTPMethod: "POST",
3421		HTTPPath:   "/streams/{streamId}",
3422	}
3423
3424	if input == nil {
3425		input = &CreateStreamInput{}
3426	}
3427
3428	output = &CreateStreamOutput{}
3429	req = c.newRequest(op, input, output)
3430	return
3431}
3432
3433// CreateStream API operation for AWS IoT.
3434//
3435// Creates a stream for delivering one or more large files in chunks over MQTT.
3436// A stream transports data bytes in chunks or blocks packaged as MQTT messages
3437// from a source like S3. You can have one or more files associated with a stream.
3438//
3439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3440// with awserr.Error's Code and Message methods to get detailed information about
3441// the error.
3442//
3443// See the AWS API reference guide for AWS IoT's
3444// API operation CreateStream for usage and error information.
3445//
3446// Returned Error Types:
3447//   * InvalidRequestException
3448//   The request is not valid.
3449//
3450//   * LimitExceededException
3451//   A limit has been exceeded.
3452//
3453//   * ResourceNotFoundException
3454//   The specified resource does not exist.
3455//
3456//   * ResourceAlreadyExistsException
3457//   The resource already exists.
3458//
3459//   * ThrottlingException
3460//   The rate exceeds the limit.
3461//
3462//   * UnauthorizedException
3463//   You are not authorized to perform this operation.
3464//
3465//   * ServiceUnavailableException
3466//   The service is temporarily unavailable.
3467//
3468//   * InternalFailureException
3469//   An unexpected error has occurred.
3470//
3471func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
3472	req, out := c.CreateStreamRequest(input)
3473	return out, req.Send()
3474}
3475
3476// CreateStreamWithContext is the same as CreateStream with the addition of
3477// the ability to pass a context and additional request options.
3478//
3479// See CreateStream for details on how to use this API operation.
3480//
3481// The context must be non-nil and will be used for request cancellation. If
3482// the context is nil a panic will occur. In the future the SDK may create
3483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3484// for more information on using Contexts.
3485func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
3486	req, out := c.CreateStreamRequest(input)
3487	req.SetContext(ctx)
3488	req.ApplyOptions(opts...)
3489	return out, req.Send()
3490}
3491
3492const opCreateThing = "CreateThing"
3493
3494// CreateThingRequest generates a "aws/request.Request" representing the
3495// client's request for the CreateThing operation. The "output" return
3496// value will be populated with the request's response once the request completes
3497// successfully.
3498//
3499// Use "Send" method on the returned Request to send the API call to the service.
3500// the "output" return value is not valid until after Send returns without error.
3501//
3502// See CreateThing for more information on using the CreateThing
3503// API call, and error handling.
3504//
3505// This method is useful when you want to inject custom logic or configuration
3506// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3507//
3508//
3509//    // Example sending a request using the CreateThingRequest method.
3510//    req, resp := client.CreateThingRequest(params)
3511//
3512//    err := req.Send()
3513//    if err == nil { // resp is now filled
3514//        fmt.Println(resp)
3515//    }
3516func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
3517	op := &request.Operation{
3518		Name:       opCreateThing,
3519		HTTPMethod: "POST",
3520		HTTPPath:   "/things/{thingName}",
3521	}
3522
3523	if input == nil {
3524		input = &CreateThingInput{}
3525	}
3526
3527	output = &CreateThingOutput{}
3528	req = c.newRequest(op, input, output)
3529	return
3530}
3531
3532// CreateThing API operation for AWS IoT.
3533//
3534// Creates a thing record in the registry. If this call is made multiple times
3535// using the same thing name and configuration, the call will succeed. If this
3536// call is made with the same thing name but different configuration a ResourceAlreadyExistsException
3537// is thrown.
3538//
3539// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3540// for information about authorizing control plane actions.
3541//
3542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3543// with awserr.Error's Code and Message methods to get detailed information about
3544// the error.
3545//
3546// See the AWS API reference guide for AWS IoT's
3547// API operation CreateThing for usage and error information.
3548//
3549// Returned Error Types:
3550//   * InvalidRequestException
3551//   The request is not valid.
3552//
3553//   * ThrottlingException
3554//   The rate exceeds the limit.
3555//
3556//   * UnauthorizedException
3557//   You are not authorized to perform this operation.
3558//
3559//   * ServiceUnavailableException
3560//   The service is temporarily unavailable.
3561//
3562//   * InternalFailureException
3563//   An unexpected error has occurred.
3564//
3565//   * ResourceAlreadyExistsException
3566//   The resource already exists.
3567//
3568//   * ResourceNotFoundException
3569//   The specified resource does not exist.
3570//
3571func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
3572	req, out := c.CreateThingRequest(input)
3573	return out, req.Send()
3574}
3575
3576// CreateThingWithContext is the same as CreateThing with the addition of
3577// the ability to pass a context and additional request options.
3578//
3579// See CreateThing for details on how to use this API operation.
3580//
3581// The context must be non-nil and will be used for request cancellation. If
3582// the context is nil a panic will occur. In the future the SDK may create
3583// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3584// for more information on using Contexts.
3585func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
3586	req, out := c.CreateThingRequest(input)
3587	req.SetContext(ctx)
3588	req.ApplyOptions(opts...)
3589	return out, req.Send()
3590}
3591
3592const opCreateThingGroup = "CreateThingGroup"
3593
3594// CreateThingGroupRequest generates a "aws/request.Request" representing the
3595// client's request for the CreateThingGroup operation. The "output" return
3596// value will be populated with the request's response once the request completes
3597// successfully.
3598//
3599// Use "Send" method on the returned Request to send the API call to the service.
3600// the "output" return value is not valid until after Send returns without error.
3601//
3602// See CreateThingGroup for more information on using the CreateThingGroup
3603// API call, and error handling.
3604//
3605// This method is useful when you want to inject custom logic or configuration
3606// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3607//
3608//
3609//    // Example sending a request using the CreateThingGroupRequest method.
3610//    req, resp := client.CreateThingGroupRequest(params)
3611//
3612//    err := req.Send()
3613//    if err == nil { // resp is now filled
3614//        fmt.Println(resp)
3615//    }
3616func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
3617	op := &request.Operation{
3618		Name:       opCreateThingGroup,
3619		HTTPMethod: "POST",
3620		HTTPPath:   "/thing-groups/{thingGroupName}",
3621	}
3622
3623	if input == nil {
3624		input = &CreateThingGroupInput{}
3625	}
3626
3627	output = &CreateThingGroupOutput{}
3628	req = c.newRequest(op, input, output)
3629	return
3630}
3631
3632// CreateThingGroup API operation for AWS IoT.
3633//
3634// Create a thing group.
3635//
3636// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3637// for information about authorizing control plane actions.
3638//
3639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3640// with awserr.Error's Code and Message methods to get detailed information about
3641// the error.
3642//
3643// See the AWS API reference guide for AWS IoT's
3644// API operation CreateThingGroup for usage and error information.
3645//
3646// Returned Error Types:
3647//   * InvalidRequestException
3648//   The request is not valid.
3649//
3650//   * ResourceAlreadyExistsException
3651//   The resource already exists.
3652//
3653//   * ThrottlingException
3654//   The rate exceeds the limit.
3655//
3656//   * InternalFailureException
3657//   An unexpected error has occurred.
3658//
3659func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
3660	req, out := c.CreateThingGroupRequest(input)
3661	return out, req.Send()
3662}
3663
3664// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
3665// the ability to pass a context and additional request options.
3666//
3667// See CreateThingGroup for details on how to use this API operation.
3668//
3669// The context must be non-nil and will be used for request cancellation. If
3670// the context is nil a panic will occur. In the future the SDK may create
3671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3672// for more information on using Contexts.
3673func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
3674	req, out := c.CreateThingGroupRequest(input)
3675	req.SetContext(ctx)
3676	req.ApplyOptions(opts...)
3677	return out, req.Send()
3678}
3679
3680const opCreateThingType = "CreateThingType"
3681
3682// CreateThingTypeRequest generates a "aws/request.Request" representing the
3683// client's request for the CreateThingType operation. The "output" return
3684// value will be populated with the request's response once the request completes
3685// successfully.
3686//
3687// Use "Send" method on the returned Request to send the API call to the service.
3688// the "output" return value is not valid until after Send returns without error.
3689//
3690// See CreateThingType for more information on using the CreateThingType
3691// API call, and error handling.
3692//
3693// This method is useful when you want to inject custom logic or configuration
3694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3695//
3696//
3697//    // Example sending a request using the CreateThingTypeRequest method.
3698//    req, resp := client.CreateThingTypeRequest(params)
3699//
3700//    err := req.Send()
3701//    if err == nil { // resp is now filled
3702//        fmt.Println(resp)
3703//    }
3704func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
3705	op := &request.Operation{
3706		Name:       opCreateThingType,
3707		HTTPMethod: "POST",
3708		HTTPPath:   "/thing-types/{thingTypeName}",
3709	}
3710
3711	if input == nil {
3712		input = &CreateThingTypeInput{}
3713	}
3714
3715	output = &CreateThingTypeOutput{}
3716	req = c.newRequest(op, input, output)
3717	return
3718}
3719
3720// CreateThingType API operation for AWS IoT.
3721//
3722// Creates a new thing type.
3723//
3724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3725// with awserr.Error's Code and Message methods to get detailed information about
3726// the error.
3727//
3728// See the AWS API reference guide for AWS IoT's
3729// API operation CreateThingType for usage and error information.
3730//
3731// Returned Error Types:
3732//   * InvalidRequestException
3733//   The request is not valid.
3734//
3735//   * ThrottlingException
3736//   The rate exceeds the limit.
3737//
3738//   * UnauthorizedException
3739//   You are not authorized to perform this operation.
3740//
3741//   * ServiceUnavailableException
3742//   The service is temporarily unavailable.
3743//
3744//   * InternalFailureException
3745//   An unexpected error has occurred.
3746//
3747//   * ResourceAlreadyExistsException
3748//   The resource already exists.
3749//
3750func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
3751	req, out := c.CreateThingTypeRequest(input)
3752	return out, req.Send()
3753}
3754
3755// CreateThingTypeWithContext is the same as CreateThingType with the addition of
3756// the ability to pass a context and additional request options.
3757//
3758// See CreateThingType for details on how to use this API operation.
3759//
3760// The context must be non-nil and will be used for request cancellation. If
3761// the context is nil a panic will occur. In the future the SDK may create
3762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3763// for more information on using Contexts.
3764func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
3765	req, out := c.CreateThingTypeRequest(input)
3766	req.SetContext(ctx)
3767	req.ApplyOptions(opts...)
3768	return out, req.Send()
3769}
3770
3771const opCreateTopicRule = "CreateTopicRule"
3772
3773// CreateTopicRuleRequest generates a "aws/request.Request" representing the
3774// client's request for the CreateTopicRule operation. The "output" return
3775// value will be populated with the request's response once the request completes
3776// successfully.
3777//
3778// Use "Send" method on the returned Request to send the API call to the service.
3779// the "output" return value is not valid until after Send returns without error.
3780//
3781// See CreateTopicRule for more information on using the CreateTopicRule
3782// API call, and error handling.
3783//
3784// This method is useful when you want to inject custom logic or configuration
3785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3786//
3787//
3788//    // Example sending a request using the CreateTopicRuleRequest method.
3789//    req, resp := client.CreateTopicRuleRequest(params)
3790//
3791//    err := req.Send()
3792//    if err == nil { // resp is now filled
3793//        fmt.Println(resp)
3794//    }
3795func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
3796	op := &request.Operation{
3797		Name:       opCreateTopicRule,
3798		HTTPMethod: "POST",
3799		HTTPPath:   "/rules/{ruleName}",
3800	}
3801
3802	if input == nil {
3803		input = &CreateTopicRuleInput{}
3804	}
3805
3806	output = &CreateTopicRuleOutput{}
3807	req = c.newRequest(op, input, output)
3808	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3809	return
3810}
3811
3812// CreateTopicRule API operation for AWS IoT.
3813//
3814// Creates a rule. Creating rules is an administrator-level action. Any user
3815// who has permission to create rules will be able to access data processed
3816// by the rule.
3817//
3818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3819// with awserr.Error's Code and Message methods to get detailed information about
3820// the error.
3821//
3822// See the AWS API reference guide for AWS IoT's
3823// API operation CreateTopicRule for usage and error information.
3824//
3825// Returned Error Types:
3826//   * SqlParseException
3827//   The Rule-SQL expression can't be parsed correctly.
3828//
3829//   * InternalException
3830//   An unexpected error has occurred.
3831//
3832//   * InvalidRequestException
3833//   The request is not valid.
3834//
3835//   * ResourceAlreadyExistsException
3836//   The resource already exists.
3837//
3838//   * ServiceUnavailableException
3839//   The service is temporarily unavailable.
3840//
3841//   * ConflictingResourceUpdateException
3842//   A conflicting resource update exception. This exception is thrown when two
3843//   pending updates cause a conflict.
3844//
3845func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
3846	req, out := c.CreateTopicRuleRequest(input)
3847	return out, req.Send()
3848}
3849
3850// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
3851// the ability to pass a context and additional request options.
3852//
3853// See CreateTopicRule for details on how to use this API operation.
3854//
3855// The context must be non-nil and will be used for request cancellation. If
3856// the context is nil a panic will occur. In the future the SDK may create
3857// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3858// for more information on using Contexts.
3859func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
3860	req, out := c.CreateTopicRuleRequest(input)
3861	req.SetContext(ctx)
3862	req.ApplyOptions(opts...)
3863	return out, req.Send()
3864}
3865
3866const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
3867
3868// CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
3869// client's request for the CreateTopicRuleDestination operation. The "output" return
3870// value will be populated with the request's response once the request completes
3871// successfully.
3872//
3873// Use "Send" method on the returned Request to send the API call to the service.
3874// the "output" return value is not valid until after Send returns without error.
3875//
3876// See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
3877// API call, and error handling.
3878//
3879// This method is useful when you want to inject custom logic or configuration
3880// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3881//
3882//
3883//    // Example sending a request using the CreateTopicRuleDestinationRequest method.
3884//    req, resp := client.CreateTopicRuleDestinationRequest(params)
3885//
3886//    err := req.Send()
3887//    if err == nil { // resp is now filled
3888//        fmt.Println(resp)
3889//    }
3890func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
3891	op := &request.Operation{
3892		Name:       opCreateTopicRuleDestination,
3893		HTTPMethod: "POST",
3894		HTTPPath:   "/destinations",
3895	}
3896
3897	if input == nil {
3898		input = &CreateTopicRuleDestinationInput{}
3899	}
3900
3901	output = &CreateTopicRuleDestinationOutput{}
3902	req = c.newRequest(op, input, output)
3903	return
3904}
3905
3906// CreateTopicRuleDestination API operation for AWS IoT.
3907//
3908// Creates a topic rule destination. The destination must be confirmed prior
3909// to use.
3910//
3911// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3912// with awserr.Error's Code and Message methods to get detailed information about
3913// the error.
3914//
3915// See the AWS API reference guide for AWS IoT's
3916// API operation CreateTopicRuleDestination for usage and error information.
3917//
3918// Returned Error Types:
3919//   * InternalException
3920//   An unexpected error has occurred.
3921//
3922//   * InvalidRequestException
3923//   The request is not valid.
3924//
3925//   * ResourceAlreadyExistsException
3926//   The resource already exists.
3927//
3928//   * ServiceUnavailableException
3929//   The service is temporarily unavailable.
3930//
3931//   * ConflictingResourceUpdateException
3932//   A conflicting resource update exception. This exception is thrown when two
3933//   pending updates cause a conflict.
3934//
3935func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
3936	req, out := c.CreateTopicRuleDestinationRequest(input)
3937	return out, req.Send()
3938}
3939
3940// CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
3941// the ability to pass a context and additional request options.
3942//
3943// See CreateTopicRuleDestination for details on how to use this API operation.
3944//
3945// The context must be non-nil and will be used for request cancellation. If
3946// the context is nil a panic will occur. In the future the SDK may create
3947// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3948// for more information on using Contexts.
3949func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
3950	req, out := c.CreateTopicRuleDestinationRequest(input)
3951	req.SetContext(ctx)
3952	req.ApplyOptions(opts...)
3953	return out, req.Send()
3954}
3955
3956const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
3957
3958// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
3959// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
3960// value will be populated with the request's response once the request completes
3961// successfully.
3962//
3963// Use "Send" method on the returned Request to send the API call to the service.
3964// the "output" return value is not valid until after Send returns without error.
3965//
3966// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
3967// API call, and error handling.
3968//
3969// This method is useful when you want to inject custom logic or configuration
3970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3971//
3972//
3973//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
3974//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
3975//
3976//    err := req.Send()
3977//    if err == nil { // resp is now filled
3978//        fmt.Println(resp)
3979//    }
3980func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
3981	op := &request.Operation{
3982		Name:       opDeleteAccountAuditConfiguration,
3983		HTTPMethod: "DELETE",
3984		HTTPPath:   "/audit/configuration",
3985	}
3986
3987	if input == nil {
3988		input = &DeleteAccountAuditConfigurationInput{}
3989	}
3990
3991	output = &DeleteAccountAuditConfigurationOutput{}
3992	req = c.newRequest(op, input, output)
3993	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3994	return
3995}
3996
3997// DeleteAccountAuditConfiguration API operation for AWS IoT.
3998//
3999// Restores the default settings for Device Defender audits for this account.
4000// Any configuration data you entered is deleted and all audit checks are reset
4001// to disabled.
4002//
4003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4004// with awserr.Error's Code and Message methods to get detailed information about
4005// the error.
4006//
4007// See the AWS API reference guide for AWS IoT's
4008// API operation DeleteAccountAuditConfiguration for usage and error information.
4009//
4010// Returned Error Types:
4011//   * InvalidRequestException
4012//   The request is not valid.
4013//
4014//   * ResourceNotFoundException
4015//   The specified resource does not exist.
4016//
4017//   * ThrottlingException
4018//   The rate exceeds the limit.
4019//
4020//   * InternalFailureException
4021//   An unexpected error has occurred.
4022//
4023func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
4024	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4025	return out, req.Send()
4026}
4027
4028// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
4029// the ability to pass a context and additional request options.
4030//
4031// See DeleteAccountAuditConfiguration for details on how to use this API operation.
4032//
4033// The context must be non-nil and will be used for request cancellation. If
4034// the context is nil a panic will occur. In the future the SDK may create
4035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4036// for more information on using Contexts.
4037func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
4038	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4039	req.SetContext(ctx)
4040	req.ApplyOptions(opts...)
4041	return out, req.Send()
4042}
4043
4044const opDeleteAuditSuppression = "DeleteAuditSuppression"
4045
4046// DeleteAuditSuppressionRequest generates a "aws/request.Request" representing the
4047// client's request for the DeleteAuditSuppression operation. The "output" return
4048// value will be populated with the request's response once the request completes
4049// successfully.
4050//
4051// Use "Send" method on the returned Request to send the API call to the service.
4052// the "output" return value is not valid until after Send returns without error.
4053//
4054// See DeleteAuditSuppression for more information on using the DeleteAuditSuppression
4055// API call, and error handling.
4056//
4057// This method is useful when you want to inject custom logic or configuration
4058// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4059//
4060//
4061//    // Example sending a request using the DeleteAuditSuppressionRequest method.
4062//    req, resp := client.DeleteAuditSuppressionRequest(params)
4063//
4064//    err := req.Send()
4065//    if err == nil { // resp is now filled
4066//        fmt.Println(resp)
4067//    }
4068func (c *IoT) DeleteAuditSuppressionRequest(input *DeleteAuditSuppressionInput) (req *request.Request, output *DeleteAuditSuppressionOutput) {
4069	op := &request.Operation{
4070		Name:       opDeleteAuditSuppression,
4071		HTTPMethod: "POST",
4072		HTTPPath:   "/audit/suppressions/delete",
4073	}
4074
4075	if input == nil {
4076		input = &DeleteAuditSuppressionInput{}
4077	}
4078
4079	output = &DeleteAuditSuppressionOutput{}
4080	req = c.newRequest(op, input, output)
4081	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4082	return
4083}
4084
4085// DeleteAuditSuppression API operation for AWS IoT.
4086//
4087// Deletes a Device Defender audit suppression.
4088//
4089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4090// with awserr.Error's Code and Message methods to get detailed information about
4091// the error.
4092//
4093// See the AWS API reference guide for AWS IoT's
4094// API operation DeleteAuditSuppression for usage and error information.
4095//
4096// Returned Error Types:
4097//   * InvalidRequestException
4098//   The request is not valid.
4099//
4100//   * ThrottlingException
4101//   The rate exceeds the limit.
4102//
4103//   * InternalFailureException
4104//   An unexpected error has occurred.
4105//
4106func (c *IoT) DeleteAuditSuppression(input *DeleteAuditSuppressionInput) (*DeleteAuditSuppressionOutput, error) {
4107	req, out := c.DeleteAuditSuppressionRequest(input)
4108	return out, req.Send()
4109}
4110
4111// DeleteAuditSuppressionWithContext is the same as DeleteAuditSuppression with the addition of
4112// the ability to pass a context and additional request options.
4113//
4114// See DeleteAuditSuppression for details on how to use this API operation.
4115//
4116// The context must be non-nil and will be used for request cancellation. If
4117// the context is nil a panic will occur. In the future the SDK may create
4118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4119// for more information on using Contexts.
4120func (c *IoT) DeleteAuditSuppressionWithContext(ctx aws.Context, input *DeleteAuditSuppressionInput, opts ...request.Option) (*DeleteAuditSuppressionOutput, error) {
4121	req, out := c.DeleteAuditSuppressionRequest(input)
4122	req.SetContext(ctx)
4123	req.ApplyOptions(opts...)
4124	return out, req.Send()
4125}
4126
4127const opDeleteAuthorizer = "DeleteAuthorizer"
4128
4129// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
4130// client's request for the DeleteAuthorizer operation. The "output" return
4131// value will be populated with the request's response once the request completes
4132// successfully.
4133//
4134// Use "Send" method on the returned Request to send the API call to the service.
4135// the "output" return value is not valid until after Send returns without error.
4136//
4137// See DeleteAuthorizer for more information on using the DeleteAuthorizer
4138// API call, and error handling.
4139//
4140// This method is useful when you want to inject custom logic or configuration
4141// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4142//
4143//
4144//    // Example sending a request using the DeleteAuthorizerRequest method.
4145//    req, resp := client.DeleteAuthorizerRequest(params)
4146//
4147//    err := req.Send()
4148//    if err == nil { // resp is now filled
4149//        fmt.Println(resp)
4150//    }
4151func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
4152	op := &request.Operation{
4153		Name:       opDeleteAuthorizer,
4154		HTTPMethod: "DELETE",
4155		HTTPPath:   "/authorizer/{authorizerName}",
4156	}
4157
4158	if input == nil {
4159		input = &DeleteAuthorizerInput{}
4160	}
4161
4162	output = &DeleteAuthorizerOutput{}
4163	req = c.newRequest(op, input, output)
4164	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4165	return
4166}
4167
4168// DeleteAuthorizer API operation for AWS IoT.
4169//
4170// Deletes an authorizer.
4171//
4172// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4173// with awserr.Error's Code and Message methods to get detailed information about
4174// the error.
4175//
4176// See the AWS API reference guide for AWS IoT's
4177// API operation DeleteAuthorizer for usage and error information.
4178//
4179// Returned Error Types:
4180//   * DeleteConflictException
4181//   You can't delete the resource because it is attached to one or more resources.
4182//
4183//   * ResourceNotFoundException
4184//   The specified resource does not exist.
4185//
4186//   * InvalidRequestException
4187//   The request is not valid.
4188//
4189//   * ThrottlingException
4190//   The rate exceeds the limit.
4191//
4192//   * UnauthorizedException
4193//   You are not authorized to perform this operation.
4194//
4195//   * ServiceUnavailableException
4196//   The service is temporarily unavailable.
4197//
4198//   * InternalFailureException
4199//   An unexpected error has occurred.
4200//
4201func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
4202	req, out := c.DeleteAuthorizerRequest(input)
4203	return out, req.Send()
4204}
4205
4206// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
4207// the ability to pass a context and additional request options.
4208//
4209// See DeleteAuthorizer for details on how to use this API operation.
4210//
4211// The context must be non-nil and will be used for request cancellation. If
4212// the context is nil a panic will occur. In the future the SDK may create
4213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4214// for more information on using Contexts.
4215func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
4216	req, out := c.DeleteAuthorizerRequest(input)
4217	req.SetContext(ctx)
4218	req.ApplyOptions(opts...)
4219	return out, req.Send()
4220}
4221
4222const opDeleteBillingGroup = "DeleteBillingGroup"
4223
4224// DeleteBillingGroupRequest generates a "aws/request.Request" representing the
4225// client's request for the DeleteBillingGroup operation. The "output" return
4226// value will be populated with the request's response once the request completes
4227// successfully.
4228//
4229// Use "Send" method on the returned Request to send the API call to the service.
4230// the "output" return value is not valid until after Send returns without error.
4231//
4232// See DeleteBillingGroup for more information on using the DeleteBillingGroup
4233// API call, and error handling.
4234//
4235// This method is useful when you want to inject custom logic or configuration
4236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4237//
4238//
4239//    // Example sending a request using the DeleteBillingGroupRequest method.
4240//    req, resp := client.DeleteBillingGroupRequest(params)
4241//
4242//    err := req.Send()
4243//    if err == nil { // resp is now filled
4244//        fmt.Println(resp)
4245//    }
4246func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
4247	op := &request.Operation{
4248		Name:       opDeleteBillingGroup,
4249		HTTPMethod: "DELETE",
4250		HTTPPath:   "/billing-groups/{billingGroupName}",
4251	}
4252
4253	if input == nil {
4254		input = &DeleteBillingGroupInput{}
4255	}
4256
4257	output = &DeleteBillingGroupOutput{}
4258	req = c.newRequest(op, input, output)
4259	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4260	return
4261}
4262
4263// DeleteBillingGroup API operation for AWS IoT.
4264//
4265// Deletes the billing group.
4266//
4267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4268// with awserr.Error's Code and Message methods to get detailed information about
4269// the error.
4270//
4271// See the AWS API reference guide for AWS IoT's
4272// API operation DeleteBillingGroup for usage and error information.
4273//
4274// Returned Error Types:
4275//   * InvalidRequestException
4276//   The request is not valid.
4277//
4278//   * VersionConflictException
4279//   An exception thrown when the version of an entity specified with the expectedVersion
4280//   parameter does not match the latest version in the system.
4281//
4282//   * ThrottlingException
4283//   The rate exceeds the limit.
4284//
4285//   * InternalFailureException
4286//   An unexpected error has occurred.
4287//
4288func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
4289	req, out := c.DeleteBillingGroupRequest(input)
4290	return out, req.Send()
4291}
4292
4293// DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
4294// the ability to pass a context and additional request options.
4295//
4296// See DeleteBillingGroup for details on how to use this API operation.
4297//
4298// The context must be non-nil and will be used for request cancellation. If
4299// the context is nil a panic will occur. In the future the SDK may create
4300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4301// for more information on using Contexts.
4302func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
4303	req, out := c.DeleteBillingGroupRequest(input)
4304	req.SetContext(ctx)
4305	req.ApplyOptions(opts...)
4306	return out, req.Send()
4307}
4308
4309const opDeleteCACertificate = "DeleteCACertificate"
4310
4311// DeleteCACertificateRequest generates a "aws/request.Request" representing the
4312// client's request for the DeleteCACertificate operation. The "output" return
4313// value will be populated with the request's response once the request completes
4314// successfully.
4315//
4316// Use "Send" method on the returned Request to send the API call to the service.
4317// the "output" return value is not valid until after Send returns without error.
4318//
4319// See DeleteCACertificate for more information on using the DeleteCACertificate
4320// API call, and error handling.
4321//
4322// This method is useful when you want to inject custom logic or configuration
4323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4324//
4325//
4326//    // Example sending a request using the DeleteCACertificateRequest method.
4327//    req, resp := client.DeleteCACertificateRequest(params)
4328//
4329//    err := req.Send()
4330//    if err == nil { // resp is now filled
4331//        fmt.Println(resp)
4332//    }
4333func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
4334	op := &request.Operation{
4335		Name:       opDeleteCACertificate,
4336		HTTPMethod: "DELETE",
4337		HTTPPath:   "/cacertificate/{caCertificateId}",
4338	}
4339
4340	if input == nil {
4341		input = &DeleteCACertificateInput{}
4342	}
4343
4344	output = &DeleteCACertificateOutput{}
4345	req = c.newRequest(op, input, output)
4346	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4347	return
4348}
4349
4350// DeleteCACertificate API operation for AWS IoT.
4351//
4352// Deletes a registered CA certificate.
4353//
4354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4355// with awserr.Error's Code and Message methods to get detailed information about
4356// the error.
4357//
4358// See the AWS API reference guide for AWS IoT's
4359// API operation DeleteCACertificate for usage and error information.
4360//
4361// Returned Error Types:
4362//   * InvalidRequestException
4363//   The request is not valid.
4364//
4365//   * CertificateStateException
4366//   The certificate operation is not allowed.
4367//
4368//   * ThrottlingException
4369//   The rate exceeds the limit.
4370//
4371//   * UnauthorizedException
4372//   You are not authorized to perform this operation.
4373//
4374//   * ServiceUnavailableException
4375//   The service is temporarily unavailable.
4376//
4377//   * InternalFailureException
4378//   An unexpected error has occurred.
4379//
4380//   * ResourceNotFoundException
4381//   The specified resource does not exist.
4382//
4383func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
4384	req, out := c.DeleteCACertificateRequest(input)
4385	return out, req.Send()
4386}
4387
4388// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
4389// the ability to pass a context and additional request options.
4390//
4391// See DeleteCACertificate for details on how to use this API operation.
4392//
4393// The context must be non-nil and will be used for request cancellation. If
4394// the context is nil a panic will occur. In the future the SDK may create
4395// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4396// for more information on using Contexts.
4397func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
4398	req, out := c.DeleteCACertificateRequest(input)
4399	req.SetContext(ctx)
4400	req.ApplyOptions(opts...)
4401	return out, req.Send()
4402}
4403
4404const opDeleteCertificate = "DeleteCertificate"
4405
4406// DeleteCertificateRequest generates a "aws/request.Request" representing the
4407// client's request for the DeleteCertificate operation. The "output" return
4408// value will be populated with the request's response once the request completes
4409// successfully.
4410//
4411// Use "Send" method on the returned Request to send the API call to the service.
4412// the "output" return value is not valid until after Send returns without error.
4413//
4414// See DeleteCertificate for more information on using the DeleteCertificate
4415// API call, and error handling.
4416//
4417// This method is useful when you want to inject custom logic or configuration
4418// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4419//
4420//
4421//    // Example sending a request using the DeleteCertificateRequest method.
4422//    req, resp := client.DeleteCertificateRequest(params)
4423//
4424//    err := req.Send()
4425//    if err == nil { // resp is now filled
4426//        fmt.Println(resp)
4427//    }
4428func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
4429	op := &request.Operation{
4430		Name:       opDeleteCertificate,
4431		HTTPMethod: "DELETE",
4432		HTTPPath:   "/certificates/{certificateId}",
4433	}
4434
4435	if input == nil {
4436		input = &DeleteCertificateInput{}
4437	}
4438
4439	output = &DeleteCertificateOutput{}
4440	req = c.newRequest(op, input, output)
4441	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4442	return
4443}
4444
4445// DeleteCertificate API operation for AWS IoT.
4446//
4447// Deletes the specified certificate.
4448//
4449// A certificate cannot be deleted if it has a policy or IoT thing attached
4450// to it or if its status is set to ACTIVE. To delete a certificate, first use
4451// the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate
4452// API to set the certificate to the INACTIVE status.
4453//
4454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4455// with awserr.Error's Code and Message methods to get detailed information about
4456// the error.
4457//
4458// See the AWS API reference guide for AWS IoT's
4459// API operation DeleteCertificate for usage and error information.
4460//
4461// Returned Error Types:
4462//   * CertificateStateException
4463//   The certificate operation is not allowed.
4464//
4465//   * DeleteConflictException
4466//   You can't delete the resource because it is attached to one or more resources.
4467//
4468//   * InvalidRequestException
4469//   The request is not valid.
4470//
4471//   * ThrottlingException
4472//   The rate exceeds the limit.
4473//
4474//   * UnauthorizedException
4475//   You are not authorized to perform this operation.
4476//
4477//   * ServiceUnavailableException
4478//   The service is temporarily unavailable.
4479//
4480//   * InternalFailureException
4481//   An unexpected error has occurred.
4482//
4483//   * ResourceNotFoundException
4484//   The specified resource does not exist.
4485//
4486func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
4487	req, out := c.DeleteCertificateRequest(input)
4488	return out, req.Send()
4489}
4490
4491// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
4492// the ability to pass a context and additional request options.
4493//
4494// See DeleteCertificate for details on how to use this API operation.
4495//
4496// The context must be non-nil and will be used for request cancellation. If
4497// the context is nil a panic will occur. In the future the SDK may create
4498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4499// for more information on using Contexts.
4500func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
4501	req, out := c.DeleteCertificateRequest(input)
4502	req.SetContext(ctx)
4503	req.ApplyOptions(opts...)
4504	return out, req.Send()
4505}
4506
4507const opDeleteCustomMetric = "DeleteCustomMetric"
4508
4509// DeleteCustomMetricRequest generates a "aws/request.Request" representing the
4510// client's request for the DeleteCustomMetric operation. The "output" return
4511// value will be populated with the request's response once the request completes
4512// successfully.
4513//
4514// Use "Send" method on the returned Request to send the API call to the service.
4515// the "output" return value is not valid until after Send returns without error.
4516//
4517// See DeleteCustomMetric for more information on using the DeleteCustomMetric
4518// API call, and error handling.
4519//
4520// This method is useful when you want to inject custom logic or configuration
4521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4522//
4523//
4524//    // Example sending a request using the DeleteCustomMetricRequest method.
4525//    req, resp := client.DeleteCustomMetricRequest(params)
4526//
4527//    err := req.Send()
4528//    if err == nil { // resp is now filled
4529//        fmt.Println(resp)
4530//    }
4531func (c *IoT) DeleteCustomMetricRequest(input *DeleteCustomMetricInput) (req *request.Request, output *DeleteCustomMetricOutput) {
4532	op := &request.Operation{
4533		Name:       opDeleteCustomMetric,
4534		HTTPMethod: "DELETE",
4535		HTTPPath:   "/custom-metric/{metricName}",
4536	}
4537
4538	if input == nil {
4539		input = &DeleteCustomMetricInput{}
4540	}
4541
4542	output = &DeleteCustomMetricOutput{}
4543	req = c.newRequest(op, input, output)
4544	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4545	return
4546}
4547
4548// DeleteCustomMetric API operation for AWS IoT.
4549//
4550//
4551// Before you can delete a custom metric, you must first remove the custom metric
4552// from all security profiles it's a part of. The security profile associated
4553// with the custom metric can be found using the ListSecurityProfiles (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
4554// API with metricName set to your custom metric name.
4555//
4556// Deletes a Device Defender detect custom metric.
4557//
4558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4559// with awserr.Error's Code and Message methods to get detailed information about
4560// the error.
4561//
4562// See the AWS API reference guide for AWS IoT's
4563// API operation DeleteCustomMetric for usage and error information.
4564//
4565// Returned Error Types:
4566//   * InvalidRequestException
4567//   The request is not valid.
4568//
4569//   * ThrottlingException
4570//   The rate exceeds the limit.
4571//
4572//   * InternalFailureException
4573//   An unexpected error has occurred.
4574//
4575func (c *IoT) DeleteCustomMetric(input *DeleteCustomMetricInput) (*DeleteCustomMetricOutput, error) {
4576	req, out := c.DeleteCustomMetricRequest(input)
4577	return out, req.Send()
4578}
4579
4580// DeleteCustomMetricWithContext is the same as DeleteCustomMetric with the addition of
4581// the ability to pass a context and additional request options.
4582//
4583// See DeleteCustomMetric for details on how to use this API operation.
4584//
4585// The context must be non-nil and will be used for request cancellation. If
4586// the context is nil a panic will occur. In the future the SDK may create
4587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4588// for more information on using Contexts.
4589func (c *IoT) DeleteCustomMetricWithContext(ctx aws.Context, input *DeleteCustomMetricInput, opts ...request.Option) (*DeleteCustomMetricOutput, error) {
4590	req, out := c.DeleteCustomMetricRequest(input)
4591	req.SetContext(ctx)
4592	req.ApplyOptions(opts...)
4593	return out, req.Send()
4594}
4595
4596const opDeleteDimension = "DeleteDimension"
4597
4598// DeleteDimensionRequest generates a "aws/request.Request" representing the
4599// client's request for the DeleteDimension operation. The "output" return
4600// value will be populated with the request's response once the request completes
4601// successfully.
4602//
4603// Use "Send" method on the returned Request to send the API call to the service.
4604// the "output" return value is not valid until after Send returns without error.
4605//
4606// See DeleteDimension for more information on using the DeleteDimension
4607// API call, and error handling.
4608//
4609// This method is useful when you want to inject custom logic or configuration
4610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4611//
4612//
4613//    // Example sending a request using the DeleteDimensionRequest method.
4614//    req, resp := client.DeleteDimensionRequest(params)
4615//
4616//    err := req.Send()
4617//    if err == nil { // resp is now filled
4618//        fmt.Println(resp)
4619//    }
4620func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
4621	op := &request.Operation{
4622		Name:       opDeleteDimension,
4623		HTTPMethod: "DELETE",
4624		HTTPPath:   "/dimensions/{name}",
4625	}
4626
4627	if input == nil {
4628		input = &DeleteDimensionInput{}
4629	}
4630
4631	output = &DeleteDimensionOutput{}
4632	req = c.newRequest(op, input, output)
4633	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4634	return
4635}
4636
4637// DeleteDimension API operation for AWS IoT.
4638//
4639// Removes the specified dimension from your AWS account.
4640//
4641// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4642// with awserr.Error's Code and Message methods to get detailed information about
4643// the error.
4644//
4645// See the AWS API reference guide for AWS IoT's
4646// API operation DeleteDimension for usage and error information.
4647//
4648// Returned Error Types:
4649//   * InternalFailureException
4650//   An unexpected error has occurred.
4651//
4652//   * InvalidRequestException
4653//   The request is not valid.
4654//
4655//   * ThrottlingException
4656//   The rate exceeds the limit.
4657//
4658func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
4659	req, out := c.DeleteDimensionRequest(input)
4660	return out, req.Send()
4661}
4662
4663// DeleteDimensionWithContext is the same as DeleteDimension with the addition of
4664// the ability to pass a context and additional request options.
4665//
4666// See DeleteDimension for details on how to use this API operation.
4667//
4668// The context must be non-nil and will be used for request cancellation. If
4669// the context is nil a panic will occur. In the future the SDK may create
4670// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4671// for more information on using Contexts.
4672func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
4673	req, out := c.DeleteDimensionRequest(input)
4674	req.SetContext(ctx)
4675	req.ApplyOptions(opts...)
4676	return out, req.Send()
4677}
4678
4679const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
4680
4681// DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
4682// client's request for the DeleteDomainConfiguration operation. The "output" return
4683// value will be populated with the request's response once the request completes
4684// successfully.
4685//
4686// Use "Send" method on the returned Request to send the API call to the service.
4687// the "output" return value is not valid until after Send returns without error.
4688//
4689// See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
4690// API call, and error handling.
4691//
4692// This method is useful when you want to inject custom logic or configuration
4693// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4694//
4695//
4696//    // Example sending a request using the DeleteDomainConfigurationRequest method.
4697//    req, resp := client.DeleteDomainConfigurationRequest(params)
4698//
4699//    err := req.Send()
4700//    if err == nil { // resp is now filled
4701//        fmt.Println(resp)
4702//    }
4703func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
4704	op := &request.Operation{
4705		Name:       opDeleteDomainConfiguration,
4706		HTTPMethod: "DELETE",
4707		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
4708	}
4709
4710	if input == nil {
4711		input = &DeleteDomainConfigurationInput{}
4712	}
4713
4714	output = &DeleteDomainConfigurationOutput{}
4715	req = c.newRequest(op, input, output)
4716	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4717	return
4718}
4719
4720// DeleteDomainConfiguration API operation for AWS IoT.
4721//
4722// Deletes the specified domain configuration.
4723//
4724// The domain configuration feature is in public preview and is subject to change.
4725//
4726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4727// with awserr.Error's Code and Message methods to get detailed information about
4728// the error.
4729//
4730// See the AWS API reference guide for AWS IoT's
4731// API operation DeleteDomainConfiguration for usage and error information.
4732//
4733// Returned Error Types:
4734//   * ResourceNotFoundException
4735//   The specified resource does not exist.
4736//
4737//   * ThrottlingException
4738//   The rate exceeds the limit.
4739//
4740//   * UnauthorizedException
4741//   You are not authorized to perform this operation.
4742//
4743//   * ServiceUnavailableException
4744//   The service is temporarily unavailable.
4745//
4746//   * InternalFailureException
4747//   An unexpected error has occurred.
4748//
4749//   * InvalidRequestException
4750//   The request is not valid.
4751//
4752func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
4753	req, out := c.DeleteDomainConfigurationRequest(input)
4754	return out, req.Send()
4755}
4756
4757// DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
4758// the ability to pass a context and additional request options.
4759//
4760// See DeleteDomainConfiguration for details on how to use this API operation.
4761//
4762// The context must be non-nil and will be used for request cancellation. If
4763// the context is nil a panic will occur. In the future the SDK may create
4764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4765// for more information on using Contexts.
4766func (c *IoT) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
4767	req, out := c.DeleteDomainConfigurationRequest(input)
4768	req.SetContext(ctx)
4769	req.ApplyOptions(opts...)
4770	return out, req.Send()
4771}
4772
4773const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
4774
4775// DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
4776// client's request for the DeleteDynamicThingGroup operation. The "output" return
4777// value will be populated with the request's response once the request completes
4778// successfully.
4779//
4780// Use "Send" method on the returned Request to send the API call to the service.
4781// the "output" return value is not valid until after Send returns without error.
4782//
4783// See DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
4784// API call, and error handling.
4785//
4786// This method is useful when you want to inject custom logic or configuration
4787// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4788//
4789//
4790//    // Example sending a request using the DeleteDynamicThingGroupRequest method.
4791//    req, resp := client.DeleteDynamicThingGroupRequest(params)
4792//
4793//    err := req.Send()
4794//    if err == nil { // resp is now filled
4795//        fmt.Println(resp)
4796//    }
4797func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
4798	op := &request.Operation{
4799		Name:       opDeleteDynamicThingGroup,
4800		HTTPMethod: "DELETE",
4801		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
4802	}
4803
4804	if input == nil {
4805		input = &DeleteDynamicThingGroupInput{}
4806	}
4807
4808	output = &DeleteDynamicThingGroupOutput{}
4809	req = c.newRequest(op, input, output)
4810	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4811	return
4812}
4813
4814// DeleteDynamicThingGroup API operation for AWS IoT.
4815//
4816// Deletes a dynamic thing group.
4817//
4818// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4819// with awserr.Error's Code and Message methods to get detailed information about
4820// the error.
4821//
4822// See the AWS API reference guide for AWS IoT's
4823// API operation DeleteDynamicThingGroup for usage and error information.
4824//
4825// Returned Error Types:
4826//   * InvalidRequestException
4827//   The request is not valid.
4828//
4829//   * VersionConflictException
4830//   An exception thrown when the version of an entity specified with the expectedVersion
4831//   parameter does not match the latest version in the system.
4832//
4833//   * ThrottlingException
4834//   The rate exceeds the limit.
4835//
4836//   * InternalFailureException
4837//   An unexpected error has occurred.
4838//
4839func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
4840	req, out := c.DeleteDynamicThingGroupRequest(input)
4841	return out, req.Send()
4842}
4843
4844// DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
4845// the ability to pass a context and additional request options.
4846//
4847// See DeleteDynamicThingGroup for details on how to use this API operation.
4848//
4849// The context must be non-nil and will be used for request cancellation. If
4850// the context is nil a panic will occur. In the future the SDK may create
4851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4852// for more information on using Contexts.
4853func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
4854	req, out := c.DeleteDynamicThingGroupRequest(input)
4855	req.SetContext(ctx)
4856	req.ApplyOptions(opts...)
4857	return out, req.Send()
4858}
4859
4860const opDeleteJob = "DeleteJob"
4861
4862// DeleteJobRequest generates a "aws/request.Request" representing the
4863// client's request for the DeleteJob operation. The "output" return
4864// value will be populated with the request's response once the request completes
4865// successfully.
4866//
4867// Use "Send" method on the returned Request to send the API call to the service.
4868// the "output" return value is not valid until after Send returns without error.
4869//
4870// See DeleteJob for more information on using the DeleteJob
4871// API call, and error handling.
4872//
4873// This method is useful when you want to inject custom logic or configuration
4874// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4875//
4876//
4877//    // Example sending a request using the DeleteJobRequest method.
4878//    req, resp := client.DeleteJobRequest(params)
4879//
4880//    err := req.Send()
4881//    if err == nil { // resp is now filled
4882//        fmt.Println(resp)
4883//    }
4884func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
4885	op := &request.Operation{
4886		Name:       opDeleteJob,
4887		HTTPMethod: "DELETE",
4888		HTTPPath:   "/jobs/{jobId}",
4889	}
4890
4891	if input == nil {
4892		input = &DeleteJobInput{}
4893	}
4894
4895	output = &DeleteJobOutput{}
4896	req = c.newRequest(op, input, output)
4897	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4898	return
4899}
4900
4901// DeleteJob API operation for AWS IoT.
4902//
4903// Deletes a job and its related job executions.
4904//
4905// Deleting a job may take time, depending on the number of job executions created
4906// for the job and various other factors. While the job is being deleted, the
4907// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
4908// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
4909// result in an error.
4910//
4911// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
4912// a LimitExceededException will occur.
4913//
4914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4915// with awserr.Error's Code and Message methods to get detailed information about
4916// the error.
4917//
4918// See the AWS API reference guide for AWS IoT's
4919// API operation DeleteJob for usage and error information.
4920//
4921// Returned Error Types:
4922//   * InvalidRequestException
4923//   The request is not valid.
4924//
4925//   * InvalidStateTransitionException
4926//   An attempt was made to change to an invalid state, for example by deleting
4927//   a job or a job execution which is "IN_PROGRESS" without setting the force
4928//   parameter.
4929//
4930//   * ResourceNotFoundException
4931//   The specified resource does not exist.
4932//
4933//   * LimitExceededException
4934//   A limit has been exceeded.
4935//
4936//   * ThrottlingException
4937//   The rate exceeds the limit.
4938//
4939//   * ServiceUnavailableException
4940//   The service is temporarily unavailable.
4941//
4942func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
4943	req, out := c.DeleteJobRequest(input)
4944	return out, req.Send()
4945}
4946
4947// DeleteJobWithContext is the same as DeleteJob with the addition of
4948// the ability to pass a context and additional request options.
4949//
4950// See DeleteJob for details on how to use this API operation.
4951//
4952// The context must be non-nil and will be used for request cancellation. If
4953// the context is nil a panic will occur. In the future the SDK may create
4954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4955// for more information on using Contexts.
4956func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
4957	req, out := c.DeleteJobRequest(input)
4958	req.SetContext(ctx)
4959	req.ApplyOptions(opts...)
4960	return out, req.Send()
4961}
4962
4963const opDeleteJobExecution = "DeleteJobExecution"
4964
4965// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
4966// client's request for the DeleteJobExecution operation. The "output" return
4967// value will be populated with the request's response once the request completes
4968// successfully.
4969//
4970// Use "Send" method on the returned Request to send the API call to the service.
4971// the "output" return value is not valid until after Send returns without error.
4972//
4973// See DeleteJobExecution for more information on using the DeleteJobExecution
4974// API call, and error handling.
4975//
4976// This method is useful when you want to inject custom logic or configuration
4977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4978//
4979//
4980//    // Example sending a request using the DeleteJobExecutionRequest method.
4981//    req, resp := client.DeleteJobExecutionRequest(params)
4982//
4983//    err := req.Send()
4984//    if err == nil { // resp is now filled
4985//        fmt.Println(resp)
4986//    }
4987func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
4988	op := &request.Operation{
4989		Name:       opDeleteJobExecution,
4990		HTTPMethod: "DELETE",
4991		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
4992	}
4993
4994	if input == nil {
4995		input = &DeleteJobExecutionInput{}
4996	}
4997
4998	output = &DeleteJobExecutionOutput{}
4999	req = c.newRequest(op, input, output)
5000	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5001	return
5002}
5003
5004// DeleteJobExecution API operation for AWS IoT.
5005//
5006// Deletes a job execution.
5007//
5008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5009// with awserr.Error's Code and Message methods to get detailed information about
5010// the error.
5011//
5012// See the AWS API reference guide for AWS IoT's
5013// API operation DeleteJobExecution for usage and error information.
5014//
5015// Returned Error Types:
5016//   * InvalidRequestException
5017//   The request is not valid.
5018//
5019//   * InvalidStateTransitionException
5020//   An attempt was made to change to an invalid state, for example by deleting
5021//   a job or a job execution which is "IN_PROGRESS" without setting the force
5022//   parameter.
5023//
5024//   * ResourceNotFoundException
5025//   The specified resource does not exist.
5026//
5027//   * ThrottlingException
5028//   The rate exceeds the limit.
5029//
5030//   * ServiceUnavailableException
5031//   The service is temporarily unavailable.
5032//
5033func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
5034	req, out := c.DeleteJobExecutionRequest(input)
5035	return out, req.Send()
5036}
5037
5038// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
5039// the ability to pass a context and additional request options.
5040//
5041// See DeleteJobExecution for details on how to use this API operation.
5042//
5043// The context must be non-nil and will be used for request cancellation. If
5044// the context is nil a panic will occur. In the future the SDK may create
5045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5046// for more information on using Contexts.
5047func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
5048	req, out := c.DeleteJobExecutionRequest(input)
5049	req.SetContext(ctx)
5050	req.ApplyOptions(opts...)
5051	return out, req.Send()
5052}
5053
5054const opDeleteMitigationAction = "DeleteMitigationAction"
5055
5056// DeleteMitigationActionRequest generates a "aws/request.Request" representing the
5057// client's request for the DeleteMitigationAction operation. The "output" return
5058// value will be populated with the request's response once the request completes
5059// successfully.
5060//
5061// Use "Send" method on the returned Request to send the API call to the service.
5062// the "output" return value is not valid until after Send returns without error.
5063//
5064// See DeleteMitigationAction for more information on using the DeleteMitigationAction
5065// API call, and error handling.
5066//
5067// This method is useful when you want to inject custom logic or configuration
5068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5069//
5070//
5071//    // Example sending a request using the DeleteMitigationActionRequest method.
5072//    req, resp := client.DeleteMitigationActionRequest(params)
5073//
5074//    err := req.Send()
5075//    if err == nil { // resp is now filled
5076//        fmt.Println(resp)
5077//    }
5078func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
5079	op := &request.Operation{
5080		Name:       opDeleteMitigationAction,
5081		HTTPMethod: "DELETE",
5082		HTTPPath:   "/mitigationactions/actions/{actionName}",
5083	}
5084
5085	if input == nil {
5086		input = &DeleteMitigationActionInput{}
5087	}
5088
5089	output = &DeleteMitigationActionOutput{}
5090	req = c.newRequest(op, input, output)
5091	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5092	return
5093}
5094
5095// DeleteMitigationAction API operation for AWS IoT.
5096//
5097// Deletes a defined mitigation action from your AWS account.
5098//
5099// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5100// with awserr.Error's Code and Message methods to get detailed information about
5101// the error.
5102//
5103// See the AWS API reference guide for AWS IoT's
5104// API operation DeleteMitigationAction for usage and error information.
5105//
5106// Returned Error Types:
5107//   * InvalidRequestException
5108//   The request is not valid.
5109//
5110//   * ThrottlingException
5111//   The rate exceeds the limit.
5112//
5113//   * InternalFailureException
5114//   An unexpected error has occurred.
5115//
5116func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
5117	req, out := c.DeleteMitigationActionRequest(input)
5118	return out, req.Send()
5119}
5120
5121// DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
5122// the ability to pass a context and additional request options.
5123//
5124// See DeleteMitigationAction for details on how to use this API operation.
5125//
5126// The context must be non-nil and will be used for request cancellation. If
5127// the context is nil a panic will occur. In the future the SDK may create
5128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5129// for more information on using Contexts.
5130func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
5131	req, out := c.DeleteMitigationActionRequest(input)
5132	req.SetContext(ctx)
5133	req.ApplyOptions(opts...)
5134	return out, req.Send()
5135}
5136
5137const opDeleteOTAUpdate = "DeleteOTAUpdate"
5138
5139// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
5140// client's request for the DeleteOTAUpdate operation. The "output" return
5141// value will be populated with the request's response once the request completes
5142// successfully.
5143//
5144// Use "Send" method on the returned Request to send the API call to the service.
5145// the "output" return value is not valid until after Send returns without error.
5146//
5147// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
5148// API call, and error handling.
5149//
5150// This method is useful when you want to inject custom logic or configuration
5151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5152//
5153//
5154//    // Example sending a request using the DeleteOTAUpdateRequest method.
5155//    req, resp := client.DeleteOTAUpdateRequest(params)
5156//
5157//    err := req.Send()
5158//    if err == nil { // resp is now filled
5159//        fmt.Println(resp)
5160//    }
5161func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
5162	op := &request.Operation{
5163		Name:       opDeleteOTAUpdate,
5164		HTTPMethod: "DELETE",
5165		HTTPPath:   "/otaUpdates/{otaUpdateId}",
5166	}
5167
5168	if input == nil {
5169		input = &DeleteOTAUpdateInput{}
5170	}
5171
5172	output = &DeleteOTAUpdateOutput{}
5173	req = c.newRequest(op, input, output)
5174	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5175	return
5176}
5177
5178// DeleteOTAUpdate API operation for AWS IoT.
5179//
5180// Delete an OTA update.
5181//
5182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5183// with awserr.Error's Code and Message methods to get detailed information about
5184// the error.
5185//
5186// See the AWS API reference guide for AWS IoT's
5187// API operation DeleteOTAUpdate for usage and error information.
5188//
5189// Returned Error Types:
5190//   * InvalidRequestException
5191//   The request is not valid.
5192//
5193//   * ResourceNotFoundException
5194//   The specified resource does not exist.
5195//
5196//   * ThrottlingException
5197//   The rate exceeds the limit.
5198//
5199//   * UnauthorizedException
5200//   You are not authorized to perform this operation.
5201//
5202//   * InternalFailureException
5203//   An unexpected error has occurred.
5204//
5205//   * ServiceUnavailableException
5206//   The service is temporarily unavailable.
5207//
5208//   * VersionConflictException
5209//   An exception thrown when the version of an entity specified with the expectedVersion
5210//   parameter does not match the latest version in the system.
5211//
5212func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
5213	req, out := c.DeleteOTAUpdateRequest(input)
5214	return out, req.Send()
5215}
5216
5217// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
5218// the ability to pass a context and additional request options.
5219//
5220// See DeleteOTAUpdate for details on how to use this API operation.
5221//
5222// The context must be non-nil and will be used for request cancellation. If
5223// the context is nil a panic will occur. In the future the SDK may create
5224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5225// for more information on using Contexts.
5226func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
5227	req, out := c.DeleteOTAUpdateRequest(input)
5228	req.SetContext(ctx)
5229	req.ApplyOptions(opts...)
5230	return out, req.Send()
5231}
5232
5233const opDeletePolicy = "DeletePolicy"
5234
5235// DeletePolicyRequest generates a "aws/request.Request" representing the
5236// client's request for the DeletePolicy operation. The "output" return
5237// value will be populated with the request's response once the request completes
5238// successfully.
5239//
5240// Use "Send" method on the returned Request to send the API call to the service.
5241// the "output" return value is not valid until after Send returns without error.
5242//
5243// See DeletePolicy for more information on using the DeletePolicy
5244// API call, and error handling.
5245//
5246// This method is useful when you want to inject custom logic or configuration
5247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5248//
5249//
5250//    // Example sending a request using the DeletePolicyRequest method.
5251//    req, resp := client.DeletePolicyRequest(params)
5252//
5253//    err := req.Send()
5254//    if err == nil { // resp is now filled
5255//        fmt.Println(resp)
5256//    }
5257func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
5258	op := &request.Operation{
5259		Name:       opDeletePolicy,
5260		HTTPMethod: "DELETE",
5261		HTTPPath:   "/policies/{policyName}",
5262	}
5263
5264	if input == nil {
5265		input = &DeletePolicyInput{}
5266	}
5267
5268	output = &DeletePolicyOutput{}
5269	req = c.newRequest(op, input, output)
5270	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5271	return
5272}
5273
5274// DeletePolicy API operation for AWS IoT.
5275//
5276// Deletes the specified policy.
5277//
5278// A policy cannot be deleted if it has non-default versions or it is attached
5279// to any certificate.
5280//
5281// To delete a policy, use the DeletePolicyVersion API to delete all non-default
5282// versions of the policy; use the DetachPrincipalPolicy API to detach the policy
5283// from any certificate; and then use the DeletePolicy API to delete the policy.
5284//
5285// When a policy is deleted using DeletePolicy, its default version is deleted
5286// with it.
5287//
5288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5289// with awserr.Error's Code and Message methods to get detailed information about
5290// the error.
5291//
5292// See the AWS API reference guide for AWS IoT's
5293// API operation DeletePolicy for usage and error information.
5294//
5295// Returned Error Types:
5296//   * DeleteConflictException
5297//   You can't delete the resource because it is attached to one or more resources.
5298//
5299//   * ResourceNotFoundException
5300//   The specified resource does not exist.
5301//
5302//   * InvalidRequestException
5303//   The request is not valid.
5304//
5305//   * ThrottlingException
5306//   The rate exceeds the limit.
5307//
5308//   * UnauthorizedException
5309//   You are not authorized to perform this operation.
5310//
5311//   * ServiceUnavailableException
5312//   The service is temporarily unavailable.
5313//
5314//   * InternalFailureException
5315//   An unexpected error has occurred.
5316//
5317func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
5318	req, out := c.DeletePolicyRequest(input)
5319	return out, req.Send()
5320}
5321
5322// DeletePolicyWithContext is the same as DeletePolicy with the addition of
5323// the ability to pass a context and additional request options.
5324//
5325// See DeletePolicy for details on how to use this API operation.
5326//
5327// The context must be non-nil and will be used for request cancellation. If
5328// the context is nil a panic will occur. In the future the SDK may create
5329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5330// for more information on using Contexts.
5331func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
5332	req, out := c.DeletePolicyRequest(input)
5333	req.SetContext(ctx)
5334	req.ApplyOptions(opts...)
5335	return out, req.Send()
5336}
5337
5338const opDeletePolicyVersion = "DeletePolicyVersion"
5339
5340// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
5341// client's request for the DeletePolicyVersion operation. The "output" return
5342// value will be populated with the request's response once the request completes
5343// successfully.
5344//
5345// Use "Send" method on the returned Request to send the API call to the service.
5346// the "output" return value is not valid until after Send returns without error.
5347//
5348// See DeletePolicyVersion for more information on using the DeletePolicyVersion
5349// API call, and error handling.
5350//
5351// This method is useful when you want to inject custom logic or configuration
5352// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5353//
5354//
5355//    // Example sending a request using the DeletePolicyVersionRequest method.
5356//    req, resp := client.DeletePolicyVersionRequest(params)
5357//
5358//    err := req.Send()
5359//    if err == nil { // resp is now filled
5360//        fmt.Println(resp)
5361//    }
5362func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
5363	op := &request.Operation{
5364		Name:       opDeletePolicyVersion,
5365		HTTPMethod: "DELETE",
5366		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
5367	}
5368
5369	if input == nil {
5370		input = &DeletePolicyVersionInput{}
5371	}
5372
5373	output = &DeletePolicyVersionOutput{}
5374	req = c.newRequest(op, input, output)
5375	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5376	return
5377}
5378
5379// DeletePolicyVersion API operation for AWS IoT.
5380//
5381// Deletes the specified version of the specified policy. You cannot delete
5382// the default version of a policy using this API. To delete the default version
5383// of a policy, use DeletePolicy. To find out which version of a policy is marked
5384// as the default version, use ListPolicyVersions.
5385//
5386// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5387// with awserr.Error's Code and Message methods to get detailed information about
5388// the error.
5389//
5390// See the AWS API reference guide for AWS IoT's
5391// API operation DeletePolicyVersion for usage and error information.
5392//
5393// Returned Error Types:
5394//   * DeleteConflictException
5395//   You can't delete the resource because it is attached to one or more resources.
5396//
5397//   * ResourceNotFoundException
5398//   The specified resource does not exist.
5399//
5400//   * InvalidRequestException
5401//   The request is not valid.
5402//
5403//   * ThrottlingException
5404//   The rate exceeds the limit.
5405//
5406//   * UnauthorizedException
5407//   You are not authorized to perform this operation.
5408//
5409//   * ServiceUnavailableException
5410//   The service is temporarily unavailable.
5411//
5412//   * InternalFailureException
5413//   An unexpected error has occurred.
5414//
5415func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
5416	req, out := c.DeletePolicyVersionRequest(input)
5417	return out, req.Send()
5418}
5419
5420// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
5421// the ability to pass a context and additional request options.
5422//
5423// See DeletePolicyVersion for details on how to use this API operation.
5424//
5425// The context must be non-nil and will be used for request cancellation. If
5426// the context is nil a panic will occur. In the future the SDK may create
5427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5428// for more information on using Contexts.
5429func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
5430	req, out := c.DeletePolicyVersionRequest(input)
5431	req.SetContext(ctx)
5432	req.ApplyOptions(opts...)
5433	return out, req.Send()
5434}
5435
5436const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
5437
5438// DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
5439// client's request for the DeleteProvisioningTemplate operation. The "output" return
5440// value will be populated with the request's response once the request completes
5441// successfully.
5442//
5443// Use "Send" method on the returned Request to send the API call to the service.
5444// the "output" return value is not valid until after Send returns without error.
5445//
5446// See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
5447// API call, and error handling.
5448//
5449// This method is useful when you want to inject custom logic or configuration
5450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5451//
5452//
5453//    // Example sending a request using the DeleteProvisioningTemplateRequest method.
5454//    req, resp := client.DeleteProvisioningTemplateRequest(params)
5455//
5456//    err := req.Send()
5457//    if err == nil { // resp is now filled
5458//        fmt.Println(resp)
5459//    }
5460func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
5461	op := &request.Operation{
5462		Name:       opDeleteProvisioningTemplate,
5463		HTTPMethod: "DELETE",
5464		HTTPPath:   "/provisioning-templates/{templateName}",
5465	}
5466
5467	if input == nil {
5468		input = &DeleteProvisioningTemplateInput{}
5469	}
5470
5471	output = &DeleteProvisioningTemplateOutput{}
5472	req = c.newRequest(op, input, output)
5473	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5474	return
5475}
5476
5477// DeleteProvisioningTemplate API operation for AWS IoT.
5478//
5479// Deletes a fleet provisioning template.
5480//
5481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5482// with awserr.Error's Code and Message methods to get detailed information about
5483// the error.
5484//
5485// See the AWS API reference guide for AWS IoT's
5486// API operation DeleteProvisioningTemplate for usage and error information.
5487//
5488// Returned Error Types:
5489//   * InternalFailureException
5490//   An unexpected error has occurred.
5491//
5492//   * InvalidRequestException
5493//   The request is not valid.
5494//
5495//   * ResourceNotFoundException
5496//   The specified resource does not exist.
5497//
5498//   * DeleteConflictException
5499//   You can't delete the resource because it is attached to one or more resources.
5500//
5501//   * ThrottlingException
5502//   The rate exceeds the limit.
5503//
5504//   * ConflictingResourceUpdateException
5505//   A conflicting resource update exception. This exception is thrown when two
5506//   pending updates cause a conflict.
5507//
5508//   * UnauthorizedException
5509//   You are not authorized to perform this operation.
5510//
5511func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
5512	req, out := c.DeleteProvisioningTemplateRequest(input)
5513	return out, req.Send()
5514}
5515
5516// DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
5517// the ability to pass a context and additional request options.
5518//
5519// See DeleteProvisioningTemplate for details on how to use this API operation.
5520//
5521// The context must be non-nil and will be used for request cancellation. If
5522// the context is nil a panic will occur. In the future the SDK may create
5523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5524// for more information on using Contexts.
5525func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
5526	req, out := c.DeleteProvisioningTemplateRequest(input)
5527	req.SetContext(ctx)
5528	req.ApplyOptions(opts...)
5529	return out, req.Send()
5530}
5531
5532const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
5533
5534// DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
5535// client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
5536// value will be populated with the request's response once the request completes
5537// successfully.
5538//
5539// Use "Send" method on the returned Request to send the API call to the service.
5540// the "output" return value is not valid until after Send returns without error.
5541//
5542// See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
5543// API call, and error handling.
5544//
5545// This method is useful when you want to inject custom logic or configuration
5546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5547//
5548//
5549//    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
5550//    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
5551//
5552//    err := req.Send()
5553//    if err == nil { // resp is now filled
5554//        fmt.Println(resp)
5555//    }
5556func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
5557	op := &request.Operation{
5558		Name:       opDeleteProvisioningTemplateVersion,
5559		HTTPMethod: "DELETE",
5560		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
5561	}
5562
5563	if input == nil {
5564		input = &DeleteProvisioningTemplateVersionInput{}
5565	}
5566
5567	output = &DeleteProvisioningTemplateVersionOutput{}
5568	req = c.newRequest(op, input, output)
5569	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5570	return
5571}
5572
5573// DeleteProvisioningTemplateVersion API operation for AWS IoT.
5574//
5575// Deletes a fleet provisioning template version.
5576//
5577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5578// with awserr.Error's Code and Message methods to get detailed information about
5579// the error.
5580//
5581// See the AWS API reference guide for AWS IoT's
5582// API operation DeleteProvisioningTemplateVersion for usage and error information.
5583//
5584// Returned Error Types:
5585//   * InternalFailureException
5586//   An unexpected error has occurred.
5587//
5588//   * InvalidRequestException
5589//   The request is not valid.
5590//
5591//   * ThrottlingException
5592//   The rate exceeds the limit.
5593//
5594//   * ResourceNotFoundException
5595//   The specified resource does not exist.
5596//
5597//   * UnauthorizedException
5598//   You are not authorized to perform this operation.
5599//
5600//   * ConflictingResourceUpdateException
5601//   A conflicting resource update exception. This exception is thrown when two
5602//   pending updates cause a conflict.
5603//
5604//   * DeleteConflictException
5605//   You can't delete the resource because it is attached to one or more resources.
5606//
5607func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
5608	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5609	return out, req.Send()
5610}
5611
5612// DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
5613// the ability to pass a context and additional request options.
5614//
5615// See DeleteProvisioningTemplateVersion for details on how to use this API operation.
5616//
5617// The context must be non-nil and will be used for request cancellation. If
5618// the context is nil a panic will occur. In the future the SDK may create
5619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5620// for more information on using Contexts.
5621func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
5622	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5623	req.SetContext(ctx)
5624	req.ApplyOptions(opts...)
5625	return out, req.Send()
5626}
5627
5628const opDeleteRegistrationCode = "DeleteRegistrationCode"
5629
5630// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
5631// client's request for the DeleteRegistrationCode operation. The "output" return
5632// value will be populated with the request's response once the request completes
5633// successfully.
5634//
5635// Use "Send" method on the returned Request to send the API call to the service.
5636// the "output" return value is not valid until after Send returns without error.
5637//
5638// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
5639// API call, and error handling.
5640//
5641// This method is useful when you want to inject custom logic or configuration
5642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5643//
5644//
5645//    // Example sending a request using the DeleteRegistrationCodeRequest method.
5646//    req, resp := client.DeleteRegistrationCodeRequest(params)
5647//
5648//    err := req.Send()
5649//    if err == nil { // resp is now filled
5650//        fmt.Println(resp)
5651//    }
5652func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
5653	op := &request.Operation{
5654		Name:       opDeleteRegistrationCode,
5655		HTTPMethod: "DELETE",
5656		HTTPPath:   "/registrationcode",
5657	}
5658
5659	if input == nil {
5660		input = &DeleteRegistrationCodeInput{}
5661	}
5662
5663	output = &DeleteRegistrationCodeOutput{}
5664	req = c.newRequest(op, input, output)
5665	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5666	return
5667}
5668
5669// DeleteRegistrationCode API operation for AWS IoT.
5670//
5671// Deletes a CA certificate registration code.
5672//
5673// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5674// with awserr.Error's Code and Message methods to get detailed information about
5675// the error.
5676//
5677// See the AWS API reference guide for AWS IoT's
5678// API operation DeleteRegistrationCode for usage and error information.
5679//
5680// Returned Error Types:
5681//   * ThrottlingException
5682//   The rate exceeds the limit.
5683//
5684//   * ResourceNotFoundException
5685//   The specified resource does not exist.
5686//
5687//   * UnauthorizedException
5688//   You are not authorized to perform this operation.
5689//
5690//   * ServiceUnavailableException
5691//   The service is temporarily unavailable.
5692//
5693//   * InternalFailureException
5694//   An unexpected error has occurred.
5695//
5696func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
5697	req, out := c.DeleteRegistrationCodeRequest(input)
5698	return out, req.Send()
5699}
5700
5701// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
5702// the ability to pass a context and additional request options.
5703//
5704// See DeleteRegistrationCode for details on how to use this API operation.
5705//
5706// The context must be non-nil and will be used for request cancellation. If
5707// the context is nil a panic will occur. In the future the SDK may create
5708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5709// for more information on using Contexts.
5710func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
5711	req, out := c.DeleteRegistrationCodeRequest(input)
5712	req.SetContext(ctx)
5713	req.ApplyOptions(opts...)
5714	return out, req.Send()
5715}
5716
5717const opDeleteRoleAlias = "DeleteRoleAlias"
5718
5719// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
5720// client's request for the DeleteRoleAlias operation. The "output" return
5721// value will be populated with the request's response once the request completes
5722// successfully.
5723//
5724// Use "Send" method on the returned Request to send the API call to the service.
5725// the "output" return value is not valid until after Send returns without error.
5726//
5727// See DeleteRoleAlias for more information on using the DeleteRoleAlias
5728// API call, and error handling.
5729//
5730// This method is useful when you want to inject custom logic or configuration
5731// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5732//
5733//
5734//    // Example sending a request using the DeleteRoleAliasRequest method.
5735//    req, resp := client.DeleteRoleAliasRequest(params)
5736//
5737//    err := req.Send()
5738//    if err == nil { // resp is now filled
5739//        fmt.Println(resp)
5740//    }
5741func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
5742	op := &request.Operation{
5743		Name:       opDeleteRoleAlias,
5744		HTTPMethod: "DELETE",
5745		HTTPPath:   "/role-aliases/{roleAlias}",
5746	}
5747
5748	if input == nil {
5749		input = &DeleteRoleAliasInput{}
5750	}
5751
5752	output = &DeleteRoleAliasOutput{}
5753	req = c.newRequest(op, input, output)
5754	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5755	return
5756}
5757
5758// DeleteRoleAlias API operation for AWS IoT.
5759//
5760// Deletes a role alias
5761//
5762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5763// with awserr.Error's Code and Message methods to get detailed information about
5764// the error.
5765//
5766// See the AWS API reference guide for AWS IoT's
5767// API operation DeleteRoleAlias for usage and error information.
5768//
5769// Returned Error Types:
5770//   * DeleteConflictException
5771//   You can't delete the resource because it is attached to one or more resources.
5772//
5773//   * InvalidRequestException
5774//   The request is not valid.
5775//
5776//   * ThrottlingException
5777//   The rate exceeds the limit.
5778//
5779//   * UnauthorizedException
5780//   You are not authorized to perform this operation.
5781//
5782//   * ServiceUnavailableException
5783//   The service is temporarily unavailable.
5784//
5785//   * InternalFailureException
5786//   An unexpected error has occurred.
5787//
5788//   * ResourceNotFoundException
5789//   The specified resource does not exist.
5790//
5791func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
5792	req, out := c.DeleteRoleAliasRequest(input)
5793	return out, req.Send()
5794}
5795
5796// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
5797// the ability to pass a context and additional request options.
5798//
5799// See DeleteRoleAlias for details on how to use this API operation.
5800//
5801// The context must be non-nil and will be used for request cancellation. If
5802// the context is nil a panic will occur. In the future the SDK may create
5803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5804// for more information on using Contexts.
5805func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
5806	req, out := c.DeleteRoleAliasRequest(input)
5807	req.SetContext(ctx)
5808	req.ApplyOptions(opts...)
5809	return out, req.Send()
5810}
5811
5812const opDeleteScheduledAudit = "DeleteScheduledAudit"
5813
5814// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
5815// client's request for the DeleteScheduledAudit operation. The "output" return
5816// value will be populated with the request's response once the request completes
5817// successfully.
5818//
5819// Use "Send" method on the returned Request to send the API call to the service.
5820// the "output" return value is not valid until after Send returns without error.
5821//
5822// See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
5823// API call, and error handling.
5824//
5825// This method is useful when you want to inject custom logic or configuration
5826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5827//
5828//
5829//    // Example sending a request using the DeleteScheduledAuditRequest method.
5830//    req, resp := client.DeleteScheduledAuditRequest(params)
5831//
5832//    err := req.Send()
5833//    if err == nil { // resp is now filled
5834//        fmt.Println(resp)
5835//    }
5836func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
5837	op := &request.Operation{
5838		Name:       opDeleteScheduledAudit,
5839		HTTPMethod: "DELETE",
5840		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
5841	}
5842
5843	if input == nil {
5844		input = &DeleteScheduledAuditInput{}
5845	}
5846
5847	output = &DeleteScheduledAuditOutput{}
5848	req = c.newRequest(op, input, output)
5849	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5850	return
5851}
5852
5853// DeleteScheduledAudit API operation for AWS IoT.
5854//
5855// Deletes a scheduled audit.
5856//
5857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5858// with awserr.Error's Code and Message methods to get detailed information about
5859// the error.
5860//
5861// See the AWS API reference guide for AWS IoT's
5862// API operation DeleteScheduledAudit for usage and error information.
5863//
5864// Returned Error Types:
5865//   * InvalidRequestException
5866//   The request is not valid.
5867//
5868//   * ResourceNotFoundException
5869//   The specified resource does not exist.
5870//
5871//   * ThrottlingException
5872//   The rate exceeds the limit.
5873//
5874//   * InternalFailureException
5875//   An unexpected error has occurred.
5876//
5877func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
5878	req, out := c.DeleteScheduledAuditRequest(input)
5879	return out, req.Send()
5880}
5881
5882// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
5883// the ability to pass a context and additional request options.
5884//
5885// See DeleteScheduledAudit for details on how to use this API operation.
5886//
5887// The context must be non-nil and will be used for request cancellation. If
5888// the context is nil a panic will occur. In the future the SDK may create
5889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5890// for more information on using Contexts.
5891func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
5892	req, out := c.DeleteScheduledAuditRequest(input)
5893	req.SetContext(ctx)
5894	req.ApplyOptions(opts...)
5895	return out, req.Send()
5896}
5897
5898const opDeleteSecurityProfile = "DeleteSecurityProfile"
5899
5900// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
5901// client's request for the DeleteSecurityProfile operation. The "output" return
5902// value will be populated with the request's response once the request completes
5903// successfully.
5904//
5905// Use "Send" method on the returned Request to send the API call to the service.
5906// the "output" return value is not valid until after Send returns without error.
5907//
5908// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
5909// API call, and error handling.
5910//
5911// This method is useful when you want to inject custom logic or configuration
5912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5913//
5914//
5915//    // Example sending a request using the DeleteSecurityProfileRequest method.
5916//    req, resp := client.DeleteSecurityProfileRequest(params)
5917//
5918//    err := req.Send()
5919//    if err == nil { // resp is now filled
5920//        fmt.Println(resp)
5921//    }
5922func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
5923	op := &request.Operation{
5924		Name:       opDeleteSecurityProfile,
5925		HTTPMethod: "DELETE",
5926		HTTPPath:   "/security-profiles/{securityProfileName}",
5927	}
5928
5929	if input == nil {
5930		input = &DeleteSecurityProfileInput{}
5931	}
5932
5933	output = &DeleteSecurityProfileOutput{}
5934	req = c.newRequest(op, input, output)
5935	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5936	return
5937}
5938
5939// DeleteSecurityProfile API operation for AWS IoT.
5940//
5941// Deletes a Device Defender security profile.
5942//
5943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5944// with awserr.Error's Code and Message methods to get detailed information about
5945// the error.
5946//
5947// See the AWS API reference guide for AWS IoT's
5948// API operation DeleteSecurityProfile for usage and error information.
5949//
5950// Returned Error Types:
5951//   * InvalidRequestException
5952//   The request is not valid.
5953//
5954//   * ThrottlingException
5955//   The rate exceeds the limit.
5956//
5957//   * InternalFailureException
5958//   An unexpected error has occurred.
5959//
5960//   * VersionConflictException
5961//   An exception thrown when the version of an entity specified with the expectedVersion
5962//   parameter does not match the latest version in the system.
5963//
5964func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
5965	req, out := c.DeleteSecurityProfileRequest(input)
5966	return out, req.Send()
5967}
5968
5969// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
5970// the ability to pass a context and additional request options.
5971//
5972// See DeleteSecurityProfile for details on how to use this API operation.
5973//
5974// The context must be non-nil and will be used for request cancellation. If
5975// the context is nil a panic will occur. In the future the SDK may create
5976// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5977// for more information on using Contexts.
5978func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
5979	req, out := c.DeleteSecurityProfileRequest(input)
5980	req.SetContext(ctx)
5981	req.ApplyOptions(opts...)
5982	return out, req.Send()
5983}
5984
5985const opDeleteStream = "DeleteStream"
5986
5987// DeleteStreamRequest generates a "aws/request.Request" representing the
5988// client's request for the DeleteStream operation. The "output" return
5989// value will be populated with the request's response once the request completes
5990// successfully.
5991//
5992// Use "Send" method on the returned Request to send the API call to the service.
5993// the "output" return value is not valid until after Send returns without error.
5994//
5995// See DeleteStream for more information on using the DeleteStream
5996// API call, and error handling.
5997//
5998// This method is useful when you want to inject custom logic or configuration
5999// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6000//
6001//
6002//    // Example sending a request using the DeleteStreamRequest method.
6003//    req, resp := client.DeleteStreamRequest(params)
6004//
6005//    err := req.Send()
6006//    if err == nil { // resp is now filled
6007//        fmt.Println(resp)
6008//    }
6009func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
6010	op := &request.Operation{
6011		Name:       opDeleteStream,
6012		HTTPMethod: "DELETE",
6013		HTTPPath:   "/streams/{streamId}",
6014	}
6015
6016	if input == nil {
6017		input = &DeleteStreamInput{}
6018	}
6019
6020	output = &DeleteStreamOutput{}
6021	req = c.newRequest(op, input, output)
6022	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6023	return
6024}
6025
6026// DeleteStream API operation for AWS IoT.
6027//
6028// Deletes a stream.
6029//
6030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6031// with awserr.Error's Code and Message methods to get detailed information about
6032// the error.
6033//
6034// See the AWS API reference guide for AWS IoT's
6035// API operation DeleteStream for usage and error information.
6036//
6037// Returned Error Types:
6038//   * ResourceNotFoundException
6039//   The specified resource does not exist.
6040//
6041//   * DeleteConflictException
6042//   You can't delete the resource because it is attached to one or more resources.
6043//
6044//   * InvalidRequestException
6045//   The request is not valid.
6046//
6047//   * ThrottlingException
6048//   The rate exceeds the limit.
6049//
6050//   * UnauthorizedException
6051//   You are not authorized to perform this operation.
6052//
6053//   * ServiceUnavailableException
6054//   The service is temporarily unavailable.
6055//
6056//   * InternalFailureException
6057//   An unexpected error has occurred.
6058//
6059func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
6060	req, out := c.DeleteStreamRequest(input)
6061	return out, req.Send()
6062}
6063
6064// DeleteStreamWithContext is the same as DeleteStream with the addition of
6065// the ability to pass a context and additional request options.
6066//
6067// See DeleteStream for details on how to use this API operation.
6068//
6069// The context must be non-nil and will be used for request cancellation. If
6070// the context is nil a panic will occur. In the future the SDK may create
6071// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6072// for more information on using Contexts.
6073func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
6074	req, out := c.DeleteStreamRequest(input)
6075	req.SetContext(ctx)
6076	req.ApplyOptions(opts...)
6077	return out, req.Send()
6078}
6079
6080const opDeleteThing = "DeleteThing"
6081
6082// DeleteThingRequest generates a "aws/request.Request" representing the
6083// client's request for the DeleteThing operation. The "output" return
6084// value will be populated with the request's response once the request completes
6085// successfully.
6086//
6087// Use "Send" method on the returned Request to send the API call to the service.
6088// the "output" return value is not valid until after Send returns without error.
6089//
6090// See DeleteThing for more information on using the DeleteThing
6091// API call, and error handling.
6092//
6093// This method is useful when you want to inject custom logic or configuration
6094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6095//
6096//
6097//    // Example sending a request using the DeleteThingRequest method.
6098//    req, resp := client.DeleteThingRequest(params)
6099//
6100//    err := req.Send()
6101//    if err == nil { // resp is now filled
6102//        fmt.Println(resp)
6103//    }
6104func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
6105	op := &request.Operation{
6106		Name:       opDeleteThing,
6107		HTTPMethod: "DELETE",
6108		HTTPPath:   "/things/{thingName}",
6109	}
6110
6111	if input == nil {
6112		input = &DeleteThingInput{}
6113	}
6114
6115	output = &DeleteThingOutput{}
6116	req = c.newRequest(op, input, output)
6117	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6118	return
6119}
6120
6121// DeleteThing API operation for AWS IoT.
6122//
6123// Deletes the specified thing. Returns successfully with no error if the deletion
6124// is successful or you specify a thing that doesn't exist.
6125//
6126// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6127// with awserr.Error's Code and Message methods to get detailed information about
6128// the error.
6129//
6130// See the AWS API reference guide for AWS IoT's
6131// API operation DeleteThing for usage and error information.
6132//
6133// Returned Error Types:
6134//   * ResourceNotFoundException
6135//   The specified resource does not exist.
6136//
6137//   * VersionConflictException
6138//   An exception thrown when the version of an entity specified with the expectedVersion
6139//   parameter does not match the latest version in the system.
6140//
6141//   * InvalidRequestException
6142//   The request is not valid.
6143//
6144//   * ThrottlingException
6145//   The rate exceeds the limit.
6146//
6147//   * UnauthorizedException
6148//   You are not authorized to perform this operation.
6149//
6150//   * ServiceUnavailableException
6151//   The service is temporarily unavailable.
6152//
6153//   * InternalFailureException
6154//   An unexpected error has occurred.
6155//
6156func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
6157	req, out := c.DeleteThingRequest(input)
6158	return out, req.Send()
6159}
6160
6161// DeleteThingWithContext is the same as DeleteThing with the addition of
6162// the ability to pass a context and additional request options.
6163//
6164// See DeleteThing for details on how to use this API operation.
6165//
6166// The context must be non-nil and will be used for request cancellation. If
6167// the context is nil a panic will occur. In the future the SDK may create
6168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6169// for more information on using Contexts.
6170func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
6171	req, out := c.DeleteThingRequest(input)
6172	req.SetContext(ctx)
6173	req.ApplyOptions(opts...)
6174	return out, req.Send()
6175}
6176
6177const opDeleteThingGroup = "DeleteThingGroup"
6178
6179// DeleteThingGroupRequest generates a "aws/request.Request" representing the
6180// client's request for the DeleteThingGroup operation. The "output" return
6181// value will be populated with the request's response once the request completes
6182// successfully.
6183//
6184// Use "Send" method on the returned Request to send the API call to the service.
6185// the "output" return value is not valid until after Send returns without error.
6186//
6187// See DeleteThingGroup for more information on using the DeleteThingGroup
6188// API call, and error handling.
6189//
6190// This method is useful when you want to inject custom logic or configuration
6191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6192//
6193//
6194//    // Example sending a request using the DeleteThingGroupRequest method.
6195//    req, resp := client.DeleteThingGroupRequest(params)
6196//
6197//    err := req.Send()
6198//    if err == nil { // resp is now filled
6199//        fmt.Println(resp)
6200//    }
6201func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
6202	op := &request.Operation{
6203		Name:       opDeleteThingGroup,
6204		HTTPMethod: "DELETE",
6205		HTTPPath:   "/thing-groups/{thingGroupName}",
6206	}
6207
6208	if input == nil {
6209		input = &DeleteThingGroupInput{}
6210	}
6211
6212	output = &DeleteThingGroupOutput{}
6213	req = c.newRequest(op, input, output)
6214	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6215	return
6216}
6217
6218// DeleteThingGroup API operation for AWS IoT.
6219//
6220// Deletes a thing group.
6221//
6222// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6223// with awserr.Error's Code and Message methods to get detailed information about
6224// the error.
6225//
6226// See the AWS API reference guide for AWS IoT's
6227// API operation DeleteThingGroup for usage and error information.
6228//
6229// Returned Error Types:
6230//   * InvalidRequestException
6231//   The request is not valid.
6232//
6233//   * VersionConflictException
6234//   An exception thrown when the version of an entity specified with the expectedVersion
6235//   parameter does not match the latest version in the system.
6236//
6237//   * ThrottlingException
6238//   The rate exceeds the limit.
6239//
6240//   * InternalFailureException
6241//   An unexpected error has occurred.
6242//
6243func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
6244	req, out := c.DeleteThingGroupRequest(input)
6245	return out, req.Send()
6246}
6247
6248// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
6249// the ability to pass a context and additional request options.
6250//
6251// See DeleteThingGroup for details on how to use this API operation.
6252//
6253// The context must be non-nil and will be used for request cancellation. If
6254// the context is nil a panic will occur. In the future the SDK may create
6255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6256// for more information on using Contexts.
6257func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
6258	req, out := c.DeleteThingGroupRequest(input)
6259	req.SetContext(ctx)
6260	req.ApplyOptions(opts...)
6261	return out, req.Send()
6262}
6263
6264const opDeleteThingType = "DeleteThingType"
6265
6266// DeleteThingTypeRequest generates a "aws/request.Request" representing the
6267// client's request for the DeleteThingType operation. The "output" return
6268// value will be populated with the request's response once the request completes
6269// successfully.
6270//
6271// Use "Send" method on the returned Request to send the API call to the service.
6272// the "output" return value is not valid until after Send returns without error.
6273//
6274// See DeleteThingType for more information on using the DeleteThingType
6275// API call, and error handling.
6276//
6277// This method is useful when you want to inject custom logic or configuration
6278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6279//
6280//
6281//    // Example sending a request using the DeleteThingTypeRequest method.
6282//    req, resp := client.DeleteThingTypeRequest(params)
6283//
6284//    err := req.Send()
6285//    if err == nil { // resp is now filled
6286//        fmt.Println(resp)
6287//    }
6288func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
6289	op := &request.Operation{
6290		Name:       opDeleteThingType,
6291		HTTPMethod: "DELETE",
6292		HTTPPath:   "/thing-types/{thingTypeName}",
6293	}
6294
6295	if input == nil {
6296		input = &DeleteThingTypeInput{}
6297	}
6298
6299	output = &DeleteThingTypeOutput{}
6300	req = c.newRequest(op, input, output)
6301	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6302	return
6303}
6304
6305// DeleteThingType API operation for AWS IoT.
6306//
6307// Deletes the specified thing type. You cannot delete a thing type if it has
6308// things associated with it. To delete a thing type, first mark it as deprecated
6309// by calling DeprecateThingType, then remove any associated things by calling
6310// UpdateThing to change the thing type on any associated thing, and finally
6311// use DeleteThingType to delete the thing type.
6312//
6313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6314// with awserr.Error's Code and Message methods to get detailed information about
6315// the error.
6316//
6317// See the AWS API reference guide for AWS IoT's
6318// API operation DeleteThingType for usage and error information.
6319//
6320// Returned Error Types:
6321//   * ResourceNotFoundException
6322//   The specified resource does not exist.
6323//
6324//   * InvalidRequestException
6325//   The request is not valid.
6326//
6327//   * ThrottlingException
6328//   The rate exceeds the limit.
6329//
6330//   * UnauthorizedException
6331//   You are not authorized to perform this operation.
6332//
6333//   * ServiceUnavailableException
6334//   The service is temporarily unavailable.
6335//
6336//   * InternalFailureException
6337//   An unexpected error has occurred.
6338//
6339func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
6340	req, out := c.DeleteThingTypeRequest(input)
6341	return out, req.Send()
6342}
6343
6344// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
6345// the ability to pass a context and additional request options.
6346//
6347// See DeleteThingType for details on how to use this API operation.
6348//
6349// The context must be non-nil and will be used for request cancellation. If
6350// the context is nil a panic will occur. In the future the SDK may create
6351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6352// for more information on using Contexts.
6353func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
6354	req, out := c.DeleteThingTypeRequest(input)
6355	req.SetContext(ctx)
6356	req.ApplyOptions(opts...)
6357	return out, req.Send()
6358}
6359
6360const opDeleteTopicRule = "DeleteTopicRule"
6361
6362// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
6363// client's request for the DeleteTopicRule operation. The "output" return
6364// value will be populated with the request's response once the request completes
6365// successfully.
6366//
6367// Use "Send" method on the returned Request to send the API call to the service.
6368// the "output" return value is not valid until after Send returns without error.
6369//
6370// See DeleteTopicRule for more information on using the DeleteTopicRule
6371// API call, and error handling.
6372//
6373// This method is useful when you want to inject custom logic or configuration
6374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6375//
6376//
6377//    // Example sending a request using the DeleteTopicRuleRequest method.
6378//    req, resp := client.DeleteTopicRuleRequest(params)
6379//
6380//    err := req.Send()
6381//    if err == nil { // resp is now filled
6382//        fmt.Println(resp)
6383//    }
6384func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
6385	op := &request.Operation{
6386		Name:       opDeleteTopicRule,
6387		HTTPMethod: "DELETE",
6388		HTTPPath:   "/rules/{ruleName}",
6389	}
6390
6391	if input == nil {
6392		input = &DeleteTopicRuleInput{}
6393	}
6394
6395	output = &DeleteTopicRuleOutput{}
6396	req = c.newRequest(op, input, output)
6397	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6398	return
6399}
6400
6401// DeleteTopicRule API operation for AWS IoT.
6402//
6403// Deletes the rule.
6404//
6405// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6406// with awserr.Error's Code and Message methods to get detailed information about
6407// the error.
6408//
6409// See the AWS API reference guide for AWS IoT's
6410// API operation DeleteTopicRule for usage and error information.
6411//
6412// Returned Error Types:
6413//   * InternalException
6414//   An unexpected error has occurred.
6415//
6416//   * InvalidRequestException
6417//   The request is not valid.
6418//
6419//   * ServiceUnavailableException
6420//   The service is temporarily unavailable.
6421//
6422//   * UnauthorizedException
6423//   You are not authorized to perform this operation.
6424//
6425//   * ConflictingResourceUpdateException
6426//   A conflicting resource update exception. This exception is thrown when two
6427//   pending updates cause a conflict.
6428//
6429func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
6430	req, out := c.DeleteTopicRuleRequest(input)
6431	return out, req.Send()
6432}
6433
6434// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
6435// the ability to pass a context and additional request options.
6436//
6437// See DeleteTopicRule for details on how to use this API operation.
6438//
6439// The context must be non-nil and will be used for request cancellation. If
6440// the context is nil a panic will occur. In the future the SDK may create
6441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6442// for more information on using Contexts.
6443func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
6444	req, out := c.DeleteTopicRuleRequest(input)
6445	req.SetContext(ctx)
6446	req.ApplyOptions(opts...)
6447	return out, req.Send()
6448}
6449
6450const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
6451
6452// DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
6453// client's request for the DeleteTopicRuleDestination operation. The "output" return
6454// value will be populated with the request's response once the request completes
6455// successfully.
6456//
6457// Use "Send" method on the returned Request to send the API call to the service.
6458// the "output" return value is not valid until after Send returns without error.
6459//
6460// See DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
6461// API call, and error handling.
6462//
6463// This method is useful when you want to inject custom logic or configuration
6464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6465//
6466//
6467//    // Example sending a request using the DeleteTopicRuleDestinationRequest method.
6468//    req, resp := client.DeleteTopicRuleDestinationRequest(params)
6469//
6470//    err := req.Send()
6471//    if err == nil { // resp is now filled
6472//        fmt.Println(resp)
6473//    }
6474func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
6475	op := &request.Operation{
6476		Name:       opDeleteTopicRuleDestination,
6477		HTTPMethod: "DELETE",
6478		HTTPPath:   "/destinations/{arn+}",
6479	}
6480
6481	if input == nil {
6482		input = &DeleteTopicRuleDestinationInput{}
6483	}
6484
6485	output = &DeleteTopicRuleDestinationOutput{}
6486	req = c.newRequest(op, input, output)
6487	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6488	return
6489}
6490
6491// DeleteTopicRuleDestination API operation for AWS IoT.
6492//
6493// Deletes a topic rule destination.
6494//
6495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6496// with awserr.Error's Code and Message methods to get detailed information about
6497// the error.
6498//
6499// See the AWS API reference guide for AWS IoT's
6500// API operation DeleteTopicRuleDestination for usage and error information.
6501//
6502// Returned Error Types:
6503//   * InternalException
6504//   An unexpected error has occurred.
6505//
6506//   * InvalidRequestException
6507//   The request is not valid.
6508//
6509//   * ServiceUnavailableException
6510//   The service is temporarily unavailable.
6511//
6512//   * UnauthorizedException
6513//   You are not authorized to perform this operation.
6514//
6515//   * ConflictingResourceUpdateException
6516//   A conflicting resource update exception. This exception is thrown when two
6517//   pending updates cause a conflict.
6518//
6519func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
6520	req, out := c.DeleteTopicRuleDestinationRequest(input)
6521	return out, req.Send()
6522}
6523
6524// DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
6525// the ability to pass a context and additional request options.
6526//
6527// See DeleteTopicRuleDestination for details on how to use this API operation.
6528//
6529// The context must be non-nil and will be used for request cancellation. If
6530// the context is nil a panic will occur. In the future the SDK may create
6531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6532// for more information on using Contexts.
6533func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
6534	req, out := c.DeleteTopicRuleDestinationRequest(input)
6535	req.SetContext(ctx)
6536	req.ApplyOptions(opts...)
6537	return out, req.Send()
6538}
6539
6540const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
6541
6542// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
6543// client's request for the DeleteV2LoggingLevel operation. The "output" return
6544// value will be populated with the request's response once the request completes
6545// successfully.
6546//
6547// Use "Send" method on the returned Request to send the API call to the service.
6548// the "output" return value is not valid until after Send returns without error.
6549//
6550// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
6551// API call, and error handling.
6552//
6553// This method is useful when you want to inject custom logic or configuration
6554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6555//
6556//
6557//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
6558//    req, resp := client.DeleteV2LoggingLevelRequest(params)
6559//
6560//    err := req.Send()
6561//    if err == nil { // resp is now filled
6562//        fmt.Println(resp)
6563//    }
6564func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
6565	op := &request.Operation{
6566		Name:       opDeleteV2LoggingLevel,
6567		HTTPMethod: "DELETE",
6568		HTTPPath:   "/v2LoggingLevel",
6569	}
6570
6571	if input == nil {
6572		input = &DeleteV2LoggingLevelInput{}
6573	}
6574
6575	output = &DeleteV2LoggingLevelOutput{}
6576	req = c.newRequest(op, input, output)
6577	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6578	return
6579}
6580
6581// DeleteV2LoggingLevel API operation for AWS IoT.
6582//
6583// Deletes a logging level.
6584//
6585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6586// with awserr.Error's Code and Message methods to get detailed information about
6587// the error.
6588//
6589// See the AWS API reference guide for AWS IoT's
6590// API operation DeleteV2LoggingLevel for usage and error information.
6591//
6592// Returned Error Types:
6593//   * InternalException
6594//   An unexpected error has occurred.
6595//
6596//   * InvalidRequestException
6597//   The request is not valid.
6598//
6599//   * ServiceUnavailableException
6600//   The service is temporarily unavailable.
6601//
6602func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
6603	req, out := c.DeleteV2LoggingLevelRequest(input)
6604	return out, req.Send()
6605}
6606
6607// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
6608// the ability to pass a context and additional request options.
6609//
6610// See DeleteV2LoggingLevel for details on how to use this API operation.
6611//
6612// The context must be non-nil and will be used for request cancellation. If
6613// the context is nil a panic will occur. In the future the SDK may create
6614// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6615// for more information on using Contexts.
6616func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
6617	req, out := c.DeleteV2LoggingLevelRequest(input)
6618	req.SetContext(ctx)
6619	req.ApplyOptions(opts...)
6620	return out, req.Send()
6621}
6622
6623const opDeprecateThingType = "DeprecateThingType"
6624
6625// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
6626// client's request for the DeprecateThingType operation. The "output" return
6627// value will be populated with the request's response once the request completes
6628// successfully.
6629//
6630// Use "Send" method on the returned Request to send the API call to the service.
6631// the "output" return value is not valid until after Send returns without error.
6632//
6633// See DeprecateThingType for more information on using the DeprecateThingType
6634// API call, and error handling.
6635//
6636// This method is useful when you want to inject custom logic or configuration
6637// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6638//
6639//
6640//    // Example sending a request using the DeprecateThingTypeRequest method.
6641//    req, resp := client.DeprecateThingTypeRequest(params)
6642//
6643//    err := req.Send()
6644//    if err == nil { // resp is now filled
6645//        fmt.Println(resp)
6646//    }
6647func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
6648	op := &request.Operation{
6649		Name:       opDeprecateThingType,
6650		HTTPMethod: "POST",
6651		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
6652	}
6653
6654	if input == nil {
6655		input = &DeprecateThingTypeInput{}
6656	}
6657
6658	output = &DeprecateThingTypeOutput{}
6659	req = c.newRequest(op, input, output)
6660	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6661	return
6662}
6663
6664// DeprecateThingType API operation for AWS IoT.
6665//
6666// Deprecates a thing type. You can not associate new things with deprecated
6667// thing type.
6668//
6669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6670// with awserr.Error's Code and Message methods to get detailed information about
6671// the error.
6672//
6673// See the AWS API reference guide for AWS IoT's
6674// API operation DeprecateThingType for usage and error information.
6675//
6676// Returned Error Types:
6677//   * ResourceNotFoundException
6678//   The specified resource does not exist.
6679//
6680//   * InvalidRequestException
6681//   The request is not valid.
6682//
6683//   * ThrottlingException
6684//   The rate exceeds the limit.
6685//
6686//   * UnauthorizedException
6687//   You are not authorized to perform this operation.
6688//
6689//   * ServiceUnavailableException
6690//   The service is temporarily unavailable.
6691//
6692//   * InternalFailureException
6693//   An unexpected error has occurred.
6694//
6695func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
6696	req, out := c.DeprecateThingTypeRequest(input)
6697	return out, req.Send()
6698}
6699
6700// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
6701// the ability to pass a context and additional request options.
6702//
6703// See DeprecateThingType for details on how to use this API operation.
6704//
6705// The context must be non-nil and will be used for request cancellation. If
6706// the context is nil a panic will occur. In the future the SDK may create
6707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6708// for more information on using Contexts.
6709func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
6710	req, out := c.DeprecateThingTypeRequest(input)
6711	req.SetContext(ctx)
6712	req.ApplyOptions(opts...)
6713	return out, req.Send()
6714}
6715
6716const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
6717
6718// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
6719// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
6720// value will be populated with the request's response once the request completes
6721// successfully.
6722//
6723// Use "Send" method on the returned Request to send the API call to the service.
6724// the "output" return value is not valid until after Send returns without error.
6725//
6726// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
6727// API call, and error handling.
6728//
6729// This method is useful when you want to inject custom logic or configuration
6730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6731//
6732//
6733//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
6734//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
6735//
6736//    err := req.Send()
6737//    if err == nil { // resp is now filled
6738//        fmt.Println(resp)
6739//    }
6740func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
6741	op := &request.Operation{
6742		Name:       opDescribeAccountAuditConfiguration,
6743		HTTPMethod: "GET",
6744		HTTPPath:   "/audit/configuration",
6745	}
6746
6747	if input == nil {
6748		input = &DescribeAccountAuditConfigurationInput{}
6749	}
6750
6751	output = &DescribeAccountAuditConfigurationOutput{}
6752	req = c.newRequest(op, input, output)
6753	return
6754}
6755
6756// DescribeAccountAuditConfiguration API operation for AWS IoT.
6757//
6758// Gets information about the Device Defender audit settings for this account.
6759// Settings include how audit notifications are sent and which audit checks
6760// are enabled or disabled.
6761//
6762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6763// with awserr.Error's Code and Message methods to get detailed information about
6764// the error.
6765//
6766// See the AWS API reference guide for AWS IoT's
6767// API operation DescribeAccountAuditConfiguration for usage and error information.
6768//
6769// Returned Error Types:
6770//   * ThrottlingException
6771//   The rate exceeds the limit.
6772//
6773//   * InternalFailureException
6774//   An unexpected error has occurred.
6775//
6776func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
6777	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6778	return out, req.Send()
6779}
6780
6781// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
6782// the ability to pass a context and additional request options.
6783//
6784// See DescribeAccountAuditConfiguration for details on how to use this API operation.
6785//
6786// The context must be non-nil and will be used for request cancellation. If
6787// the context is nil a panic will occur. In the future the SDK may create
6788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6789// for more information on using Contexts.
6790func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
6791	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6792	req.SetContext(ctx)
6793	req.ApplyOptions(opts...)
6794	return out, req.Send()
6795}
6796
6797const opDescribeAuditFinding = "DescribeAuditFinding"
6798
6799// DescribeAuditFindingRequest generates a "aws/request.Request" representing the
6800// client's request for the DescribeAuditFinding operation. The "output" return
6801// value will be populated with the request's response once the request completes
6802// successfully.
6803//
6804// Use "Send" method on the returned Request to send the API call to the service.
6805// the "output" return value is not valid until after Send returns without error.
6806//
6807// See DescribeAuditFinding for more information on using the DescribeAuditFinding
6808// API call, and error handling.
6809//
6810// This method is useful when you want to inject custom logic or configuration
6811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6812//
6813//
6814//    // Example sending a request using the DescribeAuditFindingRequest method.
6815//    req, resp := client.DescribeAuditFindingRequest(params)
6816//
6817//    err := req.Send()
6818//    if err == nil { // resp is now filled
6819//        fmt.Println(resp)
6820//    }
6821func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
6822	op := &request.Operation{
6823		Name:       opDescribeAuditFinding,
6824		HTTPMethod: "GET",
6825		HTTPPath:   "/audit/findings/{findingId}",
6826	}
6827
6828	if input == nil {
6829		input = &DescribeAuditFindingInput{}
6830	}
6831
6832	output = &DescribeAuditFindingOutput{}
6833	req = c.newRequest(op, input, output)
6834	return
6835}
6836
6837// DescribeAuditFinding API operation for AWS IoT.
6838//
6839// Gets information about a single audit finding. Properties include the reason
6840// for noncompliance, the severity of the issue, and the start time when the
6841// audit that returned the finding.
6842//
6843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6844// with awserr.Error's Code and Message methods to get detailed information about
6845// the error.
6846//
6847// See the AWS API reference guide for AWS IoT's
6848// API operation DescribeAuditFinding for usage and error information.
6849//
6850// Returned Error Types:
6851//   * ResourceNotFoundException
6852//   The specified resource does not exist.
6853//
6854//   * InvalidRequestException
6855//   The request is not valid.
6856//
6857//   * ThrottlingException
6858//   The rate exceeds the limit.
6859//
6860//   * InternalFailureException
6861//   An unexpected error has occurred.
6862//
6863func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
6864	req, out := c.DescribeAuditFindingRequest(input)
6865	return out, req.Send()
6866}
6867
6868// DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
6869// the ability to pass a context and additional request options.
6870//
6871// See DescribeAuditFinding for details on how to use this API operation.
6872//
6873// The context must be non-nil and will be used for request cancellation. If
6874// the context is nil a panic will occur. In the future the SDK may create
6875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6876// for more information on using Contexts.
6877func (c *IoT) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
6878	req, out := c.DescribeAuditFindingRequest(input)
6879	req.SetContext(ctx)
6880	req.ApplyOptions(opts...)
6881	return out, req.Send()
6882}
6883
6884const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
6885
6886// DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
6887// client's request for the DescribeAuditMitigationActionsTask operation. The "output" return
6888// value will be populated with the request's response once the request completes
6889// successfully.
6890//
6891// Use "Send" method on the returned Request to send the API call to the service.
6892// the "output" return value is not valid until after Send returns without error.
6893//
6894// See DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
6895// API call, and error handling.
6896//
6897// This method is useful when you want to inject custom logic or configuration
6898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6899//
6900//
6901//    // Example sending a request using the DescribeAuditMitigationActionsTaskRequest method.
6902//    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
6903//
6904//    err := req.Send()
6905//    if err == nil { // resp is now filled
6906//        fmt.Println(resp)
6907//    }
6908func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
6909	op := &request.Operation{
6910		Name:       opDescribeAuditMitigationActionsTask,
6911		HTTPMethod: "GET",
6912		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
6913	}
6914
6915	if input == nil {
6916		input = &DescribeAuditMitigationActionsTaskInput{}
6917	}
6918
6919	output = &DescribeAuditMitigationActionsTaskOutput{}
6920	req = c.newRequest(op, input, output)
6921	return
6922}
6923
6924// DescribeAuditMitigationActionsTask API operation for AWS IoT.
6925//
6926// Gets information about an audit mitigation task that is used to apply mitigation
6927// actions to a set of audit findings. Properties include the actions being
6928// applied, the audit checks to which they're being applied, the task status,
6929// and aggregated task statistics.
6930//
6931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6932// with awserr.Error's Code and Message methods to get detailed information about
6933// the error.
6934//
6935// See the AWS API reference guide for AWS IoT's
6936// API operation DescribeAuditMitigationActionsTask for usage and error information.
6937//
6938// Returned Error Types:
6939//   * InvalidRequestException
6940//   The request is not valid.
6941//
6942//   * ResourceNotFoundException
6943//   The specified resource does not exist.
6944//
6945//   * ThrottlingException
6946//   The rate exceeds the limit.
6947//
6948//   * InternalFailureException
6949//   An unexpected error has occurred.
6950//
6951func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
6952	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
6953	return out, req.Send()
6954}
6955
6956// DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
6957// the ability to pass a context and additional request options.
6958//
6959// See DescribeAuditMitigationActionsTask for details on how to use this API operation.
6960//
6961// The context must be non-nil and will be used for request cancellation. If
6962// the context is nil a panic will occur. In the future the SDK may create
6963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6964// for more information on using Contexts.
6965func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
6966	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
6967	req.SetContext(ctx)
6968	req.ApplyOptions(opts...)
6969	return out, req.Send()
6970}
6971
6972const opDescribeAuditSuppression = "DescribeAuditSuppression"
6973
6974// DescribeAuditSuppressionRequest generates a "aws/request.Request" representing the
6975// client's request for the DescribeAuditSuppression operation. The "output" return
6976// value will be populated with the request's response once the request completes
6977// successfully.
6978//
6979// Use "Send" method on the returned Request to send the API call to the service.
6980// the "output" return value is not valid until after Send returns without error.
6981//
6982// See DescribeAuditSuppression for more information on using the DescribeAuditSuppression
6983// API call, and error handling.
6984//
6985// This method is useful when you want to inject custom logic or configuration
6986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6987//
6988//
6989//    // Example sending a request using the DescribeAuditSuppressionRequest method.
6990//    req, resp := client.DescribeAuditSuppressionRequest(params)
6991//
6992//    err := req.Send()
6993//    if err == nil { // resp is now filled
6994//        fmt.Println(resp)
6995//    }
6996func (c *IoT) DescribeAuditSuppressionRequest(input *DescribeAuditSuppressionInput) (req *request.Request, output *DescribeAuditSuppressionOutput) {
6997	op := &request.Operation{
6998		Name:       opDescribeAuditSuppression,
6999		HTTPMethod: "POST",
7000		HTTPPath:   "/audit/suppressions/describe",
7001	}
7002
7003	if input == nil {
7004		input = &DescribeAuditSuppressionInput{}
7005	}
7006
7007	output = &DescribeAuditSuppressionOutput{}
7008	req = c.newRequest(op, input, output)
7009	return
7010}
7011
7012// DescribeAuditSuppression API operation for AWS IoT.
7013//
7014// Gets information about a Device Defender audit suppression.
7015//
7016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7017// with awserr.Error's Code and Message methods to get detailed information about
7018// the error.
7019//
7020// See the AWS API reference guide for AWS IoT's
7021// API operation DescribeAuditSuppression for usage and error information.
7022//
7023// Returned Error Types:
7024//   * InvalidRequestException
7025//   The request is not valid.
7026//
7027//   * ResourceNotFoundException
7028//   The specified resource does not exist.
7029//
7030//   * ThrottlingException
7031//   The rate exceeds the limit.
7032//
7033//   * InternalFailureException
7034//   An unexpected error has occurred.
7035//
7036func (c *IoT) DescribeAuditSuppression(input *DescribeAuditSuppressionInput) (*DescribeAuditSuppressionOutput, error) {
7037	req, out := c.DescribeAuditSuppressionRequest(input)
7038	return out, req.Send()
7039}
7040
7041// DescribeAuditSuppressionWithContext is the same as DescribeAuditSuppression with the addition of
7042// the ability to pass a context and additional request options.
7043//
7044// See DescribeAuditSuppression for details on how to use this API operation.
7045//
7046// The context must be non-nil and will be used for request cancellation. If
7047// the context is nil a panic will occur. In the future the SDK may create
7048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7049// for more information on using Contexts.
7050func (c *IoT) DescribeAuditSuppressionWithContext(ctx aws.Context, input *DescribeAuditSuppressionInput, opts ...request.Option) (*DescribeAuditSuppressionOutput, error) {
7051	req, out := c.DescribeAuditSuppressionRequest(input)
7052	req.SetContext(ctx)
7053	req.ApplyOptions(opts...)
7054	return out, req.Send()
7055}
7056
7057const opDescribeAuditTask = "DescribeAuditTask"
7058
7059// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
7060// client's request for the DescribeAuditTask operation. The "output" return
7061// value will be populated with the request's response once the request completes
7062// successfully.
7063//
7064// Use "Send" method on the returned Request to send the API call to the service.
7065// the "output" return value is not valid until after Send returns without error.
7066//
7067// See DescribeAuditTask for more information on using the DescribeAuditTask
7068// API call, and error handling.
7069//
7070// This method is useful when you want to inject custom logic or configuration
7071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7072//
7073//
7074//    // Example sending a request using the DescribeAuditTaskRequest method.
7075//    req, resp := client.DescribeAuditTaskRequest(params)
7076//
7077//    err := req.Send()
7078//    if err == nil { // resp is now filled
7079//        fmt.Println(resp)
7080//    }
7081func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
7082	op := &request.Operation{
7083		Name:       opDescribeAuditTask,
7084		HTTPMethod: "GET",
7085		HTTPPath:   "/audit/tasks/{taskId}",
7086	}
7087
7088	if input == nil {
7089		input = &DescribeAuditTaskInput{}
7090	}
7091
7092	output = &DescribeAuditTaskOutput{}
7093	req = c.newRequest(op, input, output)
7094	return
7095}
7096
7097// DescribeAuditTask API operation for AWS IoT.
7098//
7099// Gets information about a Device Defender audit.
7100//
7101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7102// with awserr.Error's Code and Message methods to get detailed information about
7103// the error.
7104//
7105// See the AWS API reference guide for AWS IoT's
7106// API operation DescribeAuditTask for usage and error information.
7107//
7108// Returned Error Types:
7109//   * InvalidRequestException
7110//   The request is not valid.
7111//
7112//   * ResourceNotFoundException
7113//   The specified resource does not exist.
7114//
7115//   * ThrottlingException
7116//   The rate exceeds the limit.
7117//
7118//   * InternalFailureException
7119//   An unexpected error has occurred.
7120//
7121func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
7122	req, out := c.DescribeAuditTaskRequest(input)
7123	return out, req.Send()
7124}
7125
7126// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
7127// the ability to pass a context and additional request options.
7128//
7129// See DescribeAuditTask for details on how to use this API operation.
7130//
7131// The context must be non-nil and will be used for request cancellation. If
7132// the context is nil a panic will occur. In the future the SDK may create
7133// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7134// for more information on using Contexts.
7135func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
7136	req, out := c.DescribeAuditTaskRequest(input)
7137	req.SetContext(ctx)
7138	req.ApplyOptions(opts...)
7139	return out, req.Send()
7140}
7141
7142const opDescribeAuthorizer = "DescribeAuthorizer"
7143
7144// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
7145// client's request for the DescribeAuthorizer operation. The "output" return
7146// value will be populated with the request's response once the request completes
7147// successfully.
7148//
7149// Use "Send" method on the returned Request to send the API call to the service.
7150// the "output" return value is not valid until after Send returns without error.
7151//
7152// See DescribeAuthorizer for more information on using the DescribeAuthorizer
7153// API call, and error handling.
7154//
7155// This method is useful when you want to inject custom logic or configuration
7156// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7157//
7158//
7159//    // Example sending a request using the DescribeAuthorizerRequest method.
7160//    req, resp := client.DescribeAuthorizerRequest(params)
7161//
7162//    err := req.Send()
7163//    if err == nil { // resp is now filled
7164//        fmt.Println(resp)
7165//    }
7166func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
7167	op := &request.Operation{
7168		Name:       opDescribeAuthorizer,
7169		HTTPMethod: "GET",
7170		HTTPPath:   "/authorizer/{authorizerName}",
7171	}
7172
7173	if input == nil {
7174		input = &DescribeAuthorizerInput{}
7175	}
7176
7177	output = &DescribeAuthorizerOutput{}
7178	req = c.newRequest(op, input, output)
7179	return
7180}
7181
7182// DescribeAuthorizer API operation for AWS IoT.
7183//
7184// Describes an authorizer.
7185//
7186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7187// with awserr.Error's Code and Message methods to get detailed information about
7188// the error.
7189//
7190// See the AWS API reference guide for AWS IoT's
7191// API operation DescribeAuthorizer for usage and error information.
7192//
7193// Returned Error Types:
7194//   * ResourceNotFoundException
7195//   The specified resource does not exist.
7196//
7197//   * InvalidRequestException
7198//   The request is not valid.
7199//
7200//   * ThrottlingException
7201//   The rate exceeds the limit.
7202//
7203//   * UnauthorizedException
7204//   You are not authorized to perform this operation.
7205//
7206//   * ServiceUnavailableException
7207//   The service is temporarily unavailable.
7208//
7209//   * InternalFailureException
7210//   An unexpected error has occurred.
7211//
7212func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
7213	req, out := c.DescribeAuthorizerRequest(input)
7214	return out, req.Send()
7215}
7216
7217// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
7218// the ability to pass a context and additional request options.
7219//
7220// See DescribeAuthorizer for details on how to use this API operation.
7221//
7222// The context must be non-nil and will be used for request cancellation. If
7223// the context is nil a panic will occur. In the future the SDK may create
7224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7225// for more information on using Contexts.
7226func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
7227	req, out := c.DescribeAuthorizerRequest(input)
7228	req.SetContext(ctx)
7229	req.ApplyOptions(opts...)
7230	return out, req.Send()
7231}
7232
7233const opDescribeBillingGroup = "DescribeBillingGroup"
7234
7235// DescribeBillingGroupRequest generates a "aws/request.Request" representing the
7236// client's request for the DescribeBillingGroup operation. The "output" return
7237// value will be populated with the request's response once the request completes
7238// successfully.
7239//
7240// Use "Send" method on the returned Request to send the API call to the service.
7241// the "output" return value is not valid until after Send returns without error.
7242//
7243// See DescribeBillingGroup for more information on using the DescribeBillingGroup
7244// API call, and error handling.
7245//
7246// This method is useful when you want to inject custom logic or configuration
7247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7248//
7249//
7250//    // Example sending a request using the DescribeBillingGroupRequest method.
7251//    req, resp := client.DescribeBillingGroupRequest(params)
7252//
7253//    err := req.Send()
7254//    if err == nil { // resp is now filled
7255//        fmt.Println(resp)
7256//    }
7257func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
7258	op := &request.Operation{
7259		Name:       opDescribeBillingGroup,
7260		HTTPMethod: "GET",
7261		HTTPPath:   "/billing-groups/{billingGroupName}",
7262	}
7263
7264	if input == nil {
7265		input = &DescribeBillingGroupInput{}
7266	}
7267
7268	output = &DescribeBillingGroupOutput{}
7269	req = c.newRequest(op, input, output)
7270	return
7271}
7272
7273// DescribeBillingGroup API operation for AWS IoT.
7274//
7275// Returns information about a billing group.
7276//
7277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7278// with awserr.Error's Code and Message methods to get detailed information about
7279// the error.
7280//
7281// See the AWS API reference guide for AWS IoT's
7282// API operation DescribeBillingGroup for usage and error information.
7283//
7284// Returned Error Types:
7285//   * InvalidRequestException
7286//   The request is not valid.
7287//
7288//   * ThrottlingException
7289//   The rate exceeds the limit.
7290//
7291//   * InternalFailureException
7292//   An unexpected error has occurred.
7293//
7294//   * ResourceNotFoundException
7295//   The specified resource does not exist.
7296//
7297func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
7298	req, out := c.DescribeBillingGroupRequest(input)
7299	return out, req.Send()
7300}
7301
7302// DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
7303// the ability to pass a context and additional request options.
7304//
7305// See DescribeBillingGroup for details on how to use this API operation.
7306//
7307// The context must be non-nil and will be used for request cancellation. If
7308// the context is nil a panic will occur. In the future the SDK may create
7309// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7310// for more information on using Contexts.
7311func (c *IoT) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
7312	req, out := c.DescribeBillingGroupRequest(input)
7313	req.SetContext(ctx)
7314	req.ApplyOptions(opts...)
7315	return out, req.Send()
7316}
7317
7318const opDescribeCACertificate = "DescribeCACertificate"
7319
7320// DescribeCACertificateRequest generates a "aws/request.Request" representing the
7321// client's request for the DescribeCACertificate operation. The "output" return
7322// value will be populated with the request's response once the request completes
7323// successfully.
7324//
7325// Use "Send" method on the returned Request to send the API call to the service.
7326// the "output" return value is not valid until after Send returns without error.
7327//
7328// See DescribeCACertificate for more information on using the DescribeCACertificate
7329// API call, and error handling.
7330//
7331// This method is useful when you want to inject custom logic or configuration
7332// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7333//
7334//
7335//    // Example sending a request using the DescribeCACertificateRequest method.
7336//    req, resp := client.DescribeCACertificateRequest(params)
7337//
7338//    err := req.Send()
7339//    if err == nil { // resp is now filled
7340//        fmt.Println(resp)
7341//    }
7342func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
7343	op := &request.Operation{
7344		Name:       opDescribeCACertificate,
7345		HTTPMethod: "GET",
7346		HTTPPath:   "/cacertificate/{caCertificateId}",
7347	}
7348
7349	if input == nil {
7350		input = &DescribeCACertificateInput{}
7351	}
7352
7353	output = &DescribeCACertificateOutput{}
7354	req = c.newRequest(op, input, output)
7355	return
7356}
7357
7358// DescribeCACertificate API operation for AWS IoT.
7359//
7360// Describes a registered CA certificate.
7361//
7362// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7363// with awserr.Error's Code and Message methods to get detailed information about
7364// the error.
7365//
7366// See the AWS API reference guide for AWS IoT's
7367// API operation DescribeCACertificate for usage and error information.
7368//
7369// Returned Error Types:
7370//   * InvalidRequestException
7371//   The request is not valid.
7372//
7373//   * ThrottlingException
7374//   The rate exceeds the limit.
7375//
7376//   * UnauthorizedException
7377//   You are not authorized to perform this operation.
7378//
7379//   * ServiceUnavailableException
7380//   The service is temporarily unavailable.
7381//
7382//   * InternalFailureException
7383//   An unexpected error has occurred.
7384//
7385//   * ResourceNotFoundException
7386//   The specified resource does not exist.
7387//
7388func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
7389	req, out := c.DescribeCACertificateRequest(input)
7390	return out, req.Send()
7391}
7392
7393// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
7394// the ability to pass a context and additional request options.
7395//
7396// See DescribeCACertificate for details on how to use this API operation.
7397//
7398// The context must be non-nil and will be used for request cancellation. If
7399// the context is nil a panic will occur. In the future the SDK may create
7400// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7401// for more information on using Contexts.
7402func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
7403	req, out := c.DescribeCACertificateRequest(input)
7404	req.SetContext(ctx)
7405	req.ApplyOptions(opts...)
7406	return out, req.Send()
7407}
7408
7409const opDescribeCertificate = "DescribeCertificate"
7410
7411// DescribeCertificateRequest generates a "aws/request.Request" representing the
7412// client's request for the DescribeCertificate operation. The "output" return
7413// value will be populated with the request's response once the request completes
7414// successfully.
7415//
7416// Use "Send" method on the returned Request to send the API call to the service.
7417// the "output" return value is not valid until after Send returns without error.
7418//
7419// See DescribeCertificate for more information on using the DescribeCertificate
7420// API call, and error handling.
7421//
7422// This method is useful when you want to inject custom logic or configuration
7423// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7424//
7425//
7426//    // Example sending a request using the DescribeCertificateRequest method.
7427//    req, resp := client.DescribeCertificateRequest(params)
7428//
7429//    err := req.Send()
7430//    if err == nil { // resp is now filled
7431//        fmt.Println(resp)
7432//    }
7433func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
7434	op := &request.Operation{
7435		Name:       opDescribeCertificate,
7436		HTTPMethod: "GET",
7437		HTTPPath:   "/certificates/{certificateId}",
7438	}
7439
7440	if input == nil {
7441		input = &DescribeCertificateInput{}
7442	}
7443
7444	output = &DescribeCertificateOutput{}
7445	req = c.newRequest(op, input, output)
7446	return
7447}
7448
7449// DescribeCertificate API operation for AWS IoT.
7450//
7451// Gets information about the specified certificate.
7452//
7453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7454// with awserr.Error's Code and Message methods to get detailed information about
7455// the error.
7456//
7457// See the AWS API reference guide for AWS IoT's
7458// API operation DescribeCertificate for usage and error information.
7459//
7460// Returned Error Types:
7461//   * InvalidRequestException
7462//   The request is not valid.
7463//
7464//   * ThrottlingException
7465//   The rate exceeds the limit.
7466//
7467//   * UnauthorizedException
7468//   You are not authorized to perform this operation.
7469//
7470//   * ServiceUnavailableException
7471//   The service is temporarily unavailable.
7472//
7473//   * InternalFailureException
7474//   An unexpected error has occurred.
7475//
7476//   * ResourceNotFoundException
7477//   The specified resource does not exist.
7478//
7479func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
7480	req, out := c.DescribeCertificateRequest(input)
7481	return out, req.Send()
7482}
7483
7484// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
7485// the ability to pass a context and additional request options.
7486//
7487// See DescribeCertificate for details on how to use this API operation.
7488//
7489// The context must be non-nil and will be used for request cancellation. If
7490// the context is nil a panic will occur. In the future the SDK may create
7491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7492// for more information on using Contexts.
7493func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
7494	req, out := c.DescribeCertificateRequest(input)
7495	req.SetContext(ctx)
7496	req.ApplyOptions(opts...)
7497	return out, req.Send()
7498}
7499
7500const opDescribeCustomMetric = "DescribeCustomMetric"
7501
7502// DescribeCustomMetricRequest generates a "aws/request.Request" representing the
7503// client's request for the DescribeCustomMetric operation. The "output" return
7504// value will be populated with the request's response once the request completes
7505// successfully.
7506//
7507// Use "Send" method on the returned Request to send the API call to the service.
7508// the "output" return value is not valid until after Send returns without error.
7509//
7510// See DescribeCustomMetric for more information on using the DescribeCustomMetric
7511// API call, and error handling.
7512//
7513// This method is useful when you want to inject custom logic or configuration
7514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7515//
7516//
7517//    // Example sending a request using the DescribeCustomMetricRequest method.
7518//    req, resp := client.DescribeCustomMetricRequest(params)
7519//
7520//    err := req.Send()
7521//    if err == nil { // resp is now filled
7522//        fmt.Println(resp)
7523//    }
7524func (c *IoT) DescribeCustomMetricRequest(input *DescribeCustomMetricInput) (req *request.Request, output *DescribeCustomMetricOutput) {
7525	op := &request.Operation{
7526		Name:       opDescribeCustomMetric,
7527		HTTPMethod: "GET",
7528		HTTPPath:   "/custom-metric/{metricName}",
7529	}
7530
7531	if input == nil {
7532		input = &DescribeCustomMetricInput{}
7533	}
7534
7535	output = &DescribeCustomMetricOutput{}
7536	req = c.newRequest(op, input, output)
7537	return
7538}
7539
7540// DescribeCustomMetric API operation for AWS IoT.
7541//
7542// Gets information about a Device Defender detect custom metric.
7543//
7544// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7545// with awserr.Error's Code and Message methods to get detailed information about
7546// the error.
7547//
7548// See the AWS API reference guide for AWS IoT's
7549// API operation DescribeCustomMetric for usage and error information.
7550//
7551// Returned Error Types:
7552//   * InvalidRequestException
7553//   The request is not valid.
7554//
7555//   * ResourceNotFoundException
7556//   The specified resource does not exist.
7557//
7558//   * ThrottlingException
7559//   The rate exceeds the limit.
7560//
7561//   * InternalFailureException
7562//   An unexpected error has occurred.
7563//
7564func (c *IoT) DescribeCustomMetric(input *DescribeCustomMetricInput) (*DescribeCustomMetricOutput, error) {
7565	req, out := c.DescribeCustomMetricRequest(input)
7566	return out, req.Send()
7567}
7568
7569// DescribeCustomMetricWithContext is the same as DescribeCustomMetric with the addition of
7570// the ability to pass a context and additional request options.
7571//
7572// See DescribeCustomMetric for details on how to use this API operation.
7573//
7574// The context must be non-nil and will be used for request cancellation. If
7575// the context is nil a panic will occur. In the future the SDK may create
7576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7577// for more information on using Contexts.
7578func (c *IoT) DescribeCustomMetricWithContext(ctx aws.Context, input *DescribeCustomMetricInput, opts ...request.Option) (*DescribeCustomMetricOutput, error) {
7579	req, out := c.DescribeCustomMetricRequest(input)
7580	req.SetContext(ctx)
7581	req.ApplyOptions(opts...)
7582	return out, req.Send()
7583}
7584
7585const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
7586
7587// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
7588// client's request for the DescribeDefaultAuthorizer operation. The "output" return
7589// value will be populated with the request's response once the request completes
7590// successfully.
7591//
7592// Use "Send" method on the returned Request to send the API call to the service.
7593// the "output" return value is not valid until after Send returns without error.
7594//
7595// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
7596// API call, and error handling.
7597//
7598// This method is useful when you want to inject custom logic or configuration
7599// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7600//
7601//
7602//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
7603//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
7604//
7605//    err := req.Send()
7606//    if err == nil { // resp is now filled
7607//        fmt.Println(resp)
7608//    }
7609func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
7610	op := &request.Operation{
7611		Name:       opDescribeDefaultAuthorizer,
7612		HTTPMethod: "GET",
7613		HTTPPath:   "/default-authorizer",
7614	}
7615
7616	if input == nil {
7617		input = &DescribeDefaultAuthorizerInput{}
7618	}
7619
7620	output = &DescribeDefaultAuthorizerOutput{}
7621	req = c.newRequest(op, input, output)
7622	return
7623}
7624
7625// DescribeDefaultAuthorizer API operation for AWS IoT.
7626//
7627// Describes the default authorizer.
7628//
7629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7630// with awserr.Error's Code and Message methods to get detailed information about
7631// the error.
7632//
7633// See the AWS API reference guide for AWS IoT's
7634// API operation DescribeDefaultAuthorizer for usage and error information.
7635//
7636// Returned Error Types:
7637//   * ResourceNotFoundException
7638//   The specified resource does not exist.
7639//
7640//   * InvalidRequestException
7641//   The request is not valid.
7642//
7643//   * ThrottlingException
7644//   The rate exceeds the limit.
7645//
7646//   * UnauthorizedException
7647//   You are not authorized to perform this operation.
7648//
7649//   * ServiceUnavailableException
7650//   The service is temporarily unavailable.
7651//
7652//   * InternalFailureException
7653//   An unexpected error has occurred.
7654//
7655func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
7656	req, out := c.DescribeDefaultAuthorizerRequest(input)
7657	return out, req.Send()
7658}
7659
7660// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
7661// the ability to pass a context and additional request options.
7662//
7663// See DescribeDefaultAuthorizer for details on how to use this API operation.
7664//
7665// The context must be non-nil and will be used for request cancellation. If
7666// the context is nil a panic will occur. In the future the SDK may create
7667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7668// for more information on using Contexts.
7669func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
7670	req, out := c.DescribeDefaultAuthorizerRequest(input)
7671	req.SetContext(ctx)
7672	req.ApplyOptions(opts...)
7673	return out, req.Send()
7674}
7675
7676const opDescribeDetectMitigationActionsTask = "DescribeDetectMitigationActionsTask"
7677
7678// DescribeDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7679// client's request for the DescribeDetectMitigationActionsTask operation. The "output" return
7680// value will be populated with the request's response once the request completes
7681// successfully.
7682//
7683// Use "Send" method on the returned Request to send the API call to the service.
7684// the "output" return value is not valid until after Send returns without error.
7685//
7686// See DescribeDetectMitigationActionsTask for more information on using the DescribeDetectMitigationActionsTask
7687// API call, and error handling.
7688//
7689// This method is useful when you want to inject custom logic or configuration
7690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7691//
7692//
7693//    // Example sending a request using the DescribeDetectMitigationActionsTaskRequest method.
7694//    req, resp := client.DescribeDetectMitigationActionsTaskRequest(params)
7695//
7696//    err := req.Send()
7697//    if err == nil { // resp is now filled
7698//        fmt.Println(resp)
7699//    }
7700func (c *IoT) DescribeDetectMitigationActionsTaskRequest(input *DescribeDetectMitigationActionsTaskInput) (req *request.Request, output *DescribeDetectMitigationActionsTaskOutput) {
7701	op := &request.Operation{
7702		Name:       opDescribeDetectMitigationActionsTask,
7703		HTTPMethod: "GET",
7704		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
7705	}
7706
7707	if input == nil {
7708		input = &DescribeDetectMitigationActionsTaskInput{}
7709	}
7710
7711	output = &DescribeDetectMitigationActionsTaskOutput{}
7712	req = c.newRequest(op, input, output)
7713	return
7714}
7715
7716// DescribeDetectMitigationActionsTask API operation for AWS IoT.
7717//
7718// Gets information about a Device Defender ML Detect mitigation action.
7719//
7720// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7721// with awserr.Error's Code and Message methods to get detailed information about
7722// the error.
7723//
7724// See the AWS API reference guide for AWS IoT's
7725// API operation DescribeDetectMitigationActionsTask for usage and error information.
7726//
7727// Returned Error Types:
7728//   * ResourceNotFoundException
7729//   The specified resource does not exist.
7730//
7731//   * InvalidRequestException
7732//   The request is not valid.
7733//
7734//   * ThrottlingException
7735//   The rate exceeds the limit.
7736//
7737//   * InternalFailureException
7738//   An unexpected error has occurred.
7739//
7740func (c *IoT) DescribeDetectMitigationActionsTask(input *DescribeDetectMitigationActionsTaskInput) (*DescribeDetectMitigationActionsTaskOutput, error) {
7741	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7742	return out, req.Send()
7743}
7744
7745// DescribeDetectMitigationActionsTaskWithContext is the same as DescribeDetectMitigationActionsTask with the addition of
7746// the ability to pass a context and additional request options.
7747//
7748// See DescribeDetectMitigationActionsTask for details on how to use this API operation.
7749//
7750// The context must be non-nil and will be used for request cancellation. If
7751// the context is nil a panic will occur. In the future the SDK may create
7752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7753// for more information on using Contexts.
7754func (c *IoT) DescribeDetectMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeDetectMitigationActionsTaskInput, opts ...request.Option) (*DescribeDetectMitigationActionsTaskOutput, error) {
7755	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7756	req.SetContext(ctx)
7757	req.ApplyOptions(opts...)
7758	return out, req.Send()
7759}
7760
7761const opDescribeDimension = "DescribeDimension"
7762
7763// DescribeDimensionRequest generates a "aws/request.Request" representing the
7764// client's request for the DescribeDimension operation. The "output" return
7765// value will be populated with the request's response once the request completes
7766// successfully.
7767//
7768// Use "Send" method on the returned Request to send the API call to the service.
7769// the "output" return value is not valid until after Send returns without error.
7770//
7771// See DescribeDimension for more information on using the DescribeDimension
7772// API call, and error handling.
7773//
7774// This method is useful when you want to inject custom logic or configuration
7775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7776//
7777//
7778//    // Example sending a request using the DescribeDimensionRequest method.
7779//    req, resp := client.DescribeDimensionRequest(params)
7780//
7781//    err := req.Send()
7782//    if err == nil { // resp is now filled
7783//        fmt.Println(resp)
7784//    }
7785func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
7786	op := &request.Operation{
7787		Name:       opDescribeDimension,
7788		HTTPMethod: "GET",
7789		HTTPPath:   "/dimensions/{name}",
7790	}
7791
7792	if input == nil {
7793		input = &DescribeDimensionInput{}
7794	}
7795
7796	output = &DescribeDimensionOutput{}
7797	req = c.newRequest(op, input, output)
7798	return
7799}
7800
7801// DescribeDimension API operation for AWS IoT.
7802//
7803// Provides details about a dimension that is defined in your AWS account.
7804//
7805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7806// with awserr.Error's Code and Message methods to get detailed information about
7807// the error.
7808//
7809// See the AWS API reference guide for AWS IoT's
7810// API operation DescribeDimension for usage and error information.
7811//
7812// Returned Error Types:
7813//   * InternalFailureException
7814//   An unexpected error has occurred.
7815//
7816//   * InvalidRequestException
7817//   The request is not valid.
7818//
7819//   * ResourceNotFoundException
7820//   The specified resource does not exist.
7821//
7822//   * ThrottlingException
7823//   The rate exceeds the limit.
7824//
7825func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
7826	req, out := c.DescribeDimensionRequest(input)
7827	return out, req.Send()
7828}
7829
7830// DescribeDimensionWithContext is the same as DescribeDimension with the addition of
7831// the ability to pass a context and additional request options.
7832//
7833// See DescribeDimension for details on how to use this API operation.
7834//
7835// The context must be non-nil and will be used for request cancellation. If
7836// the context is nil a panic will occur. In the future the SDK may create
7837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7838// for more information on using Contexts.
7839func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
7840	req, out := c.DescribeDimensionRequest(input)
7841	req.SetContext(ctx)
7842	req.ApplyOptions(opts...)
7843	return out, req.Send()
7844}
7845
7846const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
7847
7848// DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
7849// client's request for the DescribeDomainConfiguration operation. The "output" return
7850// value will be populated with the request's response once the request completes
7851// successfully.
7852//
7853// Use "Send" method on the returned Request to send the API call to the service.
7854// the "output" return value is not valid until after Send returns without error.
7855//
7856// See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
7857// API call, and error handling.
7858//
7859// This method is useful when you want to inject custom logic or configuration
7860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7861//
7862//
7863//    // Example sending a request using the DescribeDomainConfigurationRequest method.
7864//    req, resp := client.DescribeDomainConfigurationRequest(params)
7865//
7866//    err := req.Send()
7867//    if err == nil { // resp is now filled
7868//        fmt.Println(resp)
7869//    }
7870func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
7871	op := &request.Operation{
7872		Name:       opDescribeDomainConfiguration,
7873		HTTPMethod: "GET",
7874		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
7875	}
7876
7877	if input == nil {
7878		input = &DescribeDomainConfigurationInput{}
7879	}
7880
7881	output = &DescribeDomainConfigurationOutput{}
7882	req = c.newRequest(op, input, output)
7883	return
7884}
7885
7886// DescribeDomainConfiguration API operation for AWS IoT.
7887//
7888// Gets summary information about a domain configuration.
7889//
7890// The domain configuration feature is in public preview and is subject to change.
7891//
7892// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7893// with awserr.Error's Code and Message methods to get detailed information about
7894// the error.
7895//
7896// See the AWS API reference guide for AWS IoT's
7897// API operation DescribeDomainConfiguration for usage and error information.
7898//
7899// Returned Error Types:
7900//   * ResourceNotFoundException
7901//   The specified resource does not exist.
7902//
7903//   * ThrottlingException
7904//   The rate exceeds the limit.
7905//
7906//   * InvalidRequestException
7907//   The request is not valid.
7908//
7909//   * UnauthorizedException
7910//   You are not authorized to perform this operation.
7911//
7912//   * ServiceUnavailableException
7913//   The service is temporarily unavailable.
7914//
7915//   * InternalFailureException
7916//   An unexpected error has occurred.
7917//
7918func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
7919	req, out := c.DescribeDomainConfigurationRequest(input)
7920	return out, req.Send()
7921}
7922
7923// DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
7924// the ability to pass a context and additional request options.
7925//
7926// See DescribeDomainConfiguration for details on how to use this API operation.
7927//
7928// The context must be non-nil and will be used for request cancellation. If
7929// the context is nil a panic will occur. In the future the SDK may create
7930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7931// for more information on using Contexts.
7932func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
7933	req, out := c.DescribeDomainConfigurationRequest(input)
7934	req.SetContext(ctx)
7935	req.ApplyOptions(opts...)
7936	return out, req.Send()
7937}
7938
7939const opDescribeEndpoint = "DescribeEndpoint"
7940
7941// DescribeEndpointRequest generates a "aws/request.Request" representing the
7942// client's request for the DescribeEndpoint operation. The "output" return
7943// value will be populated with the request's response once the request completes
7944// successfully.
7945//
7946// Use "Send" method on the returned Request to send the API call to the service.
7947// the "output" return value is not valid until after Send returns without error.
7948//
7949// See DescribeEndpoint for more information on using the DescribeEndpoint
7950// API call, and error handling.
7951//
7952// This method is useful when you want to inject custom logic or configuration
7953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7954//
7955//
7956//    // Example sending a request using the DescribeEndpointRequest method.
7957//    req, resp := client.DescribeEndpointRequest(params)
7958//
7959//    err := req.Send()
7960//    if err == nil { // resp is now filled
7961//        fmt.Println(resp)
7962//    }
7963func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
7964	op := &request.Operation{
7965		Name:       opDescribeEndpoint,
7966		HTTPMethod: "GET",
7967		HTTPPath:   "/endpoint",
7968	}
7969
7970	if input == nil {
7971		input = &DescribeEndpointInput{}
7972	}
7973
7974	output = &DescribeEndpointOutput{}
7975	req = c.newRequest(op, input, output)
7976	return
7977}
7978
7979// DescribeEndpoint API operation for AWS IoT.
7980//
7981// Returns a unique endpoint specific to the AWS account making the call.
7982//
7983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7984// with awserr.Error's Code and Message methods to get detailed information about
7985// the error.
7986//
7987// See the AWS API reference guide for AWS IoT's
7988// API operation DescribeEndpoint for usage and error information.
7989//
7990// Returned Error Types:
7991//   * InternalFailureException
7992//   An unexpected error has occurred.
7993//
7994//   * InvalidRequestException
7995//   The request is not valid.
7996//
7997//   * UnauthorizedException
7998//   You are not authorized to perform this operation.
7999//
8000//   * ThrottlingException
8001//   The rate exceeds the limit.
8002//
8003func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
8004	req, out := c.DescribeEndpointRequest(input)
8005	return out, req.Send()
8006}
8007
8008// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
8009// the ability to pass a context and additional request options.
8010//
8011// See DescribeEndpoint for details on how to use this API operation.
8012//
8013// The context must be non-nil and will be used for request cancellation. If
8014// the context is nil a panic will occur. In the future the SDK may create
8015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8016// for more information on using Contexts.
8017func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
8018	req, out := c.DescribeEndpointRequest(input)
8019	req.SetContext(ctx)
8020	req.ApplyOptions(opts...)
8021	return out, req.Send()
8022}
8023
8024const opDescribeEventConfigurations = "DescribeEventConfigurations"
8025
8026// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
8027// client's request for the DescribeEventConfigurations operation. The "output" return
8028// value will be populated with the request's response once the request completes
8029// successfully.
8030//
8031// Use "Send" method on the returned Request to send the API call to the service.
8032// the "output" return value is not valid until after Send returns without error.
8033//
8034// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
8035// API call, and error handling.
8036//
8037// This method is useful when you want to inject custom logic or configuration
8038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8039//
8040//
8041//    // Example sending a request using the DescribeEventConfigurationsRequest method.
8042//    req, resp := client.DescribeEventConfigurationsRequest(params)
8043//
8044//    err := req.Send()
8045//    if err == nil { // resp is now filled
8046//        fmt.Println(resp)
8047//    }
8048func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
8049	op := &request.Operation{
8050		Name:       opDescribeEventConfigurations,
8051		HTTPMethod: "GET",
8052		HTTPPath:   "/event-configurations",
8053	}
8054
8055	if input == nil {
8056		input = &DescribeEventConfigurationsInput{}
8057	}
8058
8059	output = &DescribeEventConfigurationsOutput{}
8060	req = c.newRequest(op, input, output)
8061	return
8062}
8063
8064// DescribeEventConfigurations API operation for AWS IoT.
8065//
8066// Describes event configurations.
8067//
8068// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8069// with awserr.Error's Code and Message methods to get detailed information about
8070// the error.
8071//
8072// See the AWS API reference guide for AWS IoT's
8073// API operation DescribeEventConfigurations for usage and error information.
8074//
8075// Returned Error Types:
8076//   * InternalFailureException
8077//   An unexpected error has occurred.
8078//
8079//   * ThrottlingException
8080//   The rate exceeds the limit.
8081//
8082func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
8083	req, out := c.DescribeEventConfigurationsRequest(input)
8084	return out, req.Send()
8085}
8086
8087// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
8088// the ability to pass a context and additional request options.
8089//
8090// See DescribeEventConfigurations for details on how to use this API operation.
8091//
8092// The context must be non-nil and will be used for request cancellation. If
8093// the context is nil a panic will occur. In the future the SDK may create
8094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8095// for more information on using Contexts.
8096func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
8097	req, out := c.DescribeEventConfigurationsRequest(input)
8098	req.SetContext(ctx)
8099	req.ApplyOptions(opts...)
8100	return out, req.Send()
8101}
8102
8103const opDescribeIndex = "DescribeIndex"
8104
8105// DescribeIndexRequest generates a "aws/request.Request" representing the
8106// client's request for the DescribeIndex operation. The "output" return
8107// value will be populated with the request's response once the request completes
8108// successfully.
8109//
8110// Use "Send" method on the returned Request to send the API call to the service.
8111// the "output" return value is not valid until after Send returns without error.
8112//
8113// See DescribeIndex for more information on using the DescribeIndex
8114// API call, and error handling.
8115//
8116// This method is useful when you want to inject custom logic or configuration
8117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8118//
8119//
8120//    // Example sending a request using the DescribeIndexRequest method.
8121//    req, resp := client.DescribeIndexRequest(params)
8122//
8123//    err := req.Send()
8124//    if err == nil { // resp is now filled
8125//        fmt.Println(resp)
8126//    }
8127func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
8128	op := &request.Operation{
8129		Name:       opDescribeIndex,
8130		HTTPMethod: "GET",
8131		HTTPPath:   "/indices/{indexName}",
8132	}
8133
8134	if input == nil {
8135		input = &DescribeIndexInput{}
8136	}
8137
8138	output = &DescribeIndexOutput{}
8139	req = c.newRequest(op, input, output)
8140	return
8141}
8142
8143// DescribeIndex API operation for AWS IoT.
8144//
8145// Describes a search index.
8146//
8147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8148// with awserr.Error's Code and Message methods to get detailed information about
8149// the error.
8150//
8151// See the AWS API reference guide for AWS IoT's
8152// API operation DescribeIndex for usage and error information.
8153//
8154// Returned Error Types:
8155//   * InvalidRequestException
8156//   The request is not valid.
8157//
8158//   * ThrottlingException
8159//   The rate exceeds the limit.
8160//
8161//   * UnauthorizedException
8162//   You are not authorized to perform this operation.
8163//
8164//   * ServiceUnavailableException
8165//   The service is temporarily unavailable.
8166//
8167//   * InternalFailureException
8168//   An unexpected error has occurred.
8169//
8170//   * ResourceNotFoundException
8171//   The specified resource does not exist.
8172//
8173func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
8174	req, out := c.DescribeIndexRequest(input)
8175	return out, req.Send()
8176}
8177
8178// DescribeIndexWithContext is the same as DescribeIndex with the addition of
8179// the ability to pass a context and additional request options.
8180//
8181// See DescribeIndex for details on how to use this API operation.
8182//
8183// The context must be non-nil and will be used for request cancellation. If
8184// the context is nil a panic will occur. In the future the SDK may create
8185// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8186// for more information on using Contexts.
8187func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
8188	req, out := c.DescribeIndexRequest(input)
8189	req.SetContext(ctx)
8190	req.ApplyOptions(opts...)
8191	return out, req.Send()
8192}
8193
8194const opDescribeJob = "DescribeJob"
8195
8196// DescribeJobRequest generates a "aws/request.Request" representing the
8197// client's request for the DescribeJob operation. The "output" return
8198// value will be populated with the request's response once the request completes
8199// successfully.
8200//
8201// Use "Send" method on the returned Request to send the API call to the service.
8202// the "output" return value is not valid until after Send returns without error.
8203//
8204// See DescribeJob for more information on using the DescribeJob
8205// API call, and error handling.
8206//
8207// This method is useful when you want to inject custom logic or configuration
8208// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8209//
8210//
8211//    // Example sending a request using the DescribeJobRequest method.
8212//    req, resp := client.DescribeJobRequest(params)
8213//
8214//    err := req.Send()
8215//    if err == nil { // resp is now filled
8216//        fmt.Println(resp)
8217//    }
8218func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
8219	op := &request.Operation{
8220		Name:       opDescribeJob,
8221		HTTPMethod: "GET",
8222		HTTPPath:   "/jobs/{jobId}",
8223	}
8224
8225	if input == nil {
8226		input = &DescribeJobInput{}
8227	}
8228
8229	output = &DescribeJobOutput{}
8230	req = c.newRequest(op, input, output)
8231	return
8232}
8233
8234// DescribeJob API operation for AWS IoT.
8235//
8236// Describes a job.
8237//
8238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8239// with awserr.Error's Code and Message methods to get detailed information about
8240// the error.
8241//
8242// See the AWS API reference guide for AWS IoT's
8243// API operation DescribeJob for usage and error information.
8244//
8245// Returned Error Types:
8246//   * InvalidRequestException
8247//   The request is not valid.
8248//
8249//   * ResourceNotFoundException
8250//   The specified resource does not exist.
8251//
8252//   * ThrottlingException
8253//   The rate exceeds the limit.
8254//
8255//   * ServiceUnavailableException
8256//   The service is temporarily unavailable.
8257//
8258func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
8259	req, out := c.DescribeJobRequest(input)
8260	return out, req.Send()
8261}
8262
8263// DescribeJobWithContext is the same as DescribeJob with the addition of
8264// the ability to pass a context and additional request options.
8265//
8266// See DescribeJob for details on how to use this API operation.
8267//
8268// The context must be non-nil and will be used for request cancellation. If
8269// the context is nil a panic will occur. In the future the SDK may create
8270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8271// for more information on using Contexts.
8272func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
8273	req, out := c.DescribeJobRequest(input)
8274	req.SetContext(ctx)
8275	req.ApplyOptions(opts...)
8276	return out, req.Send()
8277}
8278
8279const opDescribeJobExecution = "DescribeJobExecution"
8280
8281// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
8282// client's request for the DescribeJobExecution operation. The "output" return
8283// value will be populated with the request's response once the request completes
8284// successfully.
8285//
8286// Use "Send" method on the returned Request to send the API call to the service.
8287// the "output" return value is not valid until after Send returns without error.
8288//
8289// See DescribeJobExecution for more information on using the DescribeJobExecution
8290// API call, and error handling.
8291//
8292// This method is useful when you want to inject custom logic or configuration
8293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8294//
8295//
8296//    // Example sending a request using the DescribeJobExecutionRequest method.
8297//    req, resp := client.DescribeJobExecutionRequest(params)
8298//
8299//    err := req.Send()
8300//    if err == nil { // resp is now filled
8301//        fmt.Println(resp)
8302//    }
8303func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
8304	op := &request.Operation{
8305		Name:       opDescribeJobExecution,
8306		HTTPMethod: "GET",
8307		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
8308	}
8309
8310	if input == nil {
8311		input = &DescribeJobExecutionInput{}
8312	}
8313
8314	output = &DescribeJobExecutionOutput{}
8315	req = c.newRequest(op, input, output)
8316	return
8317}
8318
8319// DescribeJobExecution API operation for AWS IoT.
8320//
8321// Describes a job execution.
8322//
8323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8324// with awserr.Error's Code and Message methods to get detailed information about
8325// the error.
8326//
8327// See the AWS API reference guide for AWS IoT's
8328// API operation DescribeJobExecution for usage and error information.
8329//
8330// Returned Error Types:
8331//   * InvalidRequestException
8332//   The request is not valid.
8333//
8334//   * ResourceNotFoundException
8335//   The specified resource does not exist.
8336//
8337//   * ThrottlingException
8338//   The rate exceeds the limit.
8339//
8340//   * ServiceUnavailableException
8341//   The service is temporarily unavailable.
8342//
8343func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
8344	req, out := c.DescribeJobExecutionRequest(input)
8345	return out, req.Send()
8346}
8347
8348// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
8349// the ability to pass a context and additional request options.
8350//
8351// See DescribeJobExecution for details on how to use this API operation.
8352//
8353// The context must be non-nil and will be used for request cancellation. If
8354// the context is nil a panic will occur. In the future the SDK may create
8355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8356// for more information on using Contexts.
8357func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
8358	req, out := c.DescribeJobExecutionRequest(input)
8359	req.SetContext(ctx)
8360	req.ApplyOptions(opts...)
8361	return out, req.Send()
8362}
8363
8364const opDescribeMitigationAction = "DescribeMitigationAction"
8365
8366// DescribeMitigationActionRequest generates a "aws/request.Request" representing the
8367// client's request for the DescribeMitigationAction operation. The "output" return
8368// value will be populated with the request's response once the request completes
8369// successfully.
8370//
8371// Use "Send" method on the returned Request to send the API call to the service.
8372// the "output" return value is not valid until after Send returns without error.
8373//
8374// See DescribeMitigationAction for more information on using the DescribeMitigationAction
8375// API call, and error handling.
8376//
8377// This method is useful when you want to inject custom logic or configuration
8378// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8379//
8380//
8381//    // Example sending a request using the DescribeMitigationActionRequest method.
8382//    req, resp := client.DescribeMitigationActionRequest(params)
8383//
8384//    err := req.Send()
8385//    if err == nil { // resp is now filled
8386//        fmt.Println(resp)
8387//    }
8388func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
8389	op := &request.Operation{
8390		Name:       opDescribeMitigationAction,
8391		HTTPMethod: "GET",
8392		HTTPPath:   "/mitigationactions/actions/{actionName}",
8393	}
8394
8395	if input == nil {
8396		input = &DescribeMitigationActionInput{}
8397	}
8398
8399	output = &DescribeMitigationActionOutput{}
8400	req = c.newRequest(op, input, output)
8401	return
8402}
8403
8404// DescribeMitigationAction API operation for AWS IoT.
8405//
8406// Gets information about a mitigation action.
8407//
8408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8409// with awserr.Error's Code and Message methods to get detailed information about
8410// the error.
8411//
8412// See the AWS API reference guide for AWS IoT's
8413// API operation DescribeMitigationAction for usage and error information.
8414//
8415// Returned Error Types:
8416//   * InvalidRequestException
8417//   The request is not valid.
8418//
8419//   * ResourceNotFoundException
8420//   The specified resource does not exist.
8421//
8422//   * ThrottlingException
8423//   The rate exceeds the limit.
8424//
8425//   * InternalFailureException
8426//   An unexpected error has occurred.
8427//
8428func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
8429	req, out := c.DescribeMitigationActionRequest(input)
8430	return out, req.Send()
8431}
8432
8433// DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
8434// the ability to pass a context and additional request options.
8435//
8436// See DescribeMitigationAction for details on how to use this API operation.
8437//
8438// The context must be non-nil and will be used for request cancellation. If
8439// the context is nil a panic will occur. In the future the SDK may create
8440// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8441// for more information on using Contexts.
8442func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
8443	req, out := c.DescribeMitigationActionRequest(input)
8444	req.SetContext(ctx)
8445	req.ApplyOptions(opts...)
8446	return out, req.Send()
8447}
8448
8449const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
8450
8451// DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
8452// client's request for the DescribeProvisioningTemplate operation. The "output" return
8453// value will be populated with the request's response once the request completes
8454// successfully.
8455//
8456// Use "Send" method on the returned Request to send the API call to the service.
8457// the "output" return value is not valid until after Send returns without error.
8458//
8459// See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
8460// API call, and error handling.
8461//
8462// This method is useful when you want to inject custom logic or configuration
8463// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8464//
8465//
8466//    // Example sending a request using the DescribeProvisioningTemplateRequest method.
8467//    req, resp := client.DescribeProvisioningTemplateRequest(params)
8468//
8469//    err := req.Send()
8470//    if err == nil { // resp is now filled
8471//        fmt.Println(resp)
8472//    }
8473func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
8474	op := &request.Operation{
8475		Name:       opDescribeProvisioningTemplate,
8476		HTTPMethod: "GET",
8477		HTTPPath:   "/provisioning-templates/{templateName}",
8478	}
8479
8480	if input == nil {
8481		input = &DescribeProvisioningTemplateInput{}
8482	}
8483
8484	output = &DescribeProvisioningTemplateOutput{}
8485	req = c.newRequest(op, input, output)
8486	return
8487}
8488
8489// DescribeProvisioningTemplate API operation for AWS IoT.
8490//
8491// Returns information about a fleet provisioning template.
8492//
8493// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8494// with awserr.Error's Code and Message methods to get detailed information about
8495// the error.
8496//
8497// See the AWS API reference guide for AWS IoT's
8498// API operation DescribeProvisioningTemplate for usage and error information.
8499//
8500// Returned Error Types:
8501//   * InternalFailureException
8502//   An unexpected error has occurred.
8503//
8504//   * InvalidRequestException
8505//   The request is not valid.
8506//
8507//   * ResourceNotFoundException
8508//   The specified resource does not exist.
8509//
8510//   * ThrottlingException
8511//   The rate exceeds the limit.
8512//
8513//   * UnauthorizedException
8514//   You are not authorized to perform this operation.
8515//
8516func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
8517	req, out := c.DescribeProvisioningTemplateRequest(input)
8518	return out, req.Send()
8519}
8520
8521// DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
8522// the ability to pass a context and additional request options.
8523//
8524// See DescribeProvisioningTemplate for details on how to use this API operation.
8525//
8526// The context must be non-nil and will be used for request cancellation. If
8527// the context is nil a panic will occur. In the future the SDK may create
8528// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8529// for more information on using Contexts.
8530func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
8531	req, out := c.DescribeProvisioningTemplateRequest(input)
8532	req.SetContext(ctx)
8533	req.ApplyOptions(opts...)
8534	return out, req.Send()
8535}
8536
8537const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
8538
8539// DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
8540// client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
8541// value will be populated with the request's response once the request completes
8542// successfully.
8543//
8544// Use "Send" method on the returned Request to send the API call to the service.
8545// the "output" return value is not valid until after Send returns without error.
8546//
8547// See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
8548// API call, and error handling.
8549//
8550// This method is useful when you want to inject custom logic or configuration
8551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8552//
8553//
8554//    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
8555//    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
8556//
8557//    err := req.Send()
8558//    if err == nil { // resp is now filled
8559//        fmt.Println(resp)
8560//    }
8561func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
8562	op := &request.Operation{
8563		Name:       opDescribeProvisioningTemplateVersion,
8564		HTTPMethod: "GET",
8565		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
8566	}
8567
8568	if input == nil {
8569		input = &DescribeProvisioningTemplateVersionInput{}
8570	}
8571
8572	output = &DescribeProvisioningTemplateVersionOutput{}
8573	req = c.newRequest(op, input, output)
8574	return
8575}
8576
8577// DescribeProvisioningTemplateVersion API operation for AWS IoT.
8578//
8579// Returns information about a fleet provisioning template version.
8580//
8581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8582// with awserr.Error's Code and Message methods to get detailed information about
8583// the error.
8584//
8585// See the AWS API reference guide for AWS IoT's
8586// API operation DescribeProvisioningTemplateVersion for usage and error information.
8587//
8588// Returned Error Types:
8589//   * InternalFailureException
8590//   An unexpected error has occurred.
8591//
8592//   * InvalidRequestException
8593//   The request is not valid.
8594//
8595//   * ThrottlingException
8596//   The rate exceeds the limit.
8597//
8598//   * ResourceNotFoundException
8599//   The specified resource does not exist.
8600//
8601//   * UnauthorizedException
8602//   You are not authorized to perform this operation.
8603//
8604func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
8605	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8606	return out, req.Send()
8607}
8608
8609// DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
8610// the ability to pass a context and additional request options.
8611//
8612// See DescribeProvisioningTemplateVersion for details on how to use this API operation.
8613//
8614// The context must be non-nil and will be used for request cancellation. If
8615// the context is nil a panic will occur. In the future the SDK may create
8616// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8617// for more information on using Contexts.
8618func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
8619	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8620	req.SetContext(ctx)
8621	req.ApplyOptions(opts...)
8622	return out, req.Send()
8623}
8624
8625const opDescribeRoleAlias = "DescribeRoleAlias"
8626
8627// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
8628// client's request for the DescribeRoleAlias operation. The "output" return
8629// value will be populated with the request's response once the request completes
8630// successfully.
8631//
8632// Use "Send" method on the returned Request to send the API call to the service.
8633// the "output" return value is not valid until after Send returns without error.
8634//
8635// See DescribeRoleAlias for more information on using the DescribeRoleAlias
8636// API call, and error handling.
8637//
8638// This method is useful when you want to inject custom logic or configuration
8639// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8640//
8641//
8642//    // Example sending a request using the DescribeRoleAliasRequest method.
8643//    req, resp := client.DescribeRoleAliasRequest(params)
8644//
8645//    err := req.Send()
8646//    if err == nil { // resp is now filled
8647//        fmt.Println(resp)
8648//    }
8649func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
8650	op := &request.Operation{
8651		Name:       opDescribeRoleAlias,
8652		HTTPMethod: "GET",
8653		HTTPPath:   "/role-aliases/{roleAlias}",
8654	}
8655
8656	if input == nil {
8657		input = &DescribeRoleAliasInput{}
8658	}
8659
8660	output = &DescribeRoleAliasOutput{}
8661	req = c.newRequest(op, input, output)
8662	return
8663}
8664
8665// DescribeRoleAlias API operation for AWS IoT.
8666//
8667// Describes a role alias.
8668//
8669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8670// with awserr.Error's Code and Message methods to get detailed information about
8671// the error.
8672//
8673// See the AWS API reference guide for AWS IoT's
8674// API operation DescribeRoleAlias for usage and error information.
8675//
8676// Returned Error Types:
8677//   * InvalidRequestException
8678//   The request is not valid.
8679//
8680//   * ThrottlingException
8681//   The rate exceeds the limit.
8682//
8683//   * UnauthorizedException
8684//   You are not authorized to perform this operation.
8685//
8686//   * ServiceUnavailableException
8687//   The service is temporarily unavailable.
8688//
8689//   * InternalFailureException
8690//   An unexpected error has occurred.
8691//
8692//   * ResourceNotFoundException
8693//   The specified resource does not exist.
8694//
8695func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
8696	req, out := c.DescribeRoleAliasRequest(input)
8697	return out, req.Send()
8698}
8699
8700// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
8701// the ability to pass a context and additional request options.
8702//
8703// See DescribeRoleAlias for details on how to use this API operation.
8704//
8705// The context must be non-nil and will be used for request cancellation. If
8706// the context is nil a panic will occur. In the future the SDK may create
8707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8708// for more information on using Contexts.
8709func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
8710	req, out := c.DescribeRoleAliasRequest(input)
8711	req.SetContext(ctx)
8712	req.ApplyOptions(opts...)
8713	return out, req.Send()
8714}
8715
8716const opDescribeScheduledAudit = "DescribeScheduledAudit"
8717
8718// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
8719// client's request for the DescribeScheduledAudit operation. The "output" return
8720// value will be populated with the request's response once the request completes
8721// successfully.
8722//
8723// Use "Send" method on the returned Request to send the API call to the service.
8724// the "output" return value is not valid until after Send returns without error.
8725//
8726// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
8727// API call, and error handling.
8728//
8729// This method is useful when you want to inject custom logic or configuration
8730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8731//
8732//
8733//    // Example sending a request using the DescribeScheduledAuditRequest method.
8734//    req, resp := client.DescribeScheduledAuditRequest(params)
8735//
8736//    err := req.Send()
8737//    if err == nil { // resp is now filled
8738//        fmt.Println(resp)
8739//    }
8740func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
8741	op := &request.Operation{
8742		Name:       opDescribeScheduledAudit,
8743		HTTPMethod: "GET",
8744		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
8745	}
8746
8747	if input == nil {
8748		input = &DescribeScheduledAuditInput{}
8749	}
8750
8751	output = &DescribeScheduledAuditOutput{}
8752	req = c.newRequest(op, input, output)
8753	return
8754}
8755
8756// DescribeScheduledAudit API operation for AWS IoT.
8757//
8758// Gets information about a scheduled audit.
8759//
8760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8761// with awserr.Error's Code and Message methods to get detailed information about
8762// the error.
8763//
8764// See the AWS API reference guide for AWS IoT's
8765// API operation DescribeScheduledAudit for usage and error information.
8766//
8767// Returned Error Types:
8768//   * InvalidRequestException
8769//   The request is not valid.
8770//
8771//   * ResourceNotFoundException
8772//   The specified resource does not exist.
8773//
8774//   * ThrottlingException
8775//   The rate exceeds the limit.
8776//
8777//   * InternalFailureException
8778//   An unexpected error has occurred.
8779//
8780func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
8781	req, out := c.DescribeScheduledAuditRequest(input)
8782	return out, req.Send()
8783}
8784
8785// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
8786// the ability to pass a context and additional request options.
8787//
8788// See DescribeScheduledAudit for details on how to use this API operation.
8789//
8790// The context must be non-nil and will be used for request cancellation. If
8791// the context is nil a panic will occur. In the future the SDK may create
8792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8793// for more information on using Contexts.
8794func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
8795	req, out := c.DescribeScheduledAuditRequest(input)
8796	req.SetContext(ctx)
8797	req.ApplyOptions(opts...)
8798	return out, req.Send()
8799}
8800
8801const opDescribeSecurityProfile = "DescribeSecurityProfile"
8802
8803// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
8804// client's request for the DescribeSecurityProfile operation. The "output" return
8805// value will be populated with the request's response once the request completes
8806// successfully.
8807//
8808// Use "Send" method on the returned Request to send the API call to the service.
8809// the "output" return value is not valid until after Send returns without error.
8810//
8811// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
8812// API call, and error handling.
8813//
8814// This method is useful when you want to inject custom logic or configuration
8815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8816//
8817//
8818//    // Example sending a request using the DescribeSecurityProfileRequest method.
8819//    req, resp := client.DescribeSecurityProfileRequest(params)
8820//
8821//    err := req.Send()
8822//    if err == nil { // resp is now filled
8823//        fmt.Println(resp)
8824//    }
8825func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
8826	op := &request.Operation{
8827		Name:       opDescribeSecurityProfile,
8828		HTTPMethod: "GET",
8829		HTTPPath:   "/security-profiles/{securityProfileName}",
8830	}
8831
8832	if input == nil {
8833		input = &DescribeSecurityProfileInput{}
8834	}
8835
8836	output = &DescribeSecurityProfileOutput{}
8837	req = c.newRequest(op, input, output)
8838	return
8839}
8840
8841// DescribeSecurityProfile API operation for AWS IoT.
8842//
8843// Gets information about a Device Defender security profile.
8844//
8845// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8846// with awserr.Error's Code and Message methods to get detailed information about
8847// the error.
8848//
8849// See the AWS API reference guide for AWS IoT's
8850// API operation DescribeSecurityProfile for usage and error information.
8851//
8852// Returned Error Types:
8853//   * InvalidRequestException
8854//   The request is not valid.
8855//
8856//   * ResourceNotFoundException
8857//   The specified resource does not exist.
8858//
8859//   * ThrottlingException
8860//   The rate exceeds the limit.
8861//
8862//   * InternalFailureException
8863//   An unexpected error has occurred.
8864//
8865func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
8866	req, out := c.DescribeSecurityProfileRequest(input)
8867	return out, req.Send()
8868}
8869
8870// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
8871// the ability to pass a context and additional request options.
8872//
8873// See DescribeSecurityProfile for details on how to use this API operation.
8874//
8875// The context must be non-nil and will be used for request cancellation. If
8876// the context is nil a panic will occur. In the future the SDK may create
8877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8878// for more information on using Contexts.
8879func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
8880	req, out := c.DescribeSecurityProfileRequest(input)
8881	req.SetContext(ctx)
8882	req.ApplyOptions(opts...)
8883	return out, req.Send()
8884}
8885
8886const opDescribeStream = "DescribeStream"
8887
8888// DescribeStreamRequest generates a "aws/request.Request" representing the
8889// client's request for the DescribeStream operation. The "output" return
8890// value will be populated with the request's response once the request completes
8891// successfully.
8892//
8893// Use "Send" method on the returned Request to send the API call to the service.
8894// the "output" return value is not valid until after Send returns without error.
8895//
8896// See DescribeStream for more information on using the DescribeStream
8897// API call, and error handling.
8898//
8899// This method is useful when you want to inject custom logic or configuration
8900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8901//
8902//
8903//    // Example sending a request using the DescribeStreamRequest method.
8904//    req, resp := client.DescribeStreamRequest(params)
8905//
8906//    err := req.Send()
8907//    if err == nil { // resp is now filled
8908//        fmt.Println(resp)
8909//    }
8910func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
8911	op := &request.Operation{
8912		Name:       opDescribeStream,
8913		HTTPMethod: "GET",
8914		HTTPPath:   "/streams/{streamId}",
8915	}
8916
8917	if input == nil {
8918		input = &DescribeStreamInput{}
8919	}
8920
8921	output = &DescribeStreamOutput{}
8922	req = c.newRequest(op, input, output)
8923	return
8924}
8925
8926// DescribeStream API operation for AWS IoT.
8927//
8928// Gets information about a stream.
8929//
8930// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8931// with awserr.Error's Code and Message methods to get detailed information about
8932// the error.
8933//
8934// See the AWS API reference guide for AWS IoT's
8935// API operation DescribeStream for usage and error information.
8936//
8937// Returned Error Types:
8938//   * InvalidRequestException
8939//   The request is not valid.
8940//
8941//   * ResourceNotFoundException
8942//   The specified resource does not exist.
8943//
8944//   * ThrottlingException
8945//   The rate exceeds the limit.
8946//
8947//   * UnauthorizedException
8948//   You are not authorized to perform this operation.
8949//
8950//   * ServiceUnavailableException
8951//   The service is temporarily unavailable.
8952//
8953//   * InternalFailureException
8954//   An unexpected error has occurred.
8955//
8956func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
8957	req, out := c.DescribeStreamRequest(input)
8958	return out, req.Send()
8959}
8960
8961// DescribeStreamWithContext is the same as DescribeStream with the addition of
8962// the ability to pass a context and additional request options.
8963//
8964// See DescribeStream for details on how to use this API operation.
8965//
8966// The context must be non-nil and will be used for request cancellation. If
8967// the context is nil a panic will occur. In the future the SDK may create
8968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8969// for more information on using Contexts.
8970func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
8971	req, out := c.DescribeStreamRequest(input)
8972	req.SetContext(ctx)
8973	req.ApplyOptions(opts...)
8974	return out, req.Send()
8975}
8976
8977const opDescribeThing = "DescribeThing"
8978
8979// DescribeThingRequest generates a "aws/request.Request" representing the
8980// client's request for the DescribeThing operation. The "output" return
8981// value will be populated with the request's response once the request completes
8982// successfully.
8983//
8984// Use "Send" method on the returned Request to send the API call to the service.
8985// the "output" return value is not valid until after Send returns without error.
8986//
8987// See DescribeThing for more information on using the DescribeThing
8988// API call, and error handling.
8989//
8990// This method is useful when you want to inject custom logic or configuration
8991// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8992//
8993//
8994//    // Example sending a request using the DescribeThingRequest method.
8995//    req, resp := client.DescribeThingRequest(params)
8996//
8997//    err := req.Send()
8998//    if err == nil { // resp is now filled
8999//        fmt.Println(resp)
9000//    }
9001func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
9002	op := &request.Operation{
9003		Name:       opDescribeThing,
9004		HTTPMethod: "GET",
9005		HTTPPath:   "/things/{thingName}",
9006	}
9007
9008	if input == nil {
9009		input = &DescribeThingInput{}
9010	}
9011
9012	output = &DescribeThingOutput{}
9013	req = c.newRequest(op, input, output)
9014	return
9015}
9016
9017// DescribeThing API operation for AWS IoT.
9018//
9019// Gets information about the specified thing.
9020//
9021// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9022// with awserr.Error's Code and Message methods to get detailed information about
9023// the error.
9024//
9025// See the AWS API reference guide for AWS IoT's
9026// API operation DescribeThing for usage and error information.
9027//
9028// Returned Error Types:
9029//   * ResourceNotFoundException
9030//   The specified resource does not exist.
9031//
9032//   * InvalidRequestException
9033//   The request is not valid.
9034//
9035//   * ThrottlingException
9036//   The rate exceeds the limit.
9037//
9038//   * UnauthorizedException
9039//   You are not authorized to perform this operation.
9040//
9041//   * ServiceUnavailableException
9042//   The service is temporarily unavailable.
9043//
9044//   * InternalFailureException
9045//   An unexpected error has occurred.
9046//
9047func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
9048	req, out := c.DescribeThingRequest(input)
9049	return out, req.Send()
9050}
9051
9052// DescribeThingWithContext is the same as DescribeThing with the addition of
9053// the ability to pass a context and additional request options.
9054//
9055// See DescribeThing for details on how to use this API operation.
9056//
9057// The context must be non-nil and will be used for request cancellation. If
9058// the context is nil a panic will occur. In the future the SDK may create
9059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9060// for more information on using Contexts.
9061func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
9062	req, out := c.DescribeThingRequest(input)
9063	req.SetContext(ctx)
9064	req.ApplyOptions(opts...)
9065	return out, req.Send()
9066}
9067
9068const opDescribeThingGroup = "DescribeThingGroup"
9069
9070// DescribeThingGroupRequest generates a "aws/request.Request" representing the
9071// client's request for the DescribeThingGroup operation. The "output" return
9072// value will be populated with the request's response once the request completes
9073// successfully.
9074//
9075// Use "Send" method on the returned Request to send the API call to the service.
9076// the "output" return value is not valid until after Send returns without error.
9077//
9078// See DescribeThingGroup for more information on using the DescribeThingGroup
9079// API call, and error handling.
9080//
9081// This method is useful when you want to inject custom logic or configuration
9082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9083//
9084//
9085//    // Example sending a request using the DescribeThingGroupRequest method.
9086//    req, resp := client.DescribeThingGroupRequest(params)
9087//
9088//    err := req.Send()
9089//    if err == nil { // resp is now filled
9090//        fmt.Println(resp)
9091//    }
9092func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
9093	op := &request.Operation{
9094		Name:       opDescribeThingGroup,
9095		HTTPMethod: "GET",
9096		HTTPPath:   "/thing-groups/{thingGroupName}",
9097	}
9098
9099	if input == nil {
9100		input = &DescribeThingGroupInput{}
9101	}
9102
9103	output = &DescribeThingGroupOutput{}
9104	req = c.newRequest(op, input, output)
9105	return
9106}
9107
9108// DescribeThingGroup API operation for AWS IoT.
9109//
9110// Describe a thing group.
9111//
9112// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9113// with awserr.Error's Code and Message methods to get detailed information about
9114// the error.
9115//
9116// See the AWS API reference guide for AWS IoT's
9117// API operation DescribeThingGroup for usage and error information.
9118//
9119// Returned Error Types:
9120//   * InvalidRequestException
9121//   The request is not valid.
9122//
9123//   * ThrottlingException
9124//   The rate exceeds the limit.
9125//
9126//   * InternalFailureException
9127//   An unexpected error has occurred.
9128//
9129//   * ResourceNotFoundException
9130//   The specified resource does not exist.
9131//
9132func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
9133	req, out := c.DescribeThingGroupRequest(input)
9134	return out, req.Send()
9135}
9136
9137// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
9138// the ability to pass a context and additional request options.
9139//
9140// See DescribeThingGroup for details on how to use this API operation.
9141//
9142// The context must be non-nil and will be used for request cancellation. If
9143// the context is nil a panic will occur. In the future the SDK may create
9144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9145// for more information on using Contexts.
9146func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
9147	req, out := c.DescribeThingGroupRequest(input)
9148	req.SetContext(ctx)
9149	req.ApplyOptions(opts...)
9150	return out, req.Send()
9151}
9152
9153const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
9154
9155// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
9156// client's request for the DescribeThingRegistrationTask operation. The "output" return
9157// value will be populated with the request's response once the request completes
9158// successfully.
9159//
9160// Use "Send" method on the returned Request to send the API call to the service.
9161// the "output" return value is not valid until after Send returns without error.
9162//
9163// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
9164// API call, and error handling.
9165//
9166// This method is useful when you want to inject custom logic or configuration
9167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9168//
9169//
9170//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
9171//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
9172//
9173//    err := req.Send()
9174//    if err == nil { // resp is now filled
9175//        fmt.Println(resp)
9176//    }
9177func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
9178	op := &request.Operation{
9179		Name:       opDescribeThingRegistrationTask,
9180		HTTPMethod: "GET",
9181		HTTPPath:   "/thing-registration-tasks/{taskId}",
9182	}
9183
9184	if input == nil {
9185		input = &DescribeThingRegistrationTaskInput{}
9186	}
9187
9188	output = &DescribeThingRegistrationTaskOutput{}
9189	req = c.newRequest(op, input, output)
9190	return
9191}
9192
9193// DescribeThingRegistrationTask API operation for AWS IoT.
9194//
9195// Describes a bulk thing provisioning task.
9196//
9197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9198// with awserr.Error's Code and Message methods to get detailed information about
9199// the error.
9200//
9201// See the AWS API reference guide for AWS IoT's
9202// API operation DescribeThingRegistrationTask for usage and error information.
9203//
9204// Returned Error Types:
9205//   * InvalidRequestException
9206//   The request is not valid.
9207//
9208//   * ThrottlingException
9209//   The rate exceeds the limit.
9210//
9211//   * UnauthorizedException
9212//   You are not authorized to perform this operation.
9213//
9214//   * InternalFailureException
9215//   An unexpected error has occurred.
9216//
9217//   * ResourceNotFoundException
9218//   The specified resource does not exist.
9219//
9220func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
9221	req, out := c.DescribeThingRegistrationTaskRequest(input)
9222	return out, req.Send()
9223}
9224
9225// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
9226// the ability to pass a context and additional request options.
9227//
9228// See DescribeThingRegistrationTask for details on how to use this API operation.
9229//
9230// The context must be non-nil and will be used for request cancellation. If
9231// the context is nil a panic will occur. In the future the SDK may create
9232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9233// for more information on using Contexts.
9234func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
9235	req, out := c.DescribeThingRegistrationTaskRequest(input)
9236	req.SetContext(ctx)
9237	req.ApplyOptions(opts...)
9238	return out, req.Send()
9239}
9240
9241const opDescribeThingType = "DescribeThingType"
9242
9243// DescribeThingTypeRequest generates a "aws/request.Request" representing the
9244// client's request for the DescribeThingType operation. The "output" return
9245// value will be populated with the request's response once the request completes
9246// successfully.
9247//
9248// Use "Send" method on the returned Request to send the API call to the service.
9249// the "output" return value is not valid until after Send returns without error.
9250//
9251// See DescribeThingType for more information on using the DescribeThingType
9252// API call, and error handling.
9253//
9254// This method is useful when you want to inject custom logic or configuration
9255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9256//
9257//
9258//    // Example sending a request using the DescribeThingTypeRequest method.
9259//    req, resp := client.DescribeThingTypeRequest(params)
9260//
9261//    err := req.Send()
9262//    if err == nil { // resp is now filled
9263//        fmt.Println(resp)
9264//    }
9265func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
9266	op := &request.Operation{
9267		Name:       opDescribeThingType,
9268		HTTPMethod: "GET",
9269		HTTPPath:   "/thing-types/{thingTypeName}",
9270	}
9271
9272	if input == nil {
9273		input = &DescribeThingTypeInput{}
9274	}
9275
9276	output = &DescribeThingTypeOutput{}
9277	req = c.newRequest(op, input, output)
9278	return
9279}
9280
9281// DescribeThingType API operation for AWS IoT.
9282//
9283// Gets information about the specified thing type.
9284//
9285// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9286// with awserr.Error's Code and Message methods to get detailed information about
9287// the error.
9288//
9289// See the AWS API reference guide for AWS IoT's
9290// API operation DescribeThingType for usage and error information.
9291//
9292// Returned Error Types:
9293//   * ResourceNotFoundException
9294//   The specified resource does not exist.
9295//
9296//   * InvalidRequestException
9297//   The request is not valid.
9298//
9299//   * ThrottlingException
9300//   The rate exceeds the limit.
9301//
9302//   * UnauthorizedException
9303//   You are not authorized to perform this operation.
9304//
9305//   * ServiceUnavailableException
9306//   The service is temporarily unavailable.
9307//
9308//   * InternalFailureException
9309//   An unexpected error has occurred.
9310//
9311func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
9312	req, out := c.DescribeThingTypeRequest(input)
9313	return out, req.Send()
9314}
9315
9316// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
9317// the ability to pass a context and additional request options.
9318//
9319// See DescribeThingType for details on how to use this API operation.
9320//
9321// The context must be non-nil and will be used for request cancellation. If
9322// the context is nil a panic will occur. In the future the SDK may create
9323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9324// for more information on using Contexts.
9325func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
9326	req, out := c.DescribeThingTypeRequest(input)
9327	req.SetContext(ctx)
9328	req.ApplyOptions(opts...)
9329	return out, req.Send()
9330}
9331
9332const opDetachPolicy = "DetachPolicy"
9333
9334// DetachPolicyRequest generates a "aws/request.Request" representing the
9335// client's request for the DetachPolicy operation. The "output" return
9336// value will be populated with the request's response once the request completes
9337// successfully.
9338//
9339// Use "Send" method on the returned Request to send the API call to the service.
9340// the "output" return value is not valid until after Send returns without error.
9341//
9342// See DetachPolicy for more information on using the DetachPolicy
9343// API call, and error handling.
9344//
9345// This method is useful when you want to inject custom logic or configuration
9346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9347//
9348//
9349//    // Example sending a request using the DetachPolicyRequest method.
9350//    req, resp := client.DetachPolicyRequest(params)
9351//
9352//    err := req.Send()
9353//    if err == nil { // resp is now filled
9354//        fmt.Println(resp)
9355//    }
9356func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
9357	op := &request.Operation{
9358		Name:       opDetachPolicy,
9359		HTTPMethod: "POST",
9360		HTTPPath:   "/target-policies/{policyName}",
9361	}
9362
9363	if input == nil {
9364		input = &DetachPolicyInput{}
9365	}
9366
9367	output = &DetachPolicyOutput{}
9368	req = c.newRequest(op, input, output)
9369	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9370	return
9371}
9372
9373// DetachPolicy API operation for AWS IoT.
9374//
9375// Detaches a policy from the specified target.
9376//
9377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9378// with awserr.Error's Code and Message methods to get detailed information about
9379// the error.
9380//
9381// See the AWS API reference guide for AWS IoT's
9382// API operation DetachPolicy for usage and error information.
9383//
9384// Returned Error Types:
9385//   * InvalidRequestException
9386//   The request is not valid.
9387//
9388//   * ThrottlingException
9389//   The rate exceeds the limit.
9390//
9391//   * UnauthorizedException
9392//   You are not authorized to perform this operation.
9393//
9394//   * ServiceUnavailableException
9395//   The service is temporarily unavailable.
9396//
9397//   * InternalFailureException
9398//   An unexpected error has occurred.
9399//
9400//   * LimitExceededException
9401//   A limit has been exceeded.
9402//
9403func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
9404	req, out := c.DetachPolicyRequest(input)
9405	return out, req.Send()
9406}
9407
9408// DetachPolicyWithContext is the same as DetachPolicy with the addition of
9409// the ability to pass a context and additional request options.
9410//
9411// See DetachPolicy for details on how to use this API operation.
9412//
9413// The context must be non-nil and will be used for request cancellation. If
9414// the context is nil a panic will occur. In the future the SDK may create
9415// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9416// for more information on using Contexts.
9417func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
9418	req, out := c.DetachPolicyRequest(input)
9419	req.SetContext(ctx)
9420	req.ApplyOptions(opts...)
9421	return out, req.Send()
9422}
9423
9424const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
9425
9426// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
9427// client's request for the DetachPrincipalPolicy operation. The "output" return
9428// value will be populated with the request's response once the request completes
9429// successfully.
9430//
9431// Use "Send" method on the returned Request to send the API call to the service.
9432// the "output" return value is not valid until after Send returns without error.
9433//
9434// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
9435// API call, and error handling.
9436//
9437// This method is useful when you want to inject custom logic or configuration
9438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9439//
9440//
9441//    // Example sending a request using the DetachPrincipalPolicyRequest method.
9442//    req, resp := client.DetachPrincipalPolicyRequest(params)
9443//
9444//    err := req.Send()
9445//    if err == nil { // resp is now filled
9446//        fmt.Println(resp)
9447//    }
9448//
9449// Deprecated: DetachPrincipalPolicy has been deprecated
9450func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
9451	if c.Client.Config.Logger != nil {
9452		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
9453	}
9454	op := &request.Operation{
9455		Name:       opDetachPrincipalPolicy,
9456		HTTPMethod: "DELETE",
9457		HTTPPath:   "/principal-policies/{policyName}",
9458	}
9459
9460	if input == nil {
9461		input = &DetachPrincipalPolicyInput{}
9462	}
9463
9464	output = &DetachPrincipalPolicyOutput{}
9465	req = c.newRequest(op, input, output)
9466	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9467	return
9468}
9469
9470// DetachPrincipalPolicy API operation for AWS IoT.
9471//
9472// Removes the specified policy from the specified certificate.
9473//
9474// Note: This API is deprecated. Please use DetachPolicy instead.
9475//
9476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9477// with awserr.Error's Code and Message methods to get detailed information about
9478// the error.
9479//
9480// See the AWS API reference guide for AWS IoT's
9481// API operation DetachPrincipalPolicy for usage and error information.
9482//
9483// Returned Error Types:
9484//   * ResourceNotFoundException
9485//   The specified resource does not exist.
9486//
9487//   * InvalidRequestException
9488//   The request is not valid.
9489//
9490//   * ThrottlingException
9491//   The rate exceeds the limit.
9492//
9493//   * UnauthorizedException
9494//   You are not authorized to perform this operation.
9495//
9496//   * ServiceUnavailableException
9497//   The service is temporarily unavailable.
9498//
9499//   * InternalFailureException
9500//   An unexpected error has occurred.
9501//
9502//
9503// Deprecated: DetachPrincipalPolicy has been deprecated
9504func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
9505	req, out := c.DetachPrincipalPolicyRequest(input)
9506	return out, req.Send()
9507}
9508
9509// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
9510// the ability to pass a context and additional request options.
9511//
9512// See DetachPrincipalPolicy for details on how to use this API operation.
9513//
9514// The context must be non-nil and will be used for request cancellation. If
9515// the context is nil a panic will occur. In the future the SDK may create
9516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9517// for more information on using Contexts.
9518//
9519// Deprecated: DetachPrincipalPolicyWithContext has been deprecated
9520func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
9521	req, out := c.DetachPrincipalPolicyRequest(input)
9522	req.SetContext(ctx)
9523	req.ApplyOptions(opts...)
9524	return out, req.Send()
9525}
9526
9527const opDetachSecurityProfile = "DetachSecurityProfile"
9528
9529// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
9530// client's request for the DetachSecurityProfile operation. The "output" return
9531// value will be populated with the request's response once the request completes
9532// successfully.
9533//
9534// Use "Send" method on the returned Request to send the API call to the service.
9535// the "output" return value is not valid until after Send returns without error.
9536//
9537// See DetachSecurityProfile for more information on using the DetachSecurityProfile
9538// API call, and error handling.
9539//
9540// This method is useful when you want to inject custom logic or configuration
9541// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9542//
9543//
9544//    // Example sending a request using the DetachSecurityProfileRequest method.
9545//    req, resp := client.DetachSecurityProfileRequest(params)
9546//
9547//    err := req.Send()
9548//    if err == nil { // resp is now filled
9549//        fmt.Println(resp)
9550//    }
9551func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
9552	op := &request.Operation{
9553		Name:       opDetachSecurityProfile,
9554		HTTPMethod: "DELETE",
9555		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
9556	}
9557
9558	if input == nil {
9559		input = &DetachSecurityProfileInput{}
9560	}
9561
9562	output = &DetachSecurityProfileOutput{}
9563	req = c.newRequest(op, input, output)
9564	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9565	return
9566}
9567
9568// DetachSecurityProfile API operation for AWS IoT.
9569//
9570// Disassociates a Device Defender security profile from a thing group or from
9571// this account.
9572//
9573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9574// with awserr.Error's Code and Message methods to get detailed information about
9575// the error.
9576//
9577// See the AWS API reference guide for AWS IoT's
9578// API operation DetachSecurityProfile for usage and error information.
9579//
9580// Returned Error Types:
9581//   * InvalidRequestException
9582//   The request is not valid.
9583//
9584//   * ResourceNotFoundException
9585//   The specified resource does not exist.
9586//
9587//   * ThrottlingException
9588//   The rate exceeds the limit.
9589//
9590//   * InternalFailureException
9591//   An unexpected error has occurred.
9592//
9593func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
9594	req, out := c.DetachSecurityProfileRequest(input)
9595	return out, req.Send()
9596}
9597
9598// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
9599// the ability to pass a context and additional request options.
9600//
9601// See DetachSecurityProfile for details on how to use this API operation.
9602//
9603// The context must be non-nil and will be used for request cancellation. If
9604// the context is nil a panic will occur. In the future the SDK may create
9605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9606// for more information on using Contexts.
9607func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
9608	req, out := c.DetachSecurityProfileRequest(input)
9609	req.SetContext(ctx)
9610	req.ApplyOptions(opts...)
9611	return out, req.Send()
9612}
9613
9614const opDetachThingPrincipal = "DetachThingPrincipal"
9615
9616// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
9617// client's request for the DetachThingPrincipal operation. The "output" return
9618// value will be populated with the request's response once the request completes
9619// successfully.
9620//
9621// Use "Send" method on the returned Request to send the API call to the service.
9622// the "output" return value is not valid until after Send returns without error.
9623//
9624// See DetachThingPrincipal for more information on using the DetachThingPrincipal
9625// API call, and error handling.
9626//
9627// This method is useful when you want to inject custom logic or configuration
9628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9629//
9630//
9631//    // Example sending a request using the DetachThingPrincipalRequest method.
9632//    req, resp := client.DetachThingPrincipalRequest(params)
9633//
9634//    err := req.Send()
9635//    if err == nil { // resp is now filled
9636//        fmt.Println(resp)
9637//    }
9638func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
9639	op := &request.Operation{
9640		Name:       opDetachThingPrincipal,
9641		HTTPMethod: "DELETE",
9642		HTTPPath:   "/things/{thingName}/principals",
9643	}
9644
9645	if input == nil {
9646		input = &DetachThingPrincipalInput{}
9647	}
9648
9649	output = &DetachThingPrincipalOutput{}
9650	req = c.newRequest(op, input, output)
9651	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9652	return
9653}
9654
9655// DetachThingPrincipal API operation for AWS IoT.
9656//
9657// Detaches the specified principal from the specified thing. A principal can
9658// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
9659// or federated identities.
9660//
9661// This call is asynchronous. It might take several seconds for the detachment
9662// to propagate.
9663//
9664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9665// with awserr.Error's Code and Message methods to get detailed information about
9666// the error.
9667//
9668// See the AWS API reference guide for AWS IoT's
9669// API operation DetachThingPrincipal for usage and error information.
9670//
9671// Returned Error Types:
9672//   * ResourceNotFoundException
9673//   The specified resource does not exist.
9674//
9675//   * InvalidRequestException
9676//   The request is not valid.
9677//
9678//   * ThrottlingException
9679//   The rate exceeds the limit.
9680//
9681//   * UnauthorizedException
9682//   You are not authorized to perform this operation.
9683//
9684//   * ServiceUnavailableException
9685//   The service is temporarily unavailable.
9686//
9687//   * InternalFailureException
9688//   An unexpected error has occurred.
9689//
9690func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
9691	req, out := c.DetachThingPrincipalRequest(input)
9692	return out, req.Send()
9693}
9694
9695// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
9696// the ability to pass a context and additional request options.
9697//
9698// See DetachThingPrincipal for details on how to use this API operation.
9699//
9700// The context must be non-nil and will be used for request cancellation. If
9701// the context is nil a panic will occur. In the future the SDK may create
9702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9703// for more information on using Contexts.
9704func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
9705	req, out := c.DetachThingPrincipalRequest(input)
9706	req.SetContext(ctx)
9707	req.ApplyOptions(opts...)
9708	return out, req.Send()
9709}
9710
9711const opDisableTopicRule = "DisableTopicRule"
9712
9713// DisableTopicRuleRequest generates a "aws/request.Request" representing the
9714// client's request for the DisableTopicRule operation. The "output" return
9715// value will be populated with the request's response once the request completes
9716// successfully.
9717//
9718// Use "Send" method on the returned Request to send the API call to the service.
9719// the "output" return value is not valid until after Send returns without error.
9720//
9721// See DisableTopicRule for more information on using the DisableTopicRule
9722// API call, and error handling.
9723//
9724// This method is useful when you want to inject custom logic or configuration
9725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9726//
9727//
9728//    // Example sending a request using the DisableTopicRuleRequest method.
9729//    req, resp := client.DisableTopicRuleRequest(params)
9730//
9731//    err := req.Send()
9732//    if err == nil { // resp is now filled
9733//        fmt.Println(resp)
9734//    }
9735func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
9736	op := &request.Operation{
9737		Name:       opDisableTopicRule,
9738		HTTPMethod: "POST",
9739		HTTPPath:   "/rules/{ruleName}/disable",
9740	}
9741
9742	if input == nil {
9743		input = &DisableTopicRuleInput{}
9744	}
9745
9746	output = &DisableTopicRuleOutput{}
9747	req = c.newRequest(op, input, output)
9748	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9749	return
9750}
9751
9752// DisableTopicRule API operation for AWS IoT.
9753//
9754// Disables the rule.
9755//
9756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9757// with awserr.Error's Code and Message methods to get detailed information about
9758// the error.
9759//
9760// See the AWS API reference guide for AWS IoT's
9761// API operation DisableTopicRule for usage and error information.
9762//
9763// Returned Error Types:
9764//   * InternalException
9765//   An unexpected error has occurred.
9766//
9767//   * InvalidRequestException
9768//   The request is not valid.
9769//
9770//   * ServiceUnavailableException
9771//   The service is temporarily unavailable.
9772//
9773//   * UnauthorizedException
9774//   You are not authorized to perform this operation.
9775//
9776//   * ConflictingResourceUpdateException
9777//   A conflicting resource update exception. This exception is thrown when two
9778//   pending updates cause a conflict.
9779//
9780func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
9781	req, out := c.DisableTopicRuleRequest(input)
9782	return out, req.Send()
9783}
9784
9785// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
9786// the ability to pass a context and additional request options.
9787//
9788// See DisableTopicRule for details on how to use this API operation.
9789//
9790// The context must be non-nil and will be used for request cancellation. If
9791// the context is nil a panic will occur. In the future the SDK may create
9792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9793// for more information on using Contexts.
9794func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
9795	req, out := c.DisableTopicRuleRequest(input)
9796	req.SetContext(ctx)
9797	req.ApplyOptions(opts...)
9798	return out, req.Send()
9799}
9800
9801const opEnableTopicRule = "EnableTopicRule"
9802
9803// EnableTopicRuleRequest generates a "aws/request.Request" representing the
9804// client's request for the EnableTopicRule operation. The "output" return
9805// value will be populated with the request's response once the request completes
9806// successfully.
9807//
9808// Use "Send" method on the returned Request to send the API call to the service.
9809// the "output" return value is not valid until after Send returns without error.
9810//
9811// See EnableTopicRule for more information on using the EnableTopicRule
9812// API call, and error handling.
9813//
9814// This method is useful when you want to inject custom logic or configuration
9815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9816//
9817//
9818//    // Example sending a request using the EnableTopicRuleRequest method.
9819//    req, resp := client.EnableTopicRuleRequest(params)
9820//
9821//    err := req.Send()
9822//    if err == nil { // resp is now filled
9823//        fmt.Println(resp)
9824//    }
9825func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
9826	op := &request.Operation{
9827		Name:       opEnableTopicRule,
9828		HTTPMethod: "POST",
9829		HTTPPath:   "/rules/{ruleName}/enable",
9830	}
9831
9832	if input == nil {
9833		input = &EnableTopicRuleInput{}
9834	}
9835
9836	output = &EnableTopicRuleOutput{}
9837	req = c.newRequest(op, input, output)
9838	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9839	return
9840}
9841
9842// EnableTopicRule API operation for AWS IoT.
9843//
9844// Enables the rule.
9845//
9846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9847// with awserr.Error's Code and Message methods to get detailed information about
9848// the error.
9849//
9850// See the AWS API reference guide for AWS IoT's
9851// API operation EnableTopicRule for usage and error information.
9852//
9853// Returned Error Types:
9854//   * InternalException
9855//   An unexpected error has occurred.
9856//
9857//   * InvalidRequestException
9858//   The request is not valid.
9859//
9860//   * ServiceUnavailableException
9861//   The service is temporarily unavailable.
9862//
9863//   * UnauthorizedException
9864//   You are not authorized to perform this operation.
9865//
9866//   * ConflictingResourceUpdateException
9867//   A conflicting resource update exception. This exception is thrown when two
9868//   pending updates cause a conflict.
9869//
9870func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
9871	req, out := c.EnableTopicRuleRequest(input)
9872	return out, req.Send()
9873}
9874
9875// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
9876// the ability to pass a context and additional request options.
9877//
9878// See EnableTopicRule for details on how to use this API operation.
9879//
9880// The context must be non-nil and will be used for request cancellation. If
9881// the context is nil a panic will occur. In the future the SDK may create
9882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9883// for more information on using Contexts.
9884func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
9885	req, out := c.EnableTopicRuleRequest(input)
9886	req.SetContext(ctx)
9887	req.ApplyOptions(opts...)
9888	return out, req.Send()
9889}
9890
9891const opGetBehaviorModelTrainingSummaries = "GetBehaviorModelTrainingSummaries"
9892
9893// GetBehaviorModelTrainingSummariesRequest generates a "aws/request.Request" representing the
9894// client's request for the GetBehaviorModelTrainingSummaries operation. The "output" return
9895// value will be populated with the request's response once the request completes
9896// successfully.
9897//
9898// Use "Send" method on the returned Request to send the API call to the service.
9899// the "output" return value is not valid until after Send returns without error.
9900//
9901// See GetBehaviorModelTrainingSummaries for more information on using the GetBehaviorModelTrainingSummaries
9902// API call, and error handling.
9903//
9904// This method is useful when you want to inject custom logic or configuration
9905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9906//
9907//
9908//    // Example sending a request using the GetBehaviorModelTrainingSummariesRequest method.
9909//    req, resp := client.GetBehaviorModelTrainingSummariesRequest(params)
9910//
9911//    err := req.Send()
9912//    if err == nil { // resp is now filled
9913//        fmt.Println(resp)
9914//    }
9915func (c *IoT) GetBehaviorModelTrainingSummariesRequest(input *GetBehaviorModelTrainingSummariesInput) (req *request.Request, output *GetBehaviorModelTrainingSummariesOutput) {
9916	op := &request.Operation{
9917		Name:       opGetBehaviorModelTrainingSummaries,
9918		HTTPMethod: "GET",
9919		HTTPPath:   "/behavior-model-training/summaries",
9920		Paginator: &request.Paginator{
9921			InputTokens:     []string{"nextToken"},
9922			OutputTokens:    []string{"nextToken"},
9923			LimitToken:      "maxResults",
9924			TruncationToken: "",
9925		},
9926	}
9927
9928	if input == nil {
9929		input = &GetBehaviorModelTrainingSummariesInput{}
9930	}
9931
9932	output = &GetBehaviorModelTrainingSummariesOutput{}
9933	req = c.newRequest(op, input, output)
9934	return
9935}
9936
9937// GetBehaviorModelTrainingSummaries API operation for AWS IoT.
9938//
9939// Returns a Device Defender's ML Detect Security Profile training model's status.
9940//
9941// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9942// with awserr.Error's Code and Message methods to get detailed information about
9943// the error.
9944//
9945// See the AWS API reference guide for AWS IoT's
9946// API operation GetBehaviorModelTrainingSummaries for usage and error information.
9947//
9948// Returned Error Types:
9949//   * InvalidRequestException
9950//   The request is not valid.
9951//
9952//   * ThrottlingException
9953//   The rate exceeds the limit.
9954//
9955//   * InternalFailureException
9956//   An unexpected error has occurred.
9957//
9958//   * ResourceNotFoundException
9959//   The specified resource does not exist.
9960//
9961func (c *IoT) GetBehaviorModelTrainingSummaries(input *GetBehaviorModelTrainingSummariesInput) (*GetBehaviorModelTrainingSummariesOutput, error) {
9962	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
9963	return out, req.Send()
9964}
9965
9966// GetBehaviorModelTrainingSummariesWithContext is the same as GetBehaviorModelTrainingSummaries with the addition of
9967// the ability to pass a context and additional request options.
9968//
9969// See GetBehaviorModelTrainingSummaries for details on how to use this API operation.
9970//
9971// The context must be non-nil and will be used for request cancellation. If
9972// the context is nil a panic will occur. In the future the SDK may create
9973// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9974// for more information on using Contexts.
9975func (c *IoT) GetBehaviorModelTrainingSummariesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, opts ...request.Option) (*GetBehaviorModelTrainingSummariesOutput, error) {
9976	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
9977	req.SetContext(ctx)
9978	req.ApplyOptions(opts...)
9979	return out, req.Send()
9980}
9981
9982// GetBehaviorModelTrainingSummariesPages iterates over the pages of a GetBehaviorModelTrainingSummaries operation,
9983// calling the "fn" function with the response data for each page. To stop
9984// iterating, return false from the fn function.
9985//
9986// See GetBehaviorModelTrainingSummaries method for more information on how to use this operation.
9987//
9988// Note: This operation can generate multiple requests to a service.
9989//
9990//    // Example iterating over at most 3 pages of a GetBehaviorModelTrainingSummaries operation.
9991//    pageNum := 0
9992//    err := client.GetBehaviorModelTrainingSummariesPages(params,
9993//        func(page *iot.GetBehaviorModelTrainingSummariesOutput, lastPage bool) bool {
9994//            pageNum++
9995//            fmt.Println(page)
9996//            return pageNum <= 3
9997//        })
9998//
9999func (c *IoT) GetBehaviorModelTrainingSummariesPages(input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool) error {
10000	return c.GetBehaviorModelTrainingSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
10001}
10002
10003// GetBehaviorModelTrainingSummariesPagesWithContext same as GetBehaviorModelTrainingSummariesPages except
10004// it takes a Context and allows setting request options on the pages.
10005//
10006// The context must be non-nil and will be used for request cancellation. If
10007// the context is nil a panic will occur. In the future the SDK may create
10008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10009// for more information on using Contexts.
10010func (c *IoT) GetBehaviorModelTrainingSummariesPagesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool, opts ...request.Option) error {
10011	p := request.Pagination{
10012		NewRequest: func() (*request.Request, error) {
10013			var inCpy *GetBehaviorModelTrainingSummariesInput
10014			if input != nil {
10015				tmp := *input
10016				inCpy = &tmp
10017			}
10018			req, _ := c.GetBehaviorModelTrainingSummariesRequest(inCpy)
10019			req.SetContext(ctx)
10020			req.ApplyOptions(opts...)
10021			return req, nil
10022		},
10023	}
10024
10025	for p.Next() {
10026		if !fn(p.Page().(*GetBehaviorModelTrainingSummariesOutput), !p.HasNextPage()) {
10027			break
10028		}
10029	}
10030
10031	return p.Err()
10032}
10033
10034const opGetCardinality = "GetCardinality"
10035
10036// GetCardinalityRequest generates a "aws/request.Request" representing the
10037// client's request for the GetCardinality operation. The "output" return
10038// value will be populated with the request's response once the request completes
10039// successfully.
10040//
10041// Use "Send" method on the returned Request to send the API call to the service.
10042// the "output" return value is not valid until after Send returns without error.
10043//
10044// See GetCardinality for more information on using the GetCardinality
10045// API call, and error handling.
10046//
10047// This method is useful when you want to inject custom logic or configuration
10048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10049//
10050//
10051//    // Example sending a request using the GetCardinalityRequest method.
10052//    req, resp := client.GetCardinalityRequest(params)
10053//
10054//    err := req.Send()
10055//    if err == nil { // resp is now filled
10056//        fmt.Println(resp)
10057//    }
10058func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
10059	op := &request.Operation{
10060		Name:       opGetCardinality,
10061		HTTPMethod: "POST",
10062		HTTPPath:   "/indices/cardinality",
10063	}
10064
10065	if input == nil {
10066		input = &GetCardinalityInput{}
10067	}
10068
10069	output = &GetCardinalityOutput{}
10070	req = c.newRequest(op, input, output)
10071	return
10072}
10073
10074// GetCardinality API operation for AWS IoT.
10075//
10076// Returns the approximate count of unique values that match the query.
10077//
10078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10079// with awserr.Error's Code and Message methods to get detailed information about
10080// the error.
10081//
10082// See the AWS API reference guide for AWS IoT's
10083// API operation GetCardinality for usage and error information.
10084//
10085// Returned Error Types:
10086//   * InvalidRequestException
10087//   The request is not valid.
10088//
10089//   * ThrottlingException
10090//   The rate exceeds the limit.
10091//
10092//   * UnauthorizedException
10093//   You are not authorized to perform this operation.
10094//
10095//   * ServiceUnavailableException
10096//   The service is temporarily unavailable.
10097//
10098//   * InternalFailureException
10099//   An unexpected error has occurred.
10100//
10101//   * ResourceNotFoundException
10102//   The specified resource does not exist.
10103//
10104//   * InvalidQueryException
10105//   The query is invalid.
10106//
10107//   * InvalidAggregationException
10108//   The aggregation is invalid.
10109//
10110//   * IndexNotReadyException
10111//   The index is not ready.
10112//
10113func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
10114	req, out := c.GetCardinalityRequest(input)
10115	return out, req.Send()
10116}
10117
10118// GetCardinalityWithContext is the same as GetCardinality with the addition of
10119// the ability to pass a context and additional request options.
10120//
10121// See GetCardinality for details on how to use this API operation.
10122//
10123// The context must be non-nil and will be used for request cancellation. If
10124// the context is nil a panic will occur. In the future the SDK may create
10125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10126// for more information on using Contexts.
10127func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
10128	req, out := c.GetCardinalityRequest(input)
10129	req.SetContext(ctx)
10130	req.ApplyOptions(opts...)
10131	return out, req.Send()
10132}
10133
10134const opGetEffectivePolicies = "GetEffectivePolicies"
10135
10136// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
10137// client's request for the GetEffectivePolicies operation. The "output" return
10138// value will be populated with the request's response once the request completes
10139// successfully.
10140//
10141// Use "Send" method on the returned Request to send the API call to the service.
10142// the "output" return value is not valid until after Send returns without error.
10143//
10144// See GetEffectivePolicies for more information on using the GetEffectivePolicies
10145// API call, and error handling.
10146//
10147// This method is useful when you want to inject custom logic or configuration
10148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10149//
10150//
10151//    // Example sending a request using the GetEffectivePoliciesRequest method.
10152//    req, resp := client.GetEffectivePoliciesRequest(params)
10153//
10154//    err := req.Send()
10155//    if err == nil { // resp is now filled
10156//        fmt.Println(resp)
10157//    }
10158func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
10159	op := &request.Operation{
10160		Name:       opGetEffectivePolicies,
10161		HTTPMethod: "POST",
10162		HTTPPath:   "/effective-policies",
10163	}
10164
10165	if input == nil {
10166		input = &GetEffectivePoliciesInput{}
10167	}
10168
10169	output = &GetEffectivePoliciesOutput{}
10170	req = c.newRequest(op, input, output)
10171	return
10172}
10173
10174// GetEffectivePolicies API operation for AWS IoT.
10175//
10176// Gets a list of the policies that have an effect on the authorization behavior
10177// of the specified device when it connects to the AWS IoT device gateway.
10178//
10179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10180// with awserr.Error's Code and Message methods to get detailed information about
10181// the error.
10182//
10183// See the AWS API reference guide for AWS IoT's
10184// API operation GetEffectivePolicies for usage and error information.
10185//
10186// Returned Error Types:
10187//   * ResourceNotFoundException
10188//   The specified resource does not exist.
10189//
10190//   * InvalidRequestException
10191//   The request is not valid.
10192//
10193//   * ThrottlingException
10194//   The rate exceeds the limit.
10195//
10196//   * UnauthorizedException
10197//   You are not authorized to perform this operation.
10198//
10199//   * ServiceUnavailableException
10200//   The service is temporarily unavailable.
10201//
10202//   * InternalFailureException
10203//   An unexpected error has occurred.
10204//
10205//   * LimitExceededException
10206//   A limit has been exceeded.
10207//
10208func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
10209	req, out := c.GetEffectivePoliciesRequest(input)
10210	return out, req.Send()
10211}
10212
10213// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
10214// the ability to pass a context and additional request options.
10215//
10216// See GetEffectivePolicies for details on how to use this API operation.
10217//
10218// The context must be non-nil and will be used for request cancellation. If
10219// the context is nil a panic will occur. In the future the SDK may create
10220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10221// for more information on using Contexts.
10222func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
10223	req, out := c.GetEffectivePoliciesRequest(input)
10224	req.SetContext(ctx)
10225	req.ApplyOptions(opts...)
10226	return out, req.Send()
10227}
10228
10229const opGetIndexingConfiguration = "GetIndexingConfiguration"
10230
10231// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
10232// client's request for the GetIndexingConfiguration operation. The "output" return
10233// value will be populated with the request's response once the request completes
10234// successfully.
10235//
10236// Use "Send" method on the returned Request to send the API call to the service.
10237// the "output" return value is not valid until after Send returns without error.
10238//
10239// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
10240// API call, and error handling.
10241//
10242// This method is useful when you want to inject custom logic or configuration
10243// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10244//
10245//
10246//    // Example sending a request using the GetIndexingConfigurationRequest method.
10247//    req, resp := client.GetIndexingConfigurationRequest(params)
10248//
10249//    err := req.Send()
10250//    if err == nil { // resp is now filled
10251//        fmt.Println(resp)
10252//    }
10253func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
10254	op := &request.Operation{
10255		Name:       opGetIndexingConfiguration,
10256		HTTPMethod: "GET",
10257		HTTPPath:   "/indexing/config",
10258	}
10259
10260	if input == nil {
10261		input = &GetIndexingConfigurationInput{}
10262	}
10263
10264	output = &GetIndexingConfigurationOutput{}
10265	req = c.newRequest(op, input, output)
10266	return
10267}
10268
10269// GetIndexingConfiguration API operation for AWS IoT.
10270//
10271// Gets the indexing configuration.
10272//
10273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10274// with awserr.Error's Code and Message methods to get detailed information about
10275// the error.
10276//
10277// See the AWS API reference guide for AWS IoT's
10278// API operation GetIndexingConfiguration for usage and error information.
10279//
10280// Returned Error Types:
10281//   * InvalidRequestException
10282//   The request is not valid.
10283//
10284//   * ThrottlingException
10285//   The rate exceeds the limit.
10286//
10287//   * UnauthorizedException
10288//   You are not authorized to perform this operation.
10289//
10290//   * ServiceUnavailableException
10291//   The service is temporarily unavailable.
10292//
10293//   * InternalFailureException
10294//   An unexpected error has occurred.
10295//
10296func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
10297	req, out := c.GetIndexingConfigurationRequest(input)
10298	return out, req.Send()
10299}
10300
10301// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
10302// the ability to pass a context and additional request options.
10303//
10304// See GetIndexingConfiguration for details on how to use this API operation.
10305//
10306// The context must be non-nil and will be used for request cancellation. If
10307// the context is nil a panic will occur. In the future the SDK may create
10308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10309// for more information on using Contexts.
10310func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
10311	req, out := c.GetIndexingConfigurationRequest(input)
10312	req.SetContext(ctx)
10313	req.ApplyOptions(opts...)
10314	return out, req.Send()
10315}
10316
10317const opGetJobDocument = "GetJobDocument"
10318
10319// GetJobDocumentRequest generates a "aws/request.Request" representing the
10320// client's request for the GetJobDocument operation. The "output" return
10321// value will be populated with the request's response once the request completes
10322// successfully.
10323//
10324// Use "Send" method on the returned Request to send the API call to the service.
10325// the "output" return value is not valid until after Send returns without error.
10326//
10327// See GetJobDocument for more information on using the GetJobDocument
10328// API call, and error handling.
10329//
10330// This method is useful when you want to inject custom logic or configuration
10331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10332//
10333//
10334//    // Example sending a request using the GetJobDocumentRequest method.
10335//    req, resp := client.GetJobDocumentRequest(params)
10336//
10337//    err := req.Send()
10338//    if err == nil { // resp is now filled
10339//        fmt.Println(resp)
10340//    }
10341func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
10342	op := &request.Operation{
10343		Name:       opGetJobDocument,
10344		HTTPMethod: "GET",
10345		HTTPPath:   "/jobs/{jobId}/job-document",
10346	}
10347
10348	if input == nil {
10349		input = &GetJobDocumentInput{}
10350	}
10351
10352	output = &GetJobDocumentOutput{}
10353	req = c.newRequest(op, input, output)
10354	return
10355}
10356
10357// GetJobDocument API operation for AWS IoT.
10358//
10359// Gets a job document.
10360//
10361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10362// with awserr.Error's Code and Message methods to get detailed information about
10363// the error.
10364//
10365// See the AWS API reference guide for AWS IoT's
10366// API operation GetJobDocument for usage and error information.
10367//
10368// Returned Error Types:
10369//   * InvalidRequestException
10370//   The request is not valid.
10371//
10372//   * ResourceNotFoundException
10373//   The specified resource does not exist.
10374//
10375//   * ThrottlingException
10376//   The rate exceeds the limit.
10377//
10378//   * ServiceUnavailableException
10379//   The service is temporarily unavailable.
10380//
10381func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
10382	req, out := c.GetJobDocumentRequest(input)
10383	return out, req.Send()
10384}
10385
10386// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
10387// the ability to pass a context and additional request options.
10388//
10389// See GetJobDocument for details on how to use this API operation.
10390//
10391// The context must be non-nil and will be used for request cancellation. If
10392// the context is nil a panic will occur. In the future the SDK may create
10393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10394// for more information on using Contexts.
10395func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
10396	req, out := c.GetJobDocumentRequest(input)
10397	req.SetContext(ctx)
10398	req.ApplyOptions(opts...)
10399	return out, req.Send()
10400}
10401
10402const opGetLoggingOptions = "GetLoggingOptions"
10403
10404// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
10405// client's request for the GetLoggingOptions operation. The "output" return
10406// value will be populated with the request's response once the request completes
10407// successfully.
10408//
10409// Use "Send" method on the returned Request to send the API call to the service.
10410// the "output" return value is not valid until after Send returns without error.
10411//
10412// See GetLoggingOptions for more information on using the GetLoggingOptions
10413// API call, and error handling.
10414//
10415// This method is useful when you want to inject custom logic or configuration
10416// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10417//
10418//
10419//    // Example sending a request using the GetLoggingOptionsRequest method.
10420//    req, resp := client.GetLoggingOptionsRequest(params)
10421//
10422//    err := req.Send()
10423//    if err == nil { // resp is now filled
10424//        fmt.Println(resp)
10425//    }
10426func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
10427	op := &request.Operation{
10428		Name:       opGetLoggingOptions,
10429		HTTPMethod: "GET",
10430		HTTPPath:   "/loggingOptions",
10431	}
10432
10433	if input == nil {
10434		input = &GetLoggingOptionsInput{}
10435	}
10436
10437	output = &GetLoggingOptionsOutput{}
10438	req = c.newRequest(op, input, output)
10439	return
10440}
10441
10442// GetLoggingOptions API operation for AWS IoT.
10443//
10444// Gets the logging options.
10445//
10446// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
10447//
10448// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10449// with awserr.Error's Code and Message methods to get detailed information about
10450// the error.
10451//
10452// See the AWS API reference guide for AWS IoT's
10453// API operation GetLoggingOptions for usage and error information.
10454//
10455// Returned Error Types:
10456//   * InternalException
10457//   An unexpected error has occurred.
10458//
10459//   * InvalidRequestException
10460//   The request is not valid.
10461//
10462//   * ServiceUnavailableException
10463//   The service is temporarily unavailable.
10464//
10465func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
10466	req, out := c.GetLoggingOptionsRequest(input)
10467	return out, req.Send()
10468}
10469
10470// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
10471// the ability to pass a context and additional request options.
10472//
10473// See GetLoggingOptions for details on how to use this API operation.
10474//
10475// The context must be non-nil and will be used for request cancellation. If
10476// the context is nil a panic will occur. In the future the SDK may create
10477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10478// for more information on using Contexts.
10479func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
10480	req, out := c.GetLoggingOptionsRequest(input)
10481	req.SetContext(ctx)
10482	req.ApplyOptions(opts...)
10483	return out, req.Send()
10484}
10485
10486const opGetOTAUpdate = "GetOTAUpdate"
10487
10488// GetOTAUpdateRequest generates a "aws/request.Request" representing the
10489// client's request for the GetOTAUpdate operation. The "output" return
10490// value will be populated with the request's response once the request completes
10491// successfully.
10492//
10493// Use "Send" method on the returned Request to send the API call to the service.
10494// the "output" return value is not valid until after Send returns without error.
10495//
10496// See GetOTAUpdate for more information on using the GetOTAUpdate
10497// API call, and error handling.
10498//
10499// This method is useful when you want to inject custom logic or configuration
10500// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10501//
10502//
10503//    // Example sending a request using the GetOTAUpdateRequest method.
10504//    req, resp := client.GetOTAUpdateRequest(params)
10505//
10506//    err := req.Send()
10507//    if err == nil { // resp is now filled
10508//        fmt.Println(resp)
10509//    }
10510func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
10511	op := &request.Operation{
10512		Name:       opGetOTAUpdate,
10513		HTTPMethod: "GET",
10514		HTTPPath:   "/otaUpdates/{otaUpdateId}",
10515	}
10516
10517	if input == nil {
10518		input = &GetOTAUpdateInput{}
10519	}
10520
10521	output = &GetOTAUpdateOutput{}
10522	req = c.newRequest(op, input, output)
10523	return
10524}
10525
10526// GetOTAUpdate API operation for AWS IoT.
10527//
10528// Gets an OTA update.
10529//
10530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10531// with awserr.Error's Code and Message methods to get detailed information about
10532// the error.
10533//
10534// See the AWS API reference guide for AWS IoT's
10535// API operation GetOTAUpdate for usage and error information.
10536//
10537// Returned Error Types:
10538//   * InvalidRequestException
10539//   The request is not valid.
10540//
10541//   * ThrottlingException
10542//   The rate exceeds the limit.
10543//
10544//   * UnauthorizedException
10545//   You are not authorized to perform this operation.
10546//
10547//   * InternalFailureException
10548//   An unexpected error has occurred.
10549//
10550//   * ServiceUnavailableException
10551//   The service is temporarily unavailable.
10552//
10553//   * ResourceNotFoundException
10554//   The specified resource does not exist.
10555//
10556func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
10557	req, out := c.GetOTAUpdateRequest(input)
10558	return out, req.Send()
10559}
10560
10561// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
10562// the ability to pass a context and additional request options.
10563//
10564// See GetOTAUpdate for details on how to use this API operation.
10565//
10566// The context must be non-nil and will be used for request cancellation. If
10567// the context is nil a panic will occur. In the future the SDK may create
10568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10569// for more information on using Contexts.
10570func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
10571	req, out := c.GetOTAUpdateRequest(input)
10572	req.SetContext(ctx)
10573	req.ApplyOptions(opts...)
10574	return out, req.Send()
10575}
10576
10577const opGetPercentiles = "GetPercentiles"
10578
10579// GetPercentilesRequest generates a "aws/request.Request" representing the
10580// client's request for the GetPercentiles operation. The "output" return
10581// value will be populated with the request's response once the request completes
10582// successfully.
10583//
10584// Use "Send" method on the returned Request to send the API call to the service.
10585// the "output" return value is not valid until after Send returns without error.
10586//
10587// See GetPercentiles for more information on using the GetPercentiles
10588// API call, and error handling.
10589//
10590// This method is useful when you want to inject custom logic or configuration
10591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10592//
10593//
10594//    // Example sending a request using the GetPercentilesRequest method.
10595//    req, resp := client.GetPercentilesRequest(params)
10596//
10597//    err := req.Send()
10598//    if err == nil { // resp is now filled
10599//        fmt.Println(resp)
10600//    }
10601func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
10602	op := &request.Operation{
10603		Name:       opGetPercentiles,
10604		HTTPMethod: "POST",
10605		HTTPPath:   "/indices/percentiles",
10606	}
10607
10608	if input == nil {
10609		input = &GetPercentilesInput{}
10610	}
10611
10612	output = &GetPercentilesOutput{}
10613	req = c.newRequest(op, input, output)
10614	return
10615}
10616
10617// GetPercentiles API operation for AWS IoT.
10618//
10619// Groups the aggregated values that match the query into percentile groupings.
10620// The default percentile groupings are: 1,5,25,50,75,95,99, although you can
10621// specify your own when you call GetPercentiles. This function returns a value
10622// for each percentile group specified (or the default percentile groupings).
10623// The percentile group "1" contains the aggregated field value that occurs
10624// in approximately one percent of the values that match the query. The percentile
10625// group "5" contains the aggregated field value that occurs in approximately
10626// five percent of the values that match the query, and so on. The result is
10627// an approximation, the more values that match the query, the more accurate
10628// the percentile values.
10629//
10630// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10631// with awserr.Error's Code and Message methods to get detailed information about
10632// the error.
10633//
10634// See the AWS API reference guide for AWS IoT's
10635// API operation GetPercentiles for usage and error information.
10636//
10637// Returned Error Types:
10638//   * InvalidRequestException
10639//   The request is not valid.
10640//
10641//   * ThrottlingException
10642//   The rate exceeds the limit.
10643//
10644//   * UnauthorizedException
10645//   You are not authorized to perform this operation.
10646//
10647//   * ServiceUnavailableException
10648//   The service is temporarily unavailable.
10649//
10650//   * InternalFailureException
10651//   An unexpected error has occurred.
10652//
10653//   * ResourceNotFoundException
10654//   The specified resource does not exist.
10655//
10656//   * InvalidQueryException
10657//   The query is invalid.
10658//
10659//   * InvalidAggregationException
10660//   The aggregation is invalid.
10661//
10662//   * IndexNotReadyException
10663//   The index is not ready.
10664//
10665func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
10666	req, out := c.GetPercentilesRequest(input)
10667	return out, req.Send()
10668}
10669
10670// GetPercentilesWithContext is the same as GetPercentiles with the addition of
10671// the ability to pass a context and additional request options.
10672//
10673// See GetPercentiles for details on how to use this API operation.
10674//
10675// The context must be non-nil and will be used for request cancellation. If
10676// the context is nil a panic will occur. In the future the SDK may create
10677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10678// for more information on using Contexts.
10679func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
10680	req, out := c.GetPercentilesRequest(input)
10681	req.SetContext(ctx)
10682	req.ApplyOptions(opts...)
10683	return out, req.Send()
10684}
10685
10686const opGetPolicy = "GetPolicy"
10687
10688// GetPolicyRequest generates a "aws/request.Request" representing the
10689// client's request for the GetPolicy operation. The "output" return
10690// value will be populated with the request's response once the request completes
10691// successfully.
10692//
10693// Use "Send" method on the returned Request to send the API call to the service.
10694// the "output" return value is not valid until after Send returns without error.
10695//
10696// See GetPolicy for more information on using the GetPolicy
10697// API call, and error handling.
10698//
10699// This method is useful when you want to inject custom logic or configuration
10700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10701//
10702//
10703//    // Example sending a request using the GetPolicyRequest method.
10704//    req, resp := client.GetPolicyRequest(params)
10705//
10706//    err := req.Send()
10707//    if err == nil { // resp is now filled
10708//        fmt.Println(resp)
10709//    }
10710func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
10711	op := &request.Operation{
10712		Name:       opGetPolicy,
10713		HTTPMethod: "GET",
10714		HTTPPath:   "/policies/{policyName}",
10715	}
10716
10717	if input == nil {
10718		input = &GetPolicyInput{}
10719	}
10720
10721	output = &GetPolicyOutput{}
10722	req = c.newRequest(op, input, output)
10723	return
10724}
10725
10726// GetPolicy API operation for AWS IoT.
10727//
10728// Gets information about the specified policy with the policy document of the
10729// default version.
10730//
10731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10732// with awserr.Error's Code and Message methods to get detailed information about
10733// the error.
10734//
10735// See the AWS API reference guide for AWS IoT's
10736// API operation GetPolicy for usage and error information.
10737//
10738// Returned Error Types:
10739//   * ResourceNotFoundException
10740//   The specified resource does not exist.
10741//
10742//   * InvalidRequestException
10743//   The request is not valid.
10744//
10745//   * ThrottlingException
10746//   The rate exceeds the limit.
10747//
10748//   * UnauthorizedException
10749//   You are not authorized to perform this operation.
10750//
10751//   * ServiceUnavailableException
10752//   The service is temporarily unavailable.
10753//
10754//   * InternalFailureException
10755//   An unexpected error has occurred.
10756//
10757func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
10758	req, out := c.GetPolicyRequest(input)
10759	return out, req.Send()
10760}
10761
10762// GetPolicyWithContext is the same as GetPolicy with the addition of
10763// the ability to pass a context and additional request options.
10764//
10765// See GetPolicy for details on how to use this API operation.
10766//
10767// The context must be non-nil and will be used for request cancellation. If
10768// the context is nil a panic will occur. In the future the SDK may create
10769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10770// for more information on using Contexts.
10771func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
10772	req, out := c.GetPolicyRequest(input)
10773	req.SetContext(ctx)
10774	req.ApplyOptions(opts...)
10775	return out, req.Send()
10776}
10777
10778const opGetPolicyVersion = "GetPolicyVersion"
10779
10780// GetPolicyVersionRequest generates a "aws/request.Request" representing the
10781// client's request for the GetPolicyVersion operation. The "output" return
10782// value will be populated with the request's response once the request completes
10783// successfully.
10784//
10785// Use "Send" method on the returned Request to send the API call to the service.
10786// the "output" return value is not valid until after Send returns without error.
10787//
10788// See GetPolicyVersion for more information on using the GetPolicyVersion
10789// API call, and error handling.
10790//
10791// This method is useful when you want to inject custom logic or configuration
10792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10793//
10794//
10795//    // Example sending a request using the GetPolicyVersionRequest method.
10796//    req, resp := client.GetPolicyVersionRequest(params)
10797//
10798//    err := req.Send()
10799//    if err == nil { // resp is now filled
10800//        fmt.Println(resp)
10801//    }
10802func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
10803	op := &request.Operation{
10804		Name:       opGetPolicyVersion,
10805		HTTPMethod: "GET",
10806		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
10807	}
10808
10809	if input == nil {
10810		input = &GetPolicyVersionInput{}
10811	}
10812
10813	output = &GetPolicyVersionOutput{}
10814	req = c.newRequest(op, input, output)
10815	return
10816}
10817
10818// GetPolicyVersion API operation for AWS IoT.
10819//
10820// Gets information about the specified policy version.
10821//
10822// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10823// with awserr.Error's Code and Message methods to get detailed information about
10824// the error.
10825//
10826// See the AWS API reference guide for AWS IoT's
10827// API operation GetPolicyVersion for usage and error information.
10828//
10829// Returned Error Types:
10830//   * ResourceNotFoundException
10831//   The specified resource does not exist.
10832//
10833//   * InvalidRequestException
10834//   The request is not valid.
10835//
10836//   * ThrottlingException
10837//   The rate exceeds the limit.
10838//
10839//   * UnauthorizedException
10840//   You are not authorized to perform this operation.
10841//
10842//   * ServiceUnavailableException
10843//   The service is temporarily unavailable.
10844//
10845//   * InternalFailureException
10846//   An unexpected error has occurred.
10847//
10848func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
10849	req, out := c.GetPolicyVersionRequest(input)
10850	return out, req.Send()
10851}
10852
10853// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
10854// the ability to pass a context and additional request options.
10855//
10856// See GetPolicyVersion for details on how to use this API operation.
10857//
10858// The context must be non-nil and will be used for request cancellation. If
10859// the context is nil a panic will occur. In the future the SDK may create
10860// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10861// for more information on using Contexts.
10862func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
10863	req, out := c.GetPolicyVersionRequest(input)
10864	req.SetContext(ctx)
10865	req.ApplyOptions(opts...)
10866	return out, req.Send()
10867}
10868
10869const opGetRegistrationCode = "GetRegistrationCode"
10870
10871// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
10872// client's request for the GetRegistrationCode operation. The "output" return
10873// value will be populated with the request's response once the request completes
10874// successfully.
10875//
10876// Use "Send" method on the returned Request to send the API call to the service.
10877// the "output" return value is not valid until after Send returns without error.
10878//
10879// See GetRegistrationCode for more information on using the GetRegistrationCode
10880// API call, and error handling.
10881//
10882// This method is useful when you want to inject custom logic or configuration
10883// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10884//
10885//
10886//    // Example sending a request using the GetRegistrationCodeRequest method.
10887//    req, resp := client.GetRegistrationCodeRequest(params)
10888//
10889//    err := req.Send()
10890//    if err == nil { // resp is now filled
10891//        fmt.Println(resp)
10892//    }
10893func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
10894	op := &request.Operation{
10895		Name:       opGetRegistrationCode,
10896		HTTPMethod: "GET",
10897		HTTPPath:   "/registrationcode",
10898	}
10899
10900	if input == nil {
10901		input = &GetRegistrationCodeInput{}
10902	}
10903
10904	output = &GetRegistrationCodeOutput{}
10905	req = c.newRequest(op, input, output)
10906	return
10907}
10908
10909// GetRegistrationCode API operation for AWS IoT.
10910//
10911// Gets a registration code used to register a CA certificate with AWS IoT.
10912//
10913// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10914// with awserr.Error's Code and Message methods to get detailed information about
10915// the error.
10916//
10917// See the AWS API reference guide for AWS IoT's
10918// API operation GetRegistrationCode for usage and error information.
10919//
10920// Returned Error Types:
10921//   * ThrottlingException
10922//   The rate exceeds the limit.
10923//
10924//   * UnauthorizedException
10925//   You are not authorized to perform this operation.
10926//
10927//   * ServiceUnavailableException
10928//   The service is temporarily unavailable.
10929//
10930//   * InternalFailureException
10931//   An unexpected error has occurred.
10932//
10933//   * InvalidRequestException
10934//   The request is not valid.
10935//
10936func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
10937	req, out := c.GetRegistrationCodeRequest(input)
10938	return out, req.Send()
10939}
10940
10941// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
10942// the ability to pass a context and additional request options.
10943//
10944// See GetRegistrationCode for details on how to use this API operation.
10945//
10946// The context must be non-nil and will be used for request cancellation. If
10947// the context is nil a panic will occur. In the future the SDK may create
10948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10949// for more information on using Contexts.
10950func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
10951	req, out := c.GetRegistrationCodeRequest(input)
10952	req.SetContext(ctx)
10953	req.ApplyOptions(opts...)
10954	return out, req.Send()
10955}
10956
10957const opGetStatistics = "GetStatistics"
10958
10959// GetStatisticsRequest generates a "aws/request.Request" representing the
10960// client's request for the GetStatistics operation. The "output" return
10961// value will be populated with the request's response once the request completes
10962// successfully.
10963//
10964// Use "Send" method on the returned Request to send the API call to the service.
10965// the "output" return value is not valid until after Send returns without error.
10966//
10967// See GetStatistics for more information on using the GetStatistics
10968// API call, and error handling.
10969//
10970// This method is useful when you want to inject custom logic or configuration
10971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10972//
10973//
10974//    // Example sending a request using the GetStatisticsRequest method.
10975//    req, resp := client.GetStatisticsRequest(params)
10976//
10977//    err := req.Send()
10978//    if err == nil { // resp is now filled
10979//        fmt.Println(resp)
10980//    }
10981func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
10982	op := &request.Operation{
10983		Name:       opGetStatistics,
10984		HTTPMethod: "POST",
10985		HTTPPath:   "/indices/statistics",
10986	}
10987
10988	if input == nil {
10989		input = &GetStatisticsInput{}
10990	}
10991
10992	output = &GetStatisticsOutput{}
10993	req = c.newRequest(op, input, output)
10994	return
10995}
10996
10997// GetStatistics API operation for AWS IoT.
10998//
10999// Returns the count, average, sum, minimum, maximum, sum of squares, variance,
11000// and standard deviation for the specified aggregated field. If the aggregation
11001// field is of type String, only the count statistic is returned.
11002//
11003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11004// with awserr.Error's Code and Message methods to get detailed information about
11005// the error.
11006//
11007// See the AWS API reference guide for AWS IoT's
11008// API operation GetStatistics for usage and error information.
11009//
11010// Returned Error Types:
11011//   * InvalidRequestException
11012//   The request is not valid.
11013//
11014//   * ThrottlingException
11015//   The rate exceeds the limit.
11016//
11017//   * UnauthorizedException
11018//   You are not authorized to perform this operation.
11019//
11020//   * ServiceUnavailableException
11021//   The service is temporarily unavailable.
11022//
11023//   * InternalFailureException
11024//   An unexpected error has occurred.
11025//
11026//   * ResourceNotFoundException
11027//   The specified resource does not exist.
11028//
11029//   * InvalidQueryException
11030//   The query is invalid.
11031//
11032//   * InvalidAggregationException
11033//   The aggregation is invalid.
11034//
11035//   * IndexNotReadyException
11036//   The index is not ready.
11037//
11038func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
11039	req, out := c.GetStatisticsRequest(input)
11040	return out, req.Send()
11041}
11042
11043// GetStatisticsWithContext is the same as GetStatistics with the addition of
11044// the ability to pass a context and additional request options.
11045//
11046// See GetStatistics for details on how to use this API operation.
11047//
11048// The context must be non-nil and will be used for request cancellation. If
11049// the context is nil a panic will occur. In the future the SDK may create
11050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11051// for more information on using Contexts.
11052func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
11053	req, out := c.GetStatisticsRequest(input)
11054	req.SetContext(ctx)
11055	req.ApplyOptions(opts...)
11056	return out, req.Send()
11057}
11058
11059const opGetTopicRule = "GetTopicRule"
11060
11061// GetTopicRuleRequest generates a "aws/request.Request" representing the
11062// client's request for the GetTopicRule operation. The "output" return
11063// value will be populated with the request's response once the request completes
11064// successfully.
11065//
11066// Use "Send" method on the returned Request to send the API call to the service.
11067// the "output" return value is not valid until after Send returns without error.
11068//
11069// See GetTopicRule for more information on using the GetTopicRule
11070// API call, and error handling.
11071//
11072// This method is useful when you want to inject custom logic or configuration
11073// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11074//
11075//
11076//    // Example sending a request using the GetTopicRuleRequest method.
11077//    req, resp := client.GetTopicRuleRequest(params)
11078//
11079//    err := req.Send()
11080//    if err == nil { // resp is now filled
11081//        fmt.Println(resp)
11082//    }
11083func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
11084	op := &request.Operation{
11085		Name:       opGetTopicRule,
11086		HTTPMethod: "GET",
11087		HTTPPath:   "/rules/{ruleName}",
11088	}
11089
11090	if input == nil {
11091		input = &GetTopicRuleInput{}
11092	}
11093
11094	output = &GetTopicRuleOutput{}
11095	req = c.newRequest(op, input, output)
11096	return
11097}
11098
11099// GetTopicRule API operation for AWS IoT.
11100//
11101// Gets information about the rule.
11102//
11103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11104// with awserr.Error's Code and Message methods to get detailed information about
11105// the error.
11106//
11107// See the AWS API reference guide for AWS IoT's
11108// API operation GetTopicRule for usage and error information.
11109//
11110// Returned Error Types:
11111//   * InternalException
11112//   An unexpected error has occurred.
11113//
11114//   * InvalidRequestException
11115//   The request is not valid.
11116//
11117//   * ServiceUnavailableException
11118//   The service is temporarily unavailable.
11119//
11120//   * UnauthorizedException
11121//   You are not authorized to perform this operation.
11122//
11123func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
11124	req, out := c.GetTopicRuleRequest(input)
11125	return out, req.Send()
11126}
11127
11128// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
11129// the ability to pass a context and additional request options.
11130//
11131// See GetTopicRule for details on how to use this API operation.
11132//
11133// The context must be non-nil and will be used for request cancellation. If
11134// the context is nil a panic will occur. In the future the SDK may create
11135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11136// for more information on using Contexts.
11137func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
11138	req, out := c.GetTopicRuleRequest(input)
11139	req.SetContext(ctx)
11140	req.ApplyOptions(opts...)
11141	return out, req.Send()
11142}
11143
11144const opGetTopicRuleDestination = "GetTopicRuleDestination"
11145
11146// GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
11147// client's request for the GetTopicRuleDestination operation. The "output" return
11148// value will be populated with the request's response once the request completes
11149// successfully.
11150//
11151// Use "Send" method on the returned Request to send the API call to the service.
11152// the "output" return value is not valid until after Send returns without error.
11153//
11154// See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
11155// API call, and error handling.
11156//
11157// This method is useful when you want to inject custom logic or configuration
11158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11159//
11160//
11161//    // Example sending a request using the GetTopicRuleDestinationRequest method.
11162//    req, resp := client.GetTopicRuleDestinationRequest(params)
11163//
11164//    err := req.Send()
11165//    if err == nil { // resp is now filled
11166//        fmt.Println(resp)
11167//    }
11168func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
11169	op := &request.Operation{
11170		Name:       opGetTopicRuleDestination,
11171		HTTPMethod: "GET",
11172		HTTPPath:   "/destinations/{arn+}",
11173	}
11174
11175	if input == nil {
11176		input = &GetTopicRuleDestinationInput{}
11177	}
11178
11179	output = &GetTopicRuleDestinationOutput{}
11180	req = c.newRequest(op, input, output)
11181	return
11182}
11183
11184// GetTopicRuleDestination API operation for AWS IoT.
11185//
11186// Gets information about a topic rule destination.
11187//
11188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11189// with awserr.Error's Code and Message methods to get detailed information about
11190// the error.
11191//
11192// See the AWS API reference guide for AWS IoT's
11193// API operation GetTopicRuleDestination for usage and error information.
11194//
11195// Returned Error Types:
11196//   * InternalException
11197//   An unexpected error has occurred.
11198//
11199//   * InvalidRequestException
11200//   The request is not valid.
11201//
11202//   * ServiceUnavailableException
11203//   The service is temporarily unavailable.
11204//
11205//   * UnauthorizedException
11206//   You are not authorized to perform this operation.
11207//
11208func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
11209	req, out := c.GetTopicRuleDestinationRequest(input)
11210	return out, req.Send()
11211}
11212
11213// GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
11214// the ability to pass a context and additional request options.
11215//
11216// See GetTopicRuleDestination for details on how to use this API operation.
11217//
11218// The context must be non-nil and will be used for request cancellation. If
11219// the context is nil a panic will occur. In the future the SDK may create
11220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11221// for more information on using Contexts.
11222func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
11223	req, out := c.GetTopicRuleDestinationRequest(input)
11224	req.SetContext(ctx)
11225	req.ApplyOptions(opts...)
11226	return out, req.Send()
11227}
11228
11229const opGetV2LoggingOptions = "GetV2LoggingOptions"
11230
11231// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
11232// client's request for the GetV2LoggingOptions operation. The "output" return
11233// value will be populated with the request's response once the request completes
11234// successfully.
11235//
11236// Use "Send" method on the returned Request to send the API call to the service.
11237// the "output" return value is not valid until after Send returns without error.
11238//
11239// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
11240// API call, and error handling.
11241//
11242// This method is useful when you want to inject custom logic or configuration
11243// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11244//
11245//
11246//    // Example sending a request using the GetV2LoggingOptionsRequest method.
11247//    req, resp := client.GetV2LoggingOptionsRequest(params)
11248//
11249//    err := req.Send()
11250//    if err == nil { // resp is now filled
11251//        fmt.Println(resp)
11252//    }
11253func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
11254	op := &request.Operation{
11255		Name:       opGetV2LoggingOptions,
11256		HTTPMethod: "GET",
11257		HTTPPath:   "/v2LoggingOptions",
11258	}
11259
11260	if input == nil {
11261		input = &GetV2LoggingOptionsInput{}
11262	}
11263
11264	output = &GetV2LoggingOptionsOutput{}
11265	req = c.newRequest(op, input, output)
11266	return
11267}
11268
11269// GetV2LoggingOptions API operation for AWS IoT.
11270//
11271// Gets the fine grained logging options.
11272//
11273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11274// with awserr.Error's Code and Message methods to get detailed information about
11275// the error.
11276//
11277// See the AWS API reference guide for AWS IoT's
11278// API operation GetV2LoggingOptions for usage and error information.
11279//
11280// Returned Error Types:
11281//   * InternalException
11282//   An unexpected error has occurred.
11283//
11284//   * NotConfiguredException
11285//   The resource is not configured.
11286//
11287//   * ServiceUnavailableException
11288//   The service is temporarily unavailable.
11289//
11290func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
11291	req, out := c.GetV2LoggingOptionsRequest(input)
11292	return out, req.Send()
11293}
11294
11295// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
11296// the ability to pass a context and additional request options.
11297//
11298// See GetV2LoggingOptions for details on how to use this API operation.
11299//
11300// The context must be non-nil and will be used for request cancellation. If
11301// the context is nil a panic will occur. In the future the SDK may create
11302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11303// for more information on using Contexts.
11304func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
11305	req, out := c.GetV2LoggingOptionsRequest(input)
11306	req.SetContext(ctx)
11307	req.ApplyOptions(opts...)
11308	return out, req.Send()
11309}
11310
11311const opListActiveViolations = "ListActiveViolations"
11312
11313// ListActiveViolationsRequest generates a "aws/request.Request" representing the
11314// client's request for the ListActiveViolations operation. The "output" return
11315// value will be populated with the request's response once the request completes
11316// successfully.
11317//
11318// Use "Send" method on the returned Request to send the API call to the service.
11319// the "output" return value is not valid until after Send returns without error.
11320//
11321// See ListActiveViolations for more information on using the ListActiveViolations
11322// API call, and error handling.
11323//
11324// This method is useful when you want to inject custom logic or configuration
11325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11326//
11327//
11328//    // Example sending a request using the ListActiveViolationsRequest method.
11329//    req, resp := client.ListActiveViolationsRequest(params)
11330//
11331//    err := req.Send()
11332//    if err == nil { // resp is now filled
11333//        fmt.Println(resp)
11334//    }
11335func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
11336	op := &request.Operation{
11337		Name:       opListActiveViolations,
11338		HTTPMethod: "GET",
11339		HTTPPath:   "/active-violations",
11340		Paginator: &request.Paginator{
11341			InputTokens:     []string{"nextToken"},
11342			OutputTokens:    []string{"nextToken"},
11343			LimitToken:      "maxResults",
11344			TruncationToken: "",
11345		},
11346	}
11347
11348	if input == nil {
11349		input = &ListActiveViolationsInput{}
11350	}
11351
11352	output = &ListActiveViolationsOutput{}
11353	req = c.newRequest(op, input, output)
11354	return
11355}
11356
11357// ListActiveViolations API operation for AWS IoT.
11358//
11359// Lists the active violations for a given Device Defender security profile.
11360//
11361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11362// with awserr.Error's Code and Message methods to get detailed information about
11363// the error.
11364//
11365// See the AWS API reference guide for AWS IoT's
11366// API operation ListActiveViolations for usage and error information.
11367//
11368// Returned Error Types:
11369//   * InvalidRequestException
11370//   The request is not valid.
11371//
11372//   * ResourceNotFoundException
11373//   The specified resource does not exist.
11374//
11375//   * ThrottlingException
11376//   The rate exceeds the limit.
11377//
11378//   * InternalFailureException
11379//   An unexpected error has occurred.
11380//
11381func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
11382	req, out := c.ListActiveViolationsRequest(input)
11383	return out, req.Send()
11384}
11385
11386// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
11387// the ability to pass a context and additional request options.
11388//
11389// See ListActiveViolations for details on how to use this API operation.
11390//
11391// The context must be non-nil and will be used for request cancellation. If
11392// the context is nil a panic will occur. In the future the SDK may create
11393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11394// for more information on using Contexts.
11395func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
11396	req, out := c.ListActiveViolationsRequest(input)
11397	req.SetContext(ctx)
11398	req.ApplyOptions(opts...)
11399	return out, req.Send()
11400}
11401
11402// ListActiveViolationsPages iterates over the pages of a ListActiveViolations operation,
11403// calling the "fn" function with the response data for each page. To stop
11404// iterating, return false from the fn function.
11405//
11406// See ListActiveViolations method for more information on how to use this operation.
11407//
11408// Note: This operation can generate multiple requests to a service.
11409//
11410//    // Example iterating over at most 3 pages of a ListActiveViolations operation.
11411//    pageNum := 0
11412//    err := client.ListActiveViolationsPages(params,
11413//        func(page *iot.ListActiveViolationsOutput, lastPage bool) bool {
11414//            pageNum++
11415//            fmt.Println(page)
11416//            return pageNum <= 3
11417//        })
11418//
11419func (c *IoT) ListActiveViolationsPages(input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool) error {
11420	return c.ListActiveViolationsPagesWithContext(aws.BackgroundContext(), input, fn)
11421}
11422
11423// ListActiveViolationsPagesWithContext same as ListActiveViolationsPages except
11424// it takes a Context and allows setting request options on the pages.
11425//
11426// The context must be non-nil and will be used for request cancellation. If
11427// the context is nil a panic will occur. In the future the SDK may create
11428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11429// for more information on using Contexts.
11430func (c *IoT) ListActiveViolationsPagesWithContext(ctx aws.Context, input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool, opts ...request.Option) error {
11431	p := request.Pagination{
11432		NewRequest: func() (*request.Request, error) {
11433			var inCpy *ListActiveViolationsInput
11434			if input != nil {
11435				tmp := *input
11436				inCpy = &tmp
11437			}
11438			req, _ := c.ListActiveViolationsRequest(inCpy)
11439			req.SetContext(ctx)
11440			req.ApplyOptions(opts...)
11441			return req, nil
11442		},
11443	}
11444
11445	for p.Next() {
11446		if !fn(p.Page().(*ListActiveViolationsOutput), !p.HasNextPage()) {
11447			break
11448		}
11449	}
11450
11451	return p.Err()
11452}
11453
11454const opListAttachedPolicies = "ListAttachedPolicies"
11455
11456// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
11457// client's request for the ListAttachedPolicies operation. The "output" return
11458// value will be populated with the request's response once the request completes
11459// successfully.
11460//
11461// Use "Send" method on the returned Request to send the API call to the service.
11462// the "output" return value is not valid until after Send returns without error.
11463//
11464// See ListAttachedPolicies for more information on using the ListAttachedPolicies
11465// API call, and error handling.
11466//
11467// This method is useful when you want to inject custom logic or configuration
11468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11469//
11470//
11471//    // Example sending a request using the ListAttachedPoliciesRequest method.
11472//    req, resp := client.ListAttachedPoliciesRequest(params)
11473//
11474//    err := req.Send()
11475//    if err == nil { // resp is now filled
11476//        fmt.Println(resp)
11477//    }
11478func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
11479	op := &request.Operation{
11480		Name:       opListAttachedPolicies,
11481		HTTPMethod: "POST",
11482		HTTPPath:   "/attached-policies/{target}",
11483		Paginator: &request.Paginator{
11484			InputTokens:     []string{"marker"},
11485			OutputTokens:    []string{"nextMarker"},
11486			LimitToken:      "pageSize",
11487			TruncationToken: "",
11488		},
11489	}
11490
11491	if input == nil {
11492		input = &ListAttachedPoliciesInput{}
11493	}
11494
11495	output = &ListAttachedPoliciesOutput{}
11496	req = c.newRequest(op, input, output)
11497	return
11498}
11499
11500// ListAttachedPolicies API operation for AWS IoT.
11501//
11502// Lists the policies attached to the specified thing group.
11503//
11504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11505// with awserr.Error's Code and Message methods to get detailed information about
11506// the error.
11507//
11508// See the AWS API reference guide for AWS IoT's
11509// API operation ListAttachedPolicies for usage and error information.
11510//
11511// Returned Error Types:
11512//   * ResourceNotFoundException
11513//   The specified resource does not exist.
11514//
11515//   * InvalidRequestException
11516//   The request is not valid.
11517//
11518//   * ThrottlingException
11519//   The rate exceeds the limit.
11520//
11521//   * UnauthorizedException
11522//   You are not authorized to perform this operation.
11523//
11524//   * ServiceUnavailableException
11525//   The service is temporarily unavailable.
11526//
11527//   * InternalFailureException
11528//   An unexpected error has occurred.
11529//
11530//   * LimitExceededException
11531//   A limit has been exceeded.
11532//
11533func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
11534	req, out := c.ListAttachedPoliciesRequest(input)
11535	return out, req.Send()
11536}
11537
11538// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
11539// the ability to pass a context and additional request options.
11540//
11541// See ListAttachedPolicies for details on how to use this API operation.
11542//
11543// The context must be non-nil and will be used for request cancellation. If
11544// the context is nil a panic will occur. In the future the SDK may create
11545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11546// for more information on using Contexts.
11547func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
11548	req, out := c.ListAttachedPoliciesRequest(input)
11549	req.SetContext(ctx)
11550	req.ApplyOptions(opts...)
11551	return out, req.Send()
11552}
11553
11554// ListAttachedPoliciesPages iterates over the pages of a ListAttachedPolicies operation,
11555// calling the "fn" function with the response data for each page. To stop
11556// iterating, return false from the fn function.
11557//
11558// See ListAttachedPolicies method for more information on how to use this operation.
11559//
11560// Note: This operation can generate multiple requests to a service.
11561//
11562//    // Example iterating over at most 3 pages of a ListAttachedPolicies operation.
11563//    pageNum := 0
11564//    err := client.ListAttachedPoliciesPages(params,
11565//        func(page *iot.ListAttachedPoliciesOutput, lastPage bool) bool {
11566//            pageNum++
11567//            fmt.Println(page)
11568//            return pageNum <= 3
11569//        })
11570//
11571func (c *IoT) ListAttachedPoliciesPages(input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool) error {
11572	return c.ListAttachedPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
11573}
11574
11575// ListAttachedPoliciesPagesWithContext same as ListAttachedPoliciesPages except
11576// it takes a Context and allows setting request options on the pages.
11577//
11578// The context must be non-nil and will be used for request cancellation. If
11579// the context is nil a panic will occur. In the future the SDK may create
11580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11581// for more information on using Contexts.
11582func (c *IoT) ListAttachedPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool, opts ...request.Option) error {
11583	p := request.Pagination{
11584		NewRequest: func() (*request.Request, error) {
11585			var inCpy *ListAttachedPoliciesInput
11586			if input != nil {
11587				tmp := *input
11588				inCpy = &tmp
11589			}
11590			req, _ := c.ListAttachedPoliciesRequest(inCpy)
11591			req.SetContext(ctx)
11592			req.ApplyOptions(opts...)
11593			return req, nil
11594		},
11595	}
11596
11597	for p.Next() {
11598		if !fn(p.Page().(*ListAttachedPoliciesOutput), !p.HasNextPage()) {
11599			break
11600		}
11601	}
11602
11603	return p.Err()
11604}
11605
11606const opListAuditFindings = "ListAuditFindings"
11607
11608// ListAuditFindingsRequest generates a "aws/request.Request" representing the
11609// client's request for the ListAuditFindings operation. The "output" return
11610// value will be populated with the request's response once the request completes
11611// successfully.
11612//
11613// Use "Send" method on the returned Request to send the API call to the service.
11614// the "output" return value is not valid until after Send returns without error.
11615//
11616// See ListAuditFindings for more information on using the ListAuditFindings
11617// API call, and error handling.
11618//
11619// This method is useful when you want to inject custom logic or configuration
11620// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11621//
11622//
11623//    // Example sending a request using the ListAuditFindingsRequest method.
11624//    req, resp := client.ListAuditFindingsRequest(params)
11625//
11626//    err := req.Send()
11627//    if err == nil { // resp is now filled
11628//        fmt.Println(resp)
11629//    }
11630func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
11631	op := &request.Operation{
11632		Name:       opListAuditFindings,
11633		HTTPMethod: "POST",
11634		HTTPPath:   "/audit/findings",
11635		Paginator: &request.Paginator{
11636			InputTokens:     []string{"nextToken"},
11637			OutputTokens:    []string{"nextToken"},
11638			LimitToken:      "maxResults",
11639			TruncationToken: "",
11640		},
11641	}
11642
11643	if input == nil {
11644		input = &ListAuditFindingsInput{}
11645	}
11646
11647	output = &ListAuditFindingsOutput{}
11648	req = c.newRequest(op, input, output)
11649	return
11650}
11651
11652// ListAuditFindings API operation for AWS IoT.
11653//
11654// Lists the findings (results) of a Device Defender audit or of the audits
11655// performed during a specified time period. (Findings are retained for 90 days.)
11656//
11657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11658// with awserr.Error's Code and Message methods to get detailed information about
11659// the error.
11660//
11661// See the AWS API reference guide for AWS IoT's
11662// API operation ListAuditFindings for usage and error information.
11663//
11664// Returned Error Types:
11665//   * InvalidRequestException
11666//   The request is not valid.
11667//
11668//   * ThrottlingException
11669//   The rate exceeds the limit.
11670//
11671//   * InternalFailureException
11672//   An unexpected error has occurred.
11673//
11674func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
11675	req, out := c.ListAuditFindingsRequest(input)
11676	return out, req.Send()
11677}
11678
11679// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
11680// the ability to pass a context and additional request options.
11681//
11682// See ListAuditFindings for details on how to use this API operation.
11683//
11684// The context must be non-nil and will be used for request cancellation. If
11685// the context is nil a panic will occur. In the future the SDK may create
11686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11687// for more information on using Contexts.
11688func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
11689	req, out := c.ListAuditFindingsRequest(input)
11690	req.SetContext(ctx)
11691	req.ApplyOptions(opts...)
11692	return out, req.Send()
11693}
11694
11695// ListAuditFindingsPages iterates over the pages of a ListAuditFindings operation,
11696// calling the "fn" function with the response data for each page. To stop
11697// iterating, return false from the fn function.
11698//
11699// See ListAuditFindings method for more information on how to use this operation.
11700//
11701// Note: This operation can generate multiple requests to a service.
11702//
11703//    // Example iterating over at most 3 pages of a ListAuditFindings operation.
11704//    pageNum := 0
11705//    err := client.ListAuditFindingsPages(params,
11706//        func(page *iot.ListAuditFindingsOutput, lastPage bool) bool {
11707//            pageNum++
11708//            fmt.Println(page)
11709//            return pageNum <= 3
11710//        })
11711//
11712func (c *IoT) ListAuditFindingsPages(input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool) error {
11713	return c.ListAuditFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
11714}
11715
11716// ListAuditFindingsPagesWithContext same as ListAuditFindingsPages except
11717// it takes a Context and allows setting request options on the pages.
11718//
11719// The context must be non-nil and will be used for request cancellation. If
11720// the context is nil a panic will occur. In the future the SDK may create
11721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11722// for more information on using Contexts.
11723func (c *IoT) ListAuditFindingsPagesWithContext(ctx aws.Context, input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool, opts ...request.Option) error {
11724	p := request.Pagination{
11725		NewRequest: func() (*request.Request, error) {
11726			var inCpy *ListAuditFindingsInput
11727			if input != nil {
11728				tmp := *input
11729				inCpy = &tmp
11730			}
11731			req, _ := c.ListAuditFindingsRequest(inCpy)
11732			req.SetContext(ctx)
11733			req.ApplyOptions(opts...)
11734			return req, nil
11735		},
11736	}
11737
11738	for p.Next() {
11739		if !fn(p.Page().(*ListAuditFindingsOutput), !p.HasNextPage()) {
11740			break
11741		}
11742	}
11743
11744	return p.Err()
11745}
11746
11747const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
11748
11749// ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
11750// client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
11751// value will be populated with the request's response once the request completes
11752// successfully.
11753//
11754// Use "Send" method on the returned Request to send the API call to the service.
11755// the "output" return value is not valid until after Send returns without error.
11756//
11757// See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
11758// API call, and error handling.
11759//
11760// This method is useful when you want to inject custom logic or configuration
11761// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11762//
11763//
11764//    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
11765//    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
11766//
11767//    err := req.Send()
11768//    if err == nil { // resp is now filled
11769//        fmt.Println(resp)
11770//    }
11771func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
11772	op := &request.Operation{
11773		Name:       opListAuditMitigationActionsExecutions,
11774		HTTPMethod: "GET",
11775		HTTPPath:   "/audit/mitigationactions/executions",
11776		Paginator: &request.Paginator{
11777			InputTokens:     []string{"nextToken"},
11778			OutputTokens:    []string{"nextToken"},
11779			LimitToken:      "maxResults",
11780			TruncationToken: "",
11781		},
11782	}
11783
11784	if input == nil {
11785		input = &ListAuditMitigationActionsExecutionsInput{}
11786	}
11787
11788	output = &ListAuditMitigationActionsExecutionsOutput{}
11789	req = c.newRequest(op, input, output)
11790	return
11791}
11792
11793// ListAuditMitigationActionsExecutions API operation for AWS IoT.
11794//
11795// Gets the status of audit mitigation action tasks that were executed.
11796//
11797// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11798// with awserr.Error's Code and Message methods to get detailed information about
11799// the error.
11800//
11801// See the AWS API reference guide for AWS IoT's
11802// API operation ListAuditMitigationActionsExecutions for usage and error information.
11803//
11804// Returned Error Types:
11805//   * InvalidRequestException
11806//   The request is not valid.
11807//
11808//   * ThrottlingException
11809//   The rate exceeds the limit.
11810//
11811//   * InternalFailureException
11812//   An unexpected error has occurred.
11813//
11814func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
11815	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
11816	return out, req.Send()
11817}
11818
11819// ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
11820// the ability to pass a context and additional request options.
11821//
11822// See ListAuditMitigationActionsExecutions for details on how to use this API operation.
11823//
11824// The context must be non-nil and will be used for request cancellation. If
11825// the context is nil a panic will occur. In the future the SDK may create
11826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11827// for more information on using Contexts.
11828func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
11829	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
11830	req.SetContext(ctx)
11831	req.ApplyOptions(opts...)
11832	return out, req.Send()
11833}
11834
11835// ListAuditMitigationActionsExecutionsPages iterates over the pages of a ListAuditMitigationActionsExecutions operation,
11836// calling the "fn" function with the response data for each page. To stop
11837// iterating, return false from the fn function.
11838//
11839// See ListAuditMitigationActionsExecutions method for more information on how to use this operation.
11840//
11841// Note: This operation can generate multiple requests to a service.
11842//
11843//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsExecutions operation.
11844//    pageNum := 0
11845//    err := client.ListAuditMitigationActionsExecutionsPages(params,
11846//        func(page *iot.ListAuditMitigationActionsExecutionsOutput, lastPage bool) bool {
11847//            pageNum++
11848//            fmt.Println(page)
11849//            return pageNum <= 3
11850//        })
11851//
11852func (c *IoT) ListAuditMitigationActionsExecutionsPages(input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool) error {
11853	return c.ListAuditMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
11854}
11855
11856// ListAuditMitigationActionsExecutionsPagesWithContext same as ListAuditMitigationActionsExecutionsPages except
11857// it takes a Context and allows setting request options on the pages.
11858//
11859// The context must be non-nil and will be used for request cancellation. If
11860// the context is nil a panic will occur. In the future the SDK may create
11861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11862// for more information on using Contexts.
11863func (c *IoT) ListAuditMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
11864	p := request.Pagination{
11865		NewRequest: func() (*request.Request, error) {
11866			var inCpy *ListAuditMitigationActionsExecutionsInput
11867			if input != nil {
11868				tmp := *input
11869				inCpy = &tmp
11870			}
11871			req, _ := c.ListAuditMitigationActionsExecutionsRequest(inCpy)
11872			req.SetContext(ctx)
11873			req.ApplyOptions(opts...)
11874			return req, nil
11875		},
11876	}
11877
11878	for p.Next() {
11879		if !fn(p.Page().(*ListAuditMitigationActionsExecutionsOutput), !p.HasNextPage()) {
11880			break
11881		}
11882	}
11883
11884	return p.Err()
11885}
11886
11887const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
11888
11889// ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
11890// client's request for the ListAuditMitigationActionsTasks operation. The "output" return
11891// value will be populated with the request's response once the request completes
11892// successfully.
11893//
11894// Use "Send" method on the returned Request to send the API call to the service.
11895// the "output" return value is not valid until after Send returns without error.
11896//
11897// See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
11898// API call, and error handling.
11899//
11900// This method is useful when you want to inject custom logic or configuration
11901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11902//
11903//
11904//    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
11905//    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
11906//
11907//    err := req.Send()
11908//    if err == nil { // resp is now filled
11909//        fmt.Println(resp)
11910//    }
11911func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
11912	op := &request.Operation{
11913		Name:       opListAuditMitigationActionsTasks,
11914		HTTPMethod: "GET",
11915		HTTPPath:   "/audit/mitigationactions/tasks",
11916		Paginator: &request.Paginator{
11917			InputTokens:     []string{"nextToken"},
11918			OutputTokens:    []string{"nextToken"},
11919			LimitToken:      "maxResults",
11920			TruncationToken: "",
11921		},
11922	}
11923
11924	if input == nil {
11925		input = &ListAuditMitigationActionsTasksInput{}
11926	}
11927
11928	output = &ListAuditMitigationActionsTasksOutput{}
11929	req = c.newRequest(op, input, output)
11930	return
11931}
11932
11933// ListAuditMitigationActionsTasks API operation for AWS IoT.
11934//
11935// Gets a list of audit mitigation action tasks that match the specified filters.
11936//
11937// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11938// with awserr.Error's Code and Message methods to get detailed information about
11939// the error.
11940//
11941// See the AWS API reference guide for AWS IoT's
11942// API operation ListAuditMitigationActionsTasks for usage and error information.
11943//
11944// Returned Error Types:
11945//   * InvalidRequestException
11946//   The request is not valid.
11947//
11948//   * ThrottlingException
11949//   The rate exceeds the limit.
11950//
11951//   * InternalFailureException
11952//   An unexpected error has occurred.
11953//
11954func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
11955	req, out := c.ListAuditMitigationActionsTasksRequest(input)
11956	return out, req.Send()
11957}
11958
11959// ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
11960// the ability to pass a context and additional request options.
11961//
11962// See ListAuditMitigationActionsTasks for details on how to use this API operation.
11963//
11964// The context must be non-nil and will be used for request cancellation. If
11965// the context is nil a panic will occur. In the future the SDK may create
11966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11967// for more information on using Contexts.
11968func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
11969	req, out := c.ListAuditMitigationActionsTasksRequest(input)
11970	req.SetContext(ctx)
11971	req.ApplyOptions(opts...)
11972	return out, req.Send()
11973}
11974
11975// ListAuditMitigationActionsTasksPages iterates over the pages of a ListAuditMitigationActionsTasks operation,
11976// calling the "fn" function with the response data for each page. To stop
11977// iterating, return false from the fn function.
11978//
11979// See ListAuditMitigationActionsTasks method for more information on how to use this operation.
11980//
11981// Note: This operation can generate multiple requests to a service.
11982//
11983//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsTasks operation.
11984//    pageNum := 0
11985//    err := client.ListAuditMitigationActionsTasksPages(params,
11986//        func(page *iot.ListAuditMitigationActionsTasksOutput, lastPage bool) bool {
11987//            pageNum++
11988//            fmt.Println(page)
11989//            return pageNum <= 3
11990//        })
11991//
11992func (c *IoT) ListAuditMitigationActionsTasksPages(input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool) error {
11993	return c.ListAuditMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
11994}
11995
11996// ListAuditMitigationActionsTasksPagesWithContext same as ListAuditMitigationActionsTasksPages except
11997// it takes a Context and allows setting request options on the pages.
11998//
11999// The context must be non-nil and will be used for request cancellation. If
12000// the context is nil a panic will occur. In the future the SDK may create
12001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12002// for more information on using Contexts.
12003func (c *IoT) ListAuditMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
12004	p := request.Pagination{
12005		NewRequest: func() (*request.Request, error) {
12006			var inCpy *ListAuditMitigationActionsTasksInput
12007			if input != nil {
12008				tmp := *input
12009				inCpy = &tmp
12010			}
12011			req, _ := c.ListAuditMitigationActionsTasksRequest(inCpy)
12012			req.SetContext(ctx)
12013			req.ApplyOptions(opts...)
12014			return req, nil
12015		},
12016	}
12017
12018	for p.Next() {
12019		if !fn(p.Page().(*ListAuditMitigationActionsTasksOutput), !p.HasNextPage()) {
12020			break
12021		}
12022	}
12023
12024	return p.Err()
12025}
12026
12027const opListAuditSuppressions = "ListAuditSuppressions"
12028
12029// ListAuditSuppressionsRequest generates a "aws/request.Request" representing the
12030// client's request for the ListAuditSuppressions operation. The "output" return
12031// value will be populated with the request's response once the request completes
12032// successfully.
12033//
12034// Use "Send" method on the returned Request to send the API call to the service.
12035// the "output" return value is not valid until after Send returns without error.
12036//
12037// See ListAuditSuppressions for more information on using the ListAuditSuppressions
12038// API call, and error handling.
12039//
12040// This method is useful when you want to inject custom logic or configuration
12041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12042//
12043//
12044//    // Example sending a request using the ListAuditSuppressionsRequest method.
12045//    req, resp := client.ListAuditSuppressionsRequest(params)
12046//
12047//    err := req.Send()
12048//    if err == nil { // resp is now filled
12049//        fmt.Println(resp)
12050//    }
12051func (c *IoT) ListAuditSuppressionsRequest(input *ListAuditSuppressionsInput) (req *request.Request, output *ListAuditSuppressionsOutput) {
12052	op := &request.Operation{
12053		Name:       opListAuditSuppressions,
12054		HTTPMethod: "POST",
12055		HTTPPath:   "/audit/suppressions/list",
12056		Paginator: &request.Paginator{
12057			InputTokens:     []string{"nextToken"},
12058			OutputTokens:    []string{"nextToken"},
12059			LimitToken:      "maxResults",
12060			TruncationToken: "",
12061		},
12062	}
12063
12064	if input == nil {
12065		input = &ListAuditSuppressionsInput{}
12066	}
12067
12068	output = &ListAuditSuppressionsOutput{}
12069	req = c.newRequest(op, input, output)
12070	return
12071}
12072
12073// ListAuditSuppressions API operation for AWS IoT.
12074//
12075// Lists your Device Defender audit listings.
12076//
12077// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12078// with awserr.Error's Code and Message methods to get detailed information about
12079// the error.
12080//
12081// See the AWS API reference guide for AWS IoT's
12082// API operation ListAuditSuppressions for usage and error information.
12083//
12084// Returned Error Types:
12085//   * InvalidRequestException
12086//   The request is not valid.
12087//
12088//   * ThrottlingException
12089//   The rate exceeds the limit.
12090//
12091//   * InternalFailureException
12092//   An unexpected error has occurred.
12093//
12094func (c *IoT) ListAuditSuppressions(input *ListAuditSuppressionsInput) (*ListAuditSuppressionsOutput, error) {
12095	req, out := c.ListAuditSuppressionsRequest(input)
12096	return out, req.Send()
12097}
12098
12099// ListAuditSuppressionsWithContext is the same as ListAuditSuppressions with the addition of
12100// the ability to pass a context and additional request options.
12101//
12102// See ListAuditSuppressions for details on how to use this API operation.
12103//
12104// The context must be non-nil and will be used for request cancellation. If
12105// the context is nil a panic will occur. In the future the SDK may create
12106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12107// for more information on using Contexts.
12108func (c *IoT) ListAuditSuppressionsWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, opts ...request.Option) (*ListAuditSuppressionsOutput, error) {
12109	req, out := c.ListAuditSuppressionsRequest(input)
12110	req.SetContext(ctx)
12111	req.ApplyOptions(opts...)
12112	return out, req.Send()
12113}
12114
12115// ListAuditSuppressionsPages iterates over the pages of a ListAuditSuppressions operation,
12116// calling the "fn" function with the response data for each page. To stop
12117// iterating, return false from the fn function.
12118//
12119// See ListAuditSuppressions method for more information on how to use this operation.
12120//
12121// Note: This operation can generate multiple requests to a service.
12122//
12123//    // Example iterating over at most 3 pages of a ListAuditSuppressions operation.
12124//    pageNum := 0
12125//    err := client.ListAuditSuppressionsPages(params,
12126//        func(page *iot.ListAuditSuppressionsOutput, lastPage bool) bool {
12127//            pageNum++
12128//            fmt.Println(page)
12129//            return pageNum <= 3
12130//        })
12131//
12132func (c *IoT) ListAuditSuppressionsPages(input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool) error {
12133	return c.ListAuditSuppressionsPagesWithContext(aws.BackgroundContext(), input, fn)
12134}
12135
12136// ListAuditSuppressionsPagesWithContext same as ListAuditSuppressionsPages except
12137// it takes a Context and allows setting request options on the pages.
12138//
12139// The context must be non-nil and will be used for request cancellation. If
12140// the context is nil a panic will occur. In the future the SDK may create
12141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12142// for more information on using Contexts.
12143func (c *IoT) ListAuditSuppressionsPagesWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool, opts ...request.Option) error {
12144	p := request.Pagination{
12145		NewRequest: func() (*request.Request, error) {
12146			var inCpy *ListAuditSuppressionsInput
12147			if input != nil {
12148				tmp := *input
12149				inCpy = &tmp
12150			}
12151			req, _ := c.ListAuditSuppressionsRequest(inCpy)
12152			req.SetContext(ctx)
12153			req.ApplyOptions(opts...)
12154			return req, nil
12155		},
12156	}
12157
12158	for p.Next() {
12159		if !fn(p.Page().(*ListAuditSuppressionsOutput), !p.HasNextPage()) {
12160			break
12161		}
12162	}
12163
12164	return p.Err()
12165}
12166
12167const opListAuditTasks = "ListAuditTasks"
12168
12169// ListAuditTasksRequest generates a "aws/request.Request" representing the
12170// client's request for the ListAuditTasks operation. The "output" return
12171// value will be populated with the request's response once the request completes
12172// successfully.
12173//
12174// Use "Send" method on the returned Request to send the API call to the service.
12175// the "output" return value is not valid until after Send returns without error.
12176//
12177// See ListAuditTasks for more information on using the ListAuditTasks
12178// API call, and error handling.
12179//
12180// This method is useful when you want to inject custom logic or configuration
12181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12182//
12183//
12184//    // Example sending a request using the ListAuditTasksRequest method.
12185//    req, resp := client.ListAuditTasksRequest(params)
12186//
12187//    err := req.Send()
12188//    if err == nil { // resp is now filled
12189//        fmt.Println(resp)
12190//    }
12191func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
12192	op := &request.Operation{
12193		Name:       opListAuditTasks,
12194		HTTPMethod: "GET",
12195		HTTPPath:   "/audit/tasks",
12196		Paginator: &request.Paginator{
12197			InputTokens:     []string{"nextToken"},
12198			OutputTokens:    []string{"nextToken"},
12199			LimitToken:      "maxResults",
12200			TruncationToken: "",
12201		},
12202	}
12203
12204	if input == nil {
12205		input = &ListAuditTasksInput{}
12206	}
12207
12208	output = &ListAuditTasksOutput{}
12209	req = c.newRequest(op, input, output)
12210	return
12211}
12212
12213// ListAuditTasks API operation for AWS IoT.
12214//
12215// Lists the Device Defender audits that have been performed during a given
12216// time period.
12217//
12218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12219// with awserr.Error's Code and Message methods to get detailed information about
12220// the error.
12221//
12222// See the AWS API reference guide for AWS IoT's
12223// API operation ListAuditTasks for usage and error information.
12224//
12225// Returned Error Types:
12226//   * InvalidRequestException
12227//   The request is not valid.
12228//
12229//   * ThrottlingException
12230//   The rate exceeds the limit.
12231//
12232//   * InternalFailureException
12233//   An unexpected error has occurred.
12234//
12235func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
12236	req, out := c.ListAuditTasksRequest(input)
12237	return out, req.Send()
12238}
12239
12240// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
12241// the ability to pass a context and additional request options.
12242//
12243// See ListAuditTasks for details on how to use this API operation.
12244//
12245// The context must be non-nil and will be used for request cancellation. If
12246// the context is nil a panic will occur. In the future the SDK may create
12247// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12248// for more information on using Contexts.
12249func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
12250	req, out := c.ListAuditTasksRequest(input)
12251	req.SetContext(ctx)
12252	req.ApplyOptions(opts...)
12253	return out, req.Send()
12254}
12255
12256// ListAuditTasksPages iterates over the pages of a ListAuditTasks operation,
12257// calling the "fn" function with the response data for each page. To stop
12258// iterating, return false from the fn function.
12259//
12260// See ListAuditTasks method for more information on how to use this operation.
12261//
12262// Note: This operation can generate multiple requests to a service.
12263//
12264//    // Example iterating over at most 3 pages of a ListAuditTasks operation.
12265//    pageNum := 0
12266//    err := client.ListAuditTasksPages(params,
12267//        func(page *iot.ListAuditTasksOutput, lastPage bool) bool {
12268//            pageNum++
12269//            fmt.Println(page)
12270//            return pageNum <= 3
12271//        })
12272//
12273func (c *IoT) ListAuditTasksPages(input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool) error {
12274	return c.ListAuditTasksPagesWithContext(aws.BackgroundContext(), input, fn)
12275}
12276
12277// ListAuditTasksPagesWithContext same as ListAuditTasksPages except
12278// it takes a Context and allows setting request options on the pages.
12279//
12280// The context must be non-nil and will be used for request cancellation. If
12281// the context is nil a panic will occur. In the future the SDK may create
12282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12283// for more information on using Contexts.
12284func (c *IoT) ListAuditTasksPagesWithContext(ctx aws.Context, input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool, opts ...request.Option) error {
12285	p := request.Pagination{
12286		NewRequest: func() (*request.Request, error) {
12287			var inCpy *ListAuditTasksInput
12288			if input != nil {
12289				tmp := *input
12290				inCpy = &tmp
12291			}
12292			req, _ := c.ListAuditTasksRequest(inCpy)
12293			req.SetContext(ctx)
12294			req.ApplyOptions(opts...)
12295			return req, nil
12296		},
12297	}
12298
12299	for p.Next() {
12300		if !fn(p.Page().(*ListAuditTasksOutput), !p.HasNextPage()) {
12301			break
12302		}
12303	}
12304
12305	return p.Err()
12306}
12307
12308const opListAuthorizers = "ListAuthorizers"
12309
12310// ListAuthorizersRequest generates a "aws/request.Request" representing the
12311// client's request for the ListAuthorizers operation. The "output" return
12312// value will be populated with the request's response once the request completes
12313// successfully.
12314//
12315// Use "Send" method on the returned Request to send the API call to the service.
12316// the "output" return value is not valid until after Send returns without error.
12317//
12318// See ListAuthorizers for more information on using the ListAuthorizers
12319// API call, and error handling.
12320//
12321// This method is useful when you want to inject custom logic or configuration
12322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12323//
12324//
12325//    // Example sending a request using the ListAuthorizersRequest method.
12326//    req, resp := client.ListAuthorizersRequest(params)
12327//
12328//    err := req.Send()
12329//    if err == nil { // resp is now filled
12330//        fmt.Println(resp)
12331//    }
12332func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
12333	op := &request.Operation{
12334		Name:       opListAuthorizers,
12335		HTTPMethod: "GET",
12336		HTTPPath:   "/authorizers/",
12337		Paginator: &request.Paginator{
12338			InputTokens:     []string{"marker"},
12339			OutputTokens:    []string{"nextMarker"},
12340			LimitToken:      "pageSize",
12341			TruncationToken: "",
12342		},
12343	}
12344
12345	if input == nil {
12346		input = &ListAuthorizersInput{}
12347	}
12348
12349	output = &ListAuthorizersOutput{}
12350	req = c.newRequest(op, input, output)
12351	return
12352}
12353
12354// ListAuthorizers API operation for AWS IoT.
12355//
12356// Lists the authorizers registered in your account.
12357//
12358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12359// with awserr.Error's Code and Message methods to get detailed information about
12360// the error.
12361//
12362// See the AWS API reference guide for AWS IoT's
12363// API operation ListAuthorizers for usage and error information.
12364//
12365// Returned Error Types:
12366//   * InvalidRequestException
12367//   The request is not valid.
12368//
12369//   * ThrottlingException
12370//   The rate exceeds the limit.
12371//
12372//   * UnauthorizedException
12373//   You are not authorized to perform this operation.
12374//
12375//   * ServiceUnavailableException
12376//   The service is temporarily unavailable.
12377//
12378//   * InternalFailureException
12379//   An unexpected error has occurred.
12380//
12381func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
12382	req, out := c.ListAuthorizersRequest(input)
12383	return out, req.Send()
12384}
12385
12386// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
12387// the ability to pass a context and additional request options.
12388//
12389// See ListAuthorizers for details on how to use this API operation.
12390//
12391// The context must be non-nil and will be used for request cancellation. If
12392// the context is nil a panic will occur. In the future the SDK may create
12393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12394// for more information on using Contexts.
12395func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
12396	req, out := c.ListAuthorizersRequest(input)
12397	req.SetContext(ctx)
12398	req.ApplyOptions(opts...)
12399	return out, req.Send()
12400}
12401
12402// ListAuthorizersPages iterates over the pages of a ListAuthorizers operation,
12403// calling the "fn" function with the response data for each page. To stop
12404// iterating, return false from the fn function.
12405//
12406// See ListAuthorizers method for more information on how to use this operation.
12407//
12408// Note: This operation can generate multiple requests to a service.
12409//
12410//    // Example iterating over at most 3 pages of a ListAuthorizers operation.
12411//    pageNum := 0
12412//    err := client.ListAuthorizersPages(params,
12413//        func(page *iot.ListAuthorizersOutput, lastPage bool) bool {
12414//            pageNum++
12415//            fmt.Println(page)
12416//            return pageNum <= 3
12417//        })
12418//
12419func (c *IoT) ListAuthorizersPages(input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool) error {
12420	return c.ListAuthorizersPagesWithContext(aws.BackgroundContext(), input, fn)
12421}
12422
12423// ListAuthorizersPagesWithContext same as ListAuthorizersPages except
12424// it takes a Context and allows setting request options on the pages.
12425//
12426// The context must be non-nil and will be used for request cancellation. If
12427// the context is nil a panic will occur. In the future the SDK may create
12428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12429// for more information on using Contexts.
12430func (c *IoT) ListAuthorizersPagesWithContext(ctx aws.Context, input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool, opts ...request.Option) error {
12431	p := request.Pagination{
12432		NewRequest: func() (*request.Request, error) {
12433			var inCpy *ListAuthorizersInput
12434			if input != nil {
12435				tmp := *input
12436				inCpy = &tmp
12437			}
12438			req, _ := c.ListAuthorizersRequest(inCpy)
12439			req.SetContext(ctx)
12440			req.ApplyOptions(opts...)
12441			return req, nil
12442		},
12443	}
12444
12445	for p.Next() {
12446		if !fn(p.Page().(*ListAuthorizersOutput), !p.HasNextPage()) {
12447			break
12448		}
12449	}
12450
12451	return p.Err()
12452}
12453
12454const opListBillingGroups = "ListBillingGroups"
12455
12456// ListBillingGroupsRequest generates a "aws/request.Request" representing the
12457// client's request for the ListBillingGroups operation. The "output" return
12458// value will be populated with the request's response once the request completes
12459// successfully.
12460//
12461// Use "Send" method on the returned Request to send the API call to the service.
12462// the "output" return value is not valid until after Send returns without error.
12463//
12464// See ListBillingGroups for more information on using the ListBillingGroups
12465// API call, and error handling.
12466//
12467// This method is useful when you want to inject custom logic or configuration
12468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12469//
12470//
12471//    // Example sending a request using the ListBillingGroupsRequest method.
12472//    req, resp := client.ListBillingGroupsRequest(params)
12473//
12474//    err := req.Send()
12475//    if err == nil { // resp is now filled
12476//        fmt.Println(resp)
12477//    }
12478func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
12479	op := &request.Operation{
12480		Name:       opListBillingGroups,
12481		HTTPMethod: "GET",
12482		HTTPPath:   "/billing-groups",
12483		Paginator: &request.Paginator{
12484			InputTokens:     []string{"nextToken"},
12485			OutputTokens:    []string{"nextToken"},
12486			LimitToken:      "maxResults",
12487			TruncationToken: "",
12488		},
12489	}
12490
12491	if input == nil {
12492		input = &ListBillingGroupsInput{}
12493	}
12494
12495	output = &ListBillingGroupsOutput{}
12496	req = c.newRequest(op, input, output)
12497	return
12498}
12499
12500// ListBillingGroups API operation for AWS IoT.
12501//
12502// Lists the billing groups you have created.
12503//
12504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12505// with awserr.Error's Code and Message methods to get detailed information about
12506// the error.
12507//
12508// See the AWS API reference guide for AWS IoT's
12509// API operation ListBillingGroups for usage and error information.
12510//
12511// Returned Error Types:
12512//   * InvalidRequestException
12513//   The request is not valid.
12514//
12515//   * InternalFailureException
12516//   An unexpected error has occurred.
12517//
12518//   * ResourceNotFoundException
12519//   The specified resource does not exist.
12520//
12521//   * ThrottlingException
12522//   The rate exceeds the limit.
12523//
12524func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
12525	req, out := c.ListBillingGroupsRequest(input)
12526	return out, req.Send()
12527}
12528
12529// ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
12530// the ability to pass a context and additional request options.
12531//
12532// See ListBillingGroups for details on how to use this API operation.
12533//
12534// The context must be non-nil and will be used for request cancellation. If
12535// the context is nil a panic will occur. In the future the SDK may create
12536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12537// for more information on using Contexts.
12538func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
12539	req, out := c.ListBillingGroupsRequest(input)
12540	req.SetContext(ctx)
12541	req.ApplyOptions(opts...)
12542	return out, req.Send()
12543}
12544
12545// ListBillingGroupsPages iterates over the pages of a ListBillingGroups operation,
12546// calling the "fn" function with the response data for each page. To stop
12547// iterating, return false from the fn function.
12548//
12549// See ListBillingGroups method for more information on how to use this operation.
12550//
12551// Note: This operation can generate multiple requests to a service.
12552//
12553//    // Example iterating over at most 3 pages of a ListBillingGroups operation.
12554//    pageNum := 0
12555//    err := client.ListBillingGroupsPages(params,
12556//        func(page *iot.ListBillingGroupsOutput, lastPage bool) bool {
12557//            pageNum++
12558//            fmt.Println(page)
12559//            return pageNum <= 3
12560//        })
12561//
12562func (c *IoT) ListBillingGroupsPages(input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool) error {
12563	return c.ListBillingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
12564}
12565
12566// ListBillingGroupsPagesWithContext same as ListBillingGroupsPages except
12567// it takes a Context and allows setting request options on the pages.
12568//
12569// The context must be non-nil and will be used for request cancellation. If
12570// the context is nil a panic will occur. In the future the SDK may create
12571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12572// for more information on using Contexts.
12573func (c *IoT) ListBillingGroupsPagesWithContext(ctx aws.Context, input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool, opts ...request.Option) error {
12574	p := request.Pagination{
12575		NewRequest: func() (*request.Request, error) {
12576			var inCpy *ListBillingGroupsInput
12577			if input != nil {
12578				tmp := *input
12579				inCpy = &tmp
12580			}
12581			req, _ := c.ListBillingGroupsRequest(inCpy)
12582			req.SetContext(ctx)
12583			req.ApplyOptions(opts...)
12584			return req, nil
12585		},
12586	}
12587
12588	for p.Next() {
12589		if !fn(p.Page().(*ListBillingGroupsOutput), !p.HasNextPage()) {
12590			break
12591		}
12592	}
12593
12594	return p.Err()
12595}
12596
12597const opListCACertificates = "ListCACertificates"
12598
12599// ListCACertificatesRequest generates a "aws/request.Request" representing the
12600// client's request for the ListCACertificates operation. The "output" return
12601// value will be populated with the request's response once the request completes
12602// successfully.
12603//
12604// Use "Send" method on the returned Request to send the API call to the service.
12605// the "output" return value is not valid until after Send returns without error.
12606//
12607// See ListCACertificates for more information on using the ListCACertificates
12608// API call, and error handling.
12609//
12610// This method is useful when you want to inject custom logic or configuration
12611// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12612//
12613//
12614//    // Example sending a request using the ListCACertificatesRequest method.
12615//    req, resp := client.ListCACertificatesRequest(params)
12616//
12617//    err := req.Send()
12618//    if err == nil { // resp is now filled
12619//        fmt.Println(resp)
12620//    }
12621func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
12622	op := &request.Operation{
12623		Name:       opListCACertificates,
12624		HTTPMethod: "GET",
12625		HTTPPath:   "/cacertificates",
12626		Paginator: &request.Paginator{
12627			InputTokens:     []string{"marker"},
12628			OutputTokens:    []string{"nextMarker"},
12629			LimitToken:      "pageSize",
12630			TruncationToken: "",
12631		},
12632	}
12633
12634	if input == nil {
12635		input = &ListCACertificatesInput{}
12636	}
12637
12638	output = &ListCACertificatesOutput{}
12639	req = c.newRequest(op, input, output)
12640	return
12641}
12642
12643// ListCACertificates API operation for AWS IoT.
12644//
12645// Lists the CA certificates registered for your AWS account.
12646//
12647// The results are paginated with a default page size of 25. You can use the
12648// returned marker to retrieve additional results.
12649//
12650// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12651// with awserr.Error's Code and Message methods to get detailed information about
12652// the error.
12653//
12654// See the AWS API reference guide for AWS IoT's
12655// API operation ListCACertificates for usage and error information.
12656//
12657// Returned Error Types:
12658//   * InvalidRequestException
12659//   The request is not valid.
12660//
12661//   * ThrottlingException
12662//   The rate exceeds the limit.
12663//
12664//   * UnauthorizedException
12665//   You are not authorized to perform this operation.
12666//
12667//   * ServiceUnavailableException
12668//   The service is temporarily unavailable.
12669//
12670//   * InternalFailureException
12671//   An unexpected error has occurred.
12672//
12673func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
12674	req, out := c.ListCACertificatesRequest(input)
12675	return out, req.Send()
12676}
12677
12678// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
12679// the ability to pass a context and additional request options.
12680//
12681// See ListCACertificates for details on how to use this API operation.
12682//
12683// The context must be non-nil and will be used for request cancellation. If
12684// the context is nil a panic will occur. In the future the SDK may create
12685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12686// for more information on using Contexts.
12687func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
12688	req, out := c.ListCACertificatesRequest(input)
12689	req.SetContext(ctx)
12690	req.ApplyOptions(opts...)
12691	return out, req.Send()
12692}
12693
12694// ListCACertificatesPages iterates over the pages of a ListCACertificates operation,
12695// calling the "fn" function with the response data for each page. To stop
12696// iterating, return false from the fn function.
12697//
12698// See ListCACertificates method for more information on how to use this operation.
12699//
12700// Note: This operation can generate multiple requests to a service.
12701//
12702//    // Example iterating over at most 3 pages of a ListCACertificates operation.
12703//    pageNum := 0
12704//    err := client.ListCACertificatesPages(params,
12705//        func(page *iot.ListCACertificatesOutput, lastPage bool) bool {
12706//            pageNum++
12707//            fmt.Println(page)
12708//            return pageNum <= 3
12709//        })
12710//
12711func (c *IoT) ListCACertificatesPages(input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool) error {
12712	return c.ListCACertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
12713}
12714
12715// ListCACertificatesPagesWithContext same as ListCACertificatesPages except
12716// it takes a Context and allows setting request options on the pages.
12717//
12718// The context must be non-nil and will be used for request cancellation. If
12719// the context is nil a panic will occur. In the future the SDK may create
12720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12721// for more information on using Contexts.
12722func (c *IoT) ListCACertificatesPagesWithContext(ctx aws.Context, input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool, opts ...request.Option) error {
12723	p := request.Pagination{
12724		NewRequest: func() (*request.Request, error) {
12725			var inCpy *ListCACertificatesInput
12726			if input != nil {
12727				tmp := *input
12728				inCpy = &tmp
12729			}
12730			req, _ := c.ListCACertificatesRequest(inCpy)
12731			req.SetContext(ctx)
12732			req.ApplyOptions(opts...)
12733			return req, nil
12734		},
12735	}
12736
12737	for p.Next() {
12738		if !fn(p.Page().(*ListCACertificatesOutput), !p.HasNextPage()) {
12739			break
12740		}
12741	}
12742
12743	return p.Err()
12744}
12745
12746const opListCertificates = "ListCertificates"
12747
12748// ListCertificatesRequest generates a "aws/request.Request" representing the
12749// client's request for the ListCertificates operation. The "output" return
12750// value will be populated with the request's response once the request completes
12751// successfully.
12752//
12753// Use "Send" method on the returned Request to send the API call to the service.
12754// the "output" return value is not valid until after Send returns without error.
12755//
12756// See ListCertificates for more information on using the ListCertificates
12757// API call, and error handling.
12758//
12759// This method is useful when you want to inject custom logic or configuration
12760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12761//
12762//
12763//    // Example sending a request using the ListCertificatesRequest method.
12764//    req, resp := client.ListCertificatesRequest(params)
12765//
12766//    err := req.Send()
12767//    if err == nil { // resp is now filled
12768//        fmt.Println(resp)
12769//    }
12770func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
12771	op := &request.Operation{
12772		Name:       opListCertificates,
12773		HTTPMethod: "GET",
12774		HTTPPath:   "/certificates",
12775		Paginator: &request.Paginator{
12776			InputTokens:     []string{"marker"},
12777			OutputTokens:    []string{"nextMarker"},
12778			LimitToken:      "pageSize",
12779			TruncationToken: "",
12780		},
12781	}
12782
12783	if input == nil {
12784		input = &ListCertificatesInput{}
12785	}
12786
12787	output = &ListCertificatesOutput{}
12788	req = c.newRequest(op, input, output)
12789	return
12790}
12791
12792// ListCertificates API operation for AWS IoT.
12793//
12794// Lists the certificates registered in your AWS account.
12795//
12796// The results are paginated with a default page size of 25. You can use the
12797// returned marker to retrieve additional results.
12798//
12799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12800// with awserr.Error's Code and Message methods to get detailed information about
12801// the error.
12802//
12803// See the AWS API reference guide for AWS IoT's
12804// API operation ListCertificates for usage and error information.
12805//
12806// Returned Error Types:
12807//   * InvalidRequestException
12808//   The request is not valid.
12809//
12810//   * ThrottlingException
12811//   The rate exceeds the limit.
12812//
12813//   * UnauthorizedException
12814//   You are not authorized to perform this operation.
12815//
12816//   * ServiceUnavailableException
12817//   The service is temporarily unavailable.
12818//
12819//   * InternalFailureException
12820//   An unexpected error has occurred.
12821//
12822func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
12823	req, out := c.ListCertificatesRequest(input)
12824	return out, req.Send()
12825}
12826
12827// ListCertificatesWithContext is the same as ListCertificates with the addition of
12828// the ability to pass a context and additional request options.
12829//
12830// See ListCertificates for details on how to use this API operation.
12831//
12832// The context must be non-nil and will be used for request cancellation. If
12833// the context is nil a panic will occur. In the future the SDK may create
12834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12835// for more information on using Contexts.
12836func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
12837	req, out := c.ListCertificatesRequest(input)
12838	req.SetContext(ctx)
12839	req.ApplyOptions(opts...)
12840	return out, req.Send()
12841}
12842
12843// ListCertificatesPages iterates over the pages of a ListCertificates operation,
12844// calling the "fn" function with the response data for each page. To stop
12845// iterating, return false from the fn function.
12846//
12847// See ListCertificates method for more information on how to use this operation.
12848//
12849// Note: This operation can generate multiple requests to a service.
12850//
12851//    // Example iterating over at most 3 pages of a ListCertificates operation.
12852//    pageNum := 0
12853//    err := client.ListCertificatesPages(params,
12854//        func(page *iot.ListCertificatesOutput, lastPage bool) bool {
12855//            pageNum++
12856//            fmt.Println(page)
12857//            return pageNum <= 3
12858//        })
12859//
12860func (c *IoT) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
12861	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
12862}
12863
12864// ListCertificatesPagesWithContext same as ListCertificatesPages except
12865// it takes a Context and allows setting request options on the pages.
12866//
12867// The context must be non-nil and will be used for request cancellation. If
12868// the context is nil a panic will occur. In the future the SDK may create
12869// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12870// for more information on using Contexts.
12871func (c *IoT) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
12872	p := request.Pagination{
12873		NewRequest: func() (*request.Request, error) {
12874			var inCpy *ListCertificatesInput
12875			if input != nil {
12876				tmp := *input
12877				inCpy = &tmp
12878			}
12879			req, _ := c.ListCertificatesRequest(inCpy)
12880			req.SetContext(ctx)
12881			req.ApplyOptions(opts...)
12882			return req, nil
12883		},
12884	}
12885
12886	for p.Next() {
12887		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
12888			break
12889		}
12890	}
12891
12892	return p.Err()
12893}
12894
12895const opListCertificatesByCA = "ListCertificatesByCA"
12896
12897// ListCertificatesByCARequest generates a "aws/request.Request" representing the
12898// client's request for the ListCertificatesByCA operation. The "output" return
12899// value will be populated with the request's response once the request completes
12900// successfully.
12901//
12902// Use "Send" method on the returned Request to send the API call to the service.
12903// the "output" return value is not valid until after Send returns without error.
12904//
12905// See ListCertificatesByCA for more information on using the ListCertificatesByCA
12906// API call, and error handling.
12907//
12908// This method is useful when you want to inject custom logic or configuration
12909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12910//
12911//
12912//    // Example sending a request using the ListCertificatesByCARequest method.
12913//    req, resp := client.ListCertificatesByCARequest(params)
12914//
12915//    err := req.Send()
12916//    if err == nil { // resp is now filled
12917//        fmt.Println(resp)
12918//    }
12919func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
12920	op := &request.Operation{
12921		Name:       opListCertificatesByCA,
12922		HTTPMethod: "GET",
12923		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
12924		Paginator: &request.Paginator{
12925			InputTokens:     []string{"marker"},
12926			OutputTokens:    []string{"nextMarker"},
12927			LimitToken:      "pageSize",
12928			TruncationToken: "",
12929		},
12930	}
12931
12932	if input == nil {
12933		input = &ListCertificatesByCAInput{}
12934	}
12935
12936	output = &ListCertificatesByCAOutput{}
12937	req = c.newRequest(op, input, output)
12938	return
12939}
12940
12941// ListCertificatesByCA API operation for AWS IoT.
12942//
12943// List the device certificates signed by the specified CA certificate.
12944//
12945// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12946// with awserr.Error's Code and Message methods to get detailed information about
12947// the error.
12948//
12949// See the AWS API reference guide for AWS IoT's
12950// API operation ListCertificatesByCA for usage and error information.
12951//
12952// Returned Error Types:
12953//   * InvalidRequestException
12954//   The request is not valid.
12955//
12956//   * ThrottlingException
12957//   The rate exceeds the limit.
12958//
12959//   * UnauthorizedException
12960//   You are not authorized to perform this operation.
12961//
12962//   * ServiceUnavailableException
12963//   The service is temporarily unavailable.
12964//
12965//   * InternalFailureException
12966//   An unexpected error has occurred.
12967//
12968func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
12969	req, out := c.ListCertificatesByCARequest(input)
12970	return out, req.Send()
12971}
12972
12973// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
12974// the ability to pass a context and additional request options.
12975//
12976// See ListCertificatesByCA for details on how to use this API operation.
12977//
12978// The context must be non-nil and will be used for request cancellation. If
12979// the context is nil a panic will occur. In the future the SDK may create
12980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12981// for more information on using Contexts.
12982func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
12983	req, out := c.ListCertificatesByCARequest(input)
12984	req.SetContext(ctx)
12985	req.ApplyOptions(opts...)
12986	return out, req.Send()
12987}
12988
12989// ListCertificatesByCAPages iterates over the pages of a ListCertificatesByCA operation,
12990// calling the "fn" function with the response data for each page. To stop
12991// iterating, return false from the fn function.
12992//
12993// See ListCertificatesByCA method for more information on how to use this operation.
12994//
12995// Note: This operation can generate multiple requests to a service.
12996//
12997//    // Example iterating over at most 3 pages of a ListCertificatesByCA operation.
12998//    pageNum := 0
12999//    err := client.ListCertificatesByCAPages(params,
13000//        func(page *iot.ListCertificatesByCAOutput, lastPage bool) bool {
13001//            pageNum++
13002//            fmt.Println(page)
13003//            return pageNum <= 3
13004//        })
13005//
13006func (c *IoT) ListCertificatesByCAPages(input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool) error {
13007	return c.ListCertificatesByCAPagesWithContext(aws.BackgroundContext(), input, fn)
13008}
13009
13010// ListCertificatesByCAPagesWithContext same as ListCertificatesByCAPages except
13011// it takes a Context and allows setting request options on the pages.
13012//
13013// The context must be non-nil and will be used for request cancellation. If
13014// the context is nil a panic will occur. In the future the SDK may create
13015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13016// for more information on using Contexts.
13017func (c *IoT) ListCertificatesByCAPagesWithContext(ctx aws.Context, input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool, opts ...request.Option) error {
13018	p := request.Pagination{
13019		NewRequest: func() (*request.Request, error) {
13020			var inCpy *ListCertificatesByCAInput
13021			if input != nil {
13022				tmp := *input
13023				inCpy = &tmp
13024			}
13025			req, _ := c.ListCertificatesByCARequest(inCpy)
13026			req.SetContext(ctx)
13027			req.ApplyOptions(opts...)
13028			return req, nil
13029		},
13030	}
13031
13032	for p.Next() {
13033		if !fn(p.Page().(*ListCertificatesByCAOutput), !p.HasNextPage()) {
13034			break
13035		}
13036	}
13037
13038	return p.Err()
13039}
13040
13041const opListCustomMetrics = "ListCustomMetrics"
13042
13043// ListCustomMetricsRequest generates a "aws/request.Request" representing the
13044// client's request for the ListCustomMetrics operation. The "output" return
13045// value will be populated with the request's response once the request completes
13046// successfully.
13047//
13048// Use "Send" method on the returned Request to send the API call to the service.
13049// the "output" return value is not valid until after Send returns without error.
13050//
13051// See ListCustomMetrics for more information on using the ListCustomMetrics
13052// API call, and error handling.
13053//
13054// This method is useful when you want to inject custom logic or configuration
13055// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13056//
13057//
13058//    // Example sending a request using the ListCustomMetricsRequest method.
13059//    req, resp := client.ListCustomMetricsRequest(params)
13060//
13061//    err := req.Send()
13062//    if err == nil { // resp is now filled
13063//        fmt.Println(resp)
13064//    }
13065func (c *IoT) ListCustomMetricsRequest(input *ListCustomMetricsInput) (req *request.Request, output *ListCustomMetricsOutput) {
13066	op := &request.Operation{
13067		Name:       opListCustomMetrics,
13068		HTTPMethod: "GET",
13069		HTTPPath:   "/custom-metrics",
13070		Paginator: &request.Paginator{
13071			InputTokens:     []string{"nextToken"},
13072			OutputTokens:    []string{"nextToken"},
13073			LimitToken:      "maxResults",
13074			TruncationToken: "",
13075		},
13076	}
13077
13078	if input == nil {
13079		input = &ListCustomMetricsInput{}
13080	}
13081
13082	output = &ListCustomMetricsOutput{}
13083	req = c.newRequest(op, input, output)
13084	return
13085}
13086
13087// ListCustomMetrics API operation for AWS IoT.
13088//
13089// Lists your Device Defender detect custom metrics.
13090//
13091// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13092// with awserr.Error's Code and Message methods to get detailed information about
13093// the error.
13094//
13095// See the AWS API reference guide for AWS IoT's
13096// API operation ListCustomMetrics for usage and error information.
13097//
13098// Returned Error Types:
13099//   * InvalidRequestException
13100//   The request is not valid.
13101//
13102//   * ThrottlingException
13103//   The rate exceeds the limit.
13104//
13105//   * InternalFailureException
13106//   An unexpected error has occurred.
13107//
13108func (c *IoT) ListCustomMetrics(input *ListCustomMetricsInput) (*ListCustomMetricsOutput, error) {
13109	req, out := c.ListCustomMetricsRequest(input)
13110	return out, req.Send()
13111}
13112
13113// ListCustomMetricsWithContext is the same as ListCustomMetrics with the addition of
13114// the ability to pass a context and additional request options.
13115//
13116// See ListCustomMetrics for details on how to use this API operation.
13117//
13118// The context must be non-nil and will be used for request cancellation. If
13119// the context is nil a panic will occur. In the future the SDK may create
13120// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13121// for more information on using Contexts.
13122func (c *IoT) ListCustomMetricsWithContext(ctx aws.Context, input *ListCustomMetricsInput, opts ...request.Option) (*ListCustomMetricsOutput, error) {
13123	req, out := c.ListCustomMetricsRequest(input)
13124	req.SetContext(ctx)
13125	req.ApplyOptions(opts...)
13126	return out, req.Send()
13127}
13128
13129// ListCustomMetricsPages iterates over the pages of a ListCustomMetrics operation,
13130// calling the "fn" function with the response data for each page. To stop
13131// iterating, return false from the fn function.
13132//
13133// See ListCustomMetrics method for more information on how to use this operation.
13134//
13135// Note: This operation can generate multiple requests to a service.
13136//
13137//    // Example iterating over at most 3 pages of a ListCustomMetrics operation.
13138//    pageNum := 0
13139//    err := client.ListCustomMetricsPages(params,
13140//        func(page *iot.ListCustomMetricsOutput, lastPage bool) bool {
13141//            pageNum++
13142//            fmt.Println(page)
13143//            return pageNum <= 3
13144//        })
13145//
13146func (c *IoT) ListCustomMetricsPages(input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool) error {
13147	return c.ListCustomMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
13148}
13149
13150// ListCustomMetricsPagesWithContext same as ListCustomMetricsPages except
13151// it takes a Context and allows setting request options on the pages.
13152//
13153// The context must be non-nil and will be used for request cancellation. If
13154// the context is nil a panic will occur. In the future the SDK may create
13155// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13156// for more information on using Contexts.
13157func (c *IoT) ListCustomMetricsPagesWithContext(ctx aws.Context, input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool, opts ...request.Option) error {
13158	p := request.Pagination{
13159		NewRequest: func() (*request.Request, error) {
13160			var inCpy *ListCustomMetricsInput
13161			if input != nil {
13162				tmp := *input
13163				inCpy = &tmp
13164			}
13165			req, _ := c.ListCustomMetricsRequest(inCpy)
13166			req.SetContext(ctx)
13167			req.ApplyOptions(opts...)
13168			return req, nil
13169		},
13170	}
13171
13172	for p.Next() {
13173		if !fn(p.Page().(*ListCustomMetricsOutput), !p.HasNextPage()) {
13174			break
13175		}
13176	}
13177
13178	return p.Err()
13179}
13180
13181const opListDetectMitigationActionsExecutions = "ListDetectMitigationActionsExecutions"
13182
13183// ListDetectMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
13184// client's request for the ListDetectMitigationActionsExecutions operation. The "output" return
13185// value will be populated with the request's response once the request completes
13186// successfully.
13187//
13188// Use "Send" method on the returned Request to send the API call to the service.
13189// the "output" return value is not valid until after Send returns without error.
13190//
13191// See ListDetectMitigationActionsExecutions for more information on using the ListDetectMitigationActionsExecutions
13192// API call, and error handling.
13193//
13194// This method is useful when you want to inject custom logic or configuration
13195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13196//
13197//
13198//    // Example sending a request using the ListDetectMitigationActionsExecutionsRequest method.
13199//    req, resp := client.ListDetectMitigationActionsExecutionsRequest(params)
13200//
13201//    err := req.Send()
13202//    if err == nil { // resp is now filled
13203//        fmt.Println(resp)
13204//    }
13205func (c *IoT) ListDetectMitigationActionsExecutionsRequest(input *ListDetectMitigationActionsExecutionsInput) (req *request.Request, output *ListDetectMitigationActionsExecutionsOutput) {
13206	op := &request.Operation{
13207		Name:       opListDetectMitigationActionsExecutions,
13208		HTTPMethod: "GET",
13209		HTTPPath:   "/detect/mitigationactions/executions",
13210		Paginator: &request.Paginator{
13211			InputTokens:     []string{"nextToken"},
13212			OutputTokens:    []string{"nextToken"},
13213			LimitToken:      "maxResults",
13214			TruncationToken: "",
13215		},
13216	}
13217
13218	if input == nil {
13219		input = &ListDetectMitigationActionsExecutionsInput{}
13220	}
13221
13222	output = &ListDetectMitigationActionsExecutionsOutput{}
13223	req = c.newRequest(op, input, output)
13224	return
13225}
13226
13227// ListDetectMitigationActionsExecutions API operation for AWS IoT.
13228//
13229// Lists mitigation actions executions for a Device Defender ML Detect Security
13230// Profile.
13231//
13232// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13233// with awserr.Error's Code and Message methods to get detailed information about
13234// the error.
13235//
13236// See the AWS API reference guide for AWS IoT's
13237// API operation ListDetectMitigationActionsExecutions for usage and error information.
13238//
13239// Returned Error Types:
13240//   * InvalidRequestException
13241//   The request is not valid.
13242//
13243//   * ThrottlingException
13244//   The rate exceeds the limit.
13245//
13246//   * InternalFailureException
13247//   An unexpected error has occurred.
13248//
13249func (c *IoT) ListDetectMitigationActionsExecutions(input *ListDetectMitigationActionsExecutionsInput) (*ListDetectMitigationActionsExecutionsOutput, error) {
13250	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13251	return out, req.Send()
13252}
13253
13254// ListDetectMitigationActionsExecutionsWithContext is the same as ListDetectMitigationActionsExecutions with the addition of
13255// the ability to pass a context and additional request options.
13256//
13257// See ListDetectMitigationActionsExecutions for details on how to use this API operation.
13258//
13259// The context must be non-nil and will be used for request cancellation. If
13260// the context is nil a panic will occur. In the future the SDK may create
13261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13262// for more information on using Contexts.
13263func (c *IoT) ListDetectMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, opts ...request.Option) (*ListDetectMitigationActionsExecutionsOutput, error) {
13264	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13265	req.SetContext(ctx)
13266	req.ApplyOptions(opts...)
13267	return out, req.Send()
13268}
13269
13270// ListDetectMitigationActionsExecutionsPages iterates over the pages of a ListDetectMitigationActionsExecutions operation,
13271// calling the "fn" function with the response data for each page. To stop
13272// iterating, return false from the fn function.
13273//
13274// See ListDetectMitigationActionsExecutions method for more information on how to use this operation.
13275//
13276// Note: This operation can generate multiple requests to a service.
13277//
13278//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsExecutions operation.
13279//    pageNum := 0
13280//    err := client.ListDetectMitigationActionsExecutionsPages(params,
13281//        func(page *iot.ListDetectMitigationActionsExecutionsOutput, lastPage bool) bool {
13282//            pageNum++
13283//            fmt.Println(page)
13284//            return pageNum <= 3
13285//        })
13286//
13287func (c *IoT) ListDetectMitigationActionsExecutionsPages(input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool) error {
13288	return c.ListDetectMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
13289}
13290
13291// ListDetectMitigationActionsExecutionsPagesWithContext same as ListDetectMitigationActionsExecutionsPages except
13292// it takes a Context and allows setting request options on the pages.
13293//
13294// The context must be non-nil and will be used for request cancellation. If
13295// the context is nil a panic will occur. In the future the SDK may create
13296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13297// for more information on using Contexts.
13298func (c *IoT) ListDetectMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
13299	p := request.Pagination{
13300		NewRequest: func() (*request.Request, error) {
13301			var inCpy *ListDetectMitigationActionsExecutionsInput
13302			if input != nil {
13303				tmp := *input
13304				inCpy = &tmp
13305			}
13306			req, _ := c.ListDetectMitigationActionsExecutionsRequest(inCpy)
13307			req.SetContext(ctx)
13308			req.ApplyOptions(opts...)
13309			return req, nil
13310		},
13311	}
13312
13313	for p.Next() {
13314		if !fn(p.Page().(*ListDetectMitigationActionsExecutionsOutput), !p.HasNextPage()) {
13315			break
13316		}
13317	}
13318
13319	return p.Err()
13320}
13321
13322const opListDetectMitigationActionsTasks = "ListDetectMitigationActionsTasks"
13323
13324// ListDetectMitigationActionsTasksRequest generates a "aws/request.Request" representing the
13325// client's request for the ListDetectMitigationActionsTasks operation. The "output" return
13326// value will be populated with the request's response once the request completes
13327// successfully.
13328//
13329// Use "Send" method on the returned Request to send the API call to the service.
13330// the "output" return value is not valid until after Send returns without error.
13331//
13332// See ListDetectMitigationActionsTasks for more information on using the ListDetectMitigationActionsTasks
13333// API call, and error handling.
13334//
13335// This method is useful when you want to inject custom logic or configuration
13336// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13337//
13338//
13339//    // Example sending a request using the ListDetectMitigationActionsTasksRequest method.
13340//    req, resp := client.ListDetectMitigationActionsTasksRequest(params)
13341//
13342//    err := req.Send()
13343//    if err == nil { // resp is now filled
13344//        fmt.Println(resp)
13345//    }
13346func (c *IoT) ListDetectMitigationActionsTasksRequest(input *ListDetectMitigationActionsTasksInput) (req *request.Request, output *ListDetectMitigationActionsTasksOutput) {
13347	op := &request.Operation{
13348		Name:       opListDetectMitigationActionsTasks,
13349		HTTPMethod: "GET",
13350		HTTPPath:   "/detect/mitigationactions/tasks",
13351		Paginator: &request.Paginator{
13352			InputTokens:     []string{"nextToken"},
13353			OutputTokens:    []string{"nextToken"},
13354			LimitToken:      "maxResults",
13355			TruncationToken: "",
13356		},
13357	}
13358
13359	if input == nil {
13360		input = &ListDetectMitigationActionsTasksInput{}
13361	}
13362
13363	output = &ListDetectMitigationActionsTasksOutput{}
13364	req = c.newRequest(op, input, output)
13365	return
13366}
13367
13368// ListDetectMitigationActionsTasks API operation for AWS IoT.
13369//
13370// List of Device Defender ML Detect mitigation actions tasks.
13371//
13372// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13373// with awserr.Error's Code and Message methods to get detailed information about
13374// the error.
13375//
13376// See the AWS API reference guide for AWS IoT's
13377// API operation ListDetectMitigationActionsTasks for usage and error information.
13378//
13379// Returned Error Types:
13380//   * InvalidRequestException
13381//   The request is not valid.
13382//
13383//   * ThrottlingException
13384//   The rate exceeds the limit.
13385//
13386//   * InternalFailureException
13387//   An unexpected error has occurred.
13388//
13389func (c *IoT) ListDetectMitigationActionsTasks(input *ListDetectMitigationActionsTasksInput) (*ListDetectMitigationActionsTasksOutput, error) {
13390	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13391	return out, req.Send()
13392}
13393
13394// ListDetectMitigationActionsTasksWithContext is the same as ListDetectMitigationActionsTasks with the addition of
13395// the ability to pass a context and additional request options.
13396//
13397// See ListDetectMitigationActionsTasks for details on how to use this API operation.
13398//
13399// The context must be non-nil and will be used for request cancellation. If
13400// the context is nil a panic will occur. In the future the SDK may create
13401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13402// for more information on using Contexts.
13403func (c *IoT) ListDetectMitigationActionsTasksWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, opts ...request.Option) (*ListDetectMitigationActionsTasksOutput, error) {
13404	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13405	req.SetContext(ctx)
13406	req.ApplyOptions(opts...)
13407	return out, req.Send()
13408}
13409
13410// ListDetectMitigationActionsTasksPages iterates over the pages of a ListDetectMitigationActionsTasks operation,
13411// calling the "fn" function with the response data for each page. To stop
13412// iterating, return false from the fn function.
13413//
13414// See ListDetectMitigationActionsTasks method for more information on how to use this operation.
13415//
13416// Note: This operation can generate multiple requests to a service.
13417//
13418//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsTasks operation.
13419//    pageNum := 0
13420//    err := client.ListDetectMitigationActionsTasksPages(params,
13421//        func(page *iot.ListDetectMitigationActionsTasksOutput, lastPage bool) bool {
13422//            pageNum++
13423//            fmt.Println(page)
13424//            return pageNum <= 3
13425//        })
13426//
13427func (c *IoT) ListDetectMitigationActionsTasksPages(input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool) error {
13428	return c.ListDetectMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
13429}
13430
13431// ListDetectMitigationActionsTasksPagesWithContext same as ListDetectMitigationActionsTasksPages except
13432// it takes a Context and allows setting request options on the pages.
13433//
13434// The context must be non-nil and will be used for request cancellation. If
13435// the context is nil a panic will occur. In the future the SDK may create
13436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13437// for more information on using Contexts.
13438func (c *IoT) ListDetectMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
13439	p := request.Pagination{
13440		NewRequest: func() (*request.Request, error) {
13441			var inCpy *ListDetectMitigationActionsTasksInput
13442			if input != nil {
13443				tmp := *input
13444				inCpy = &tmp
13445			}
13446			req, _ := c.ListDetectMitigationActionsTasksRequest(inCpy)
13447			req.SetContext(ctx)
13448			req.ApplyOptions(opts...)
13449			return req, nil
13450		},
13451	}
13452
13453	for p.Next() {
13454		if !fn(p.Page().(*ListDetectMitigationActionsTasksOutput), !p.HasNextPage()) {
13455			break
13456		}
13457	}
13458
13459	return p.Err()
13460}
13461
13462const opListDimensions = "ListDimensions"
13463
13464// ListDimensionsRequest generates a "aws/request.Request" representing the
13465// client's request for the ListDimensions operation. The "output" return
13466// value will be populated with the request's response once the request completes
13467// successfully.
13468//
13469// Use "Send" method on the returned Request to send the API call to the service.
13470// the "output" return value is not valid until after Send returns without error.
13471//
13472// See ListDimensions for more information on using the ListDimensions
13473// API call, and error handling.
13474//
13475// This method is useful when you want to inject custom logic or configuration
13476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13477//
13478//
13479//    // Example sending a request using the ListDimensionsRequest method.
13480//    req, resp := client.ListDimensionsRequest(params)
13481//
13482//    err := req.Send()
13483//    if err == nil { // resp is now filled
13484//        fmt.Println(resp)
13485//    }
13486func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
13487	op := &request.Operation{
13488		Name:       opListDimensions,
13489		HTTPMethod: "GET",
13490		HTTPPath:   "/dimensions",
13491		Paginator: &request.Paginator{
13492			InputTokens:     []string{"nextToken"},
13493			OutputTokens:    []string{"nextToken"},
13494			LimitToken:      "maxResults",
13495			TruncationToken: "",
13496		},
13497	}
13498
13499	if input == nil {
13500		input = &ListDimensionsInput{}
13501	}
13502
13503	output = &ListDimensionsOutput{}
13504	req = c.newRequest(op, input, output)
13505	return
13506}
13507
13508// ListDimensions API operation for AWS IoT.
13509//
13510// List the set of dimensions that are defined for your AWS account.
13511//
13512// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13513// with awserr.Error's Code and Message methods to get detailed information about
13514// the error.
13515//
13516// See the AWS API reference guide for AWS IoT's
13517// API operation ListDimensions for usage and error information.
13518//
13519// Returned Error Types:
13520//   * InternalFailureException
13521//   An unexpected error has occurred.
13522//
13523//   * InvalidRequestException
13524//   The request is not valid.
13525//
13526//   * ThrottlingException
13527//   The rate exceeds the limit.
13528//
13529func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
13530	req, out := c.ListDimensionsRequest(input)
13531	return out, req.Send()
13532}
13533
13534// ListDimensionsWithContext is the same as ListDimensions with the addition of
13535// the ability to pass a context and additional request options.
13536//
13537// See ListDimensions for details on how to use this API operation.
13538//
13539// The context must be non-nil and will be used for request cancellation. If
13540// the context is nil a panic will occur. In the future the SDK may create
13541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13542// for more information on using Contexts.
13543func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
13544	req, out := c.ListDimensionsRequest(input)
13545	req.SetContext(ctx)
13546	req.ApplyOptions(opts...)
13547	return out, req.Send()
13548}
13549
13550// ListDimensionsPages iterates over the pages of a ListDimensions operation,
13551// calling the "fn" function with the response data for each page. To stop
13552// iterating, return false from the fn function.
13553//
13554// See ListDimensions method for more information on how to use this operation.
13555//
13556// Note: This operation can generate multiple requests to a service.
13557//
13558//    // Example iterating over at most 3 pages of a ListDimensions operation.
13559//    pageNum := 0
13560//    err := client.ListDimensionsPages(params,
13561//        func(page *iot.ListDimensionsOutput, lastPage bool) bool {
13562//            pageNum++
13563//            fmt.Println(page)
13564//            return pageNum <= 3
13565//        })
13566//
13567func (c *IoT) ListDimensionsPages(input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool) error {
13568	return c.ListDimensionsPagesWithContext(aws.BackgroundContext(), input, fn)
13569}
13570
13571// ListDimensionsPagesWithContext same as ListDimensionsPages except
13572// it takes a Context and allows setting request options on the pages.
13573//
13574// The context must be non-nil and will be used for request cancellation. If
13575// the context is nil a panic will occur. In the future the SDK may create
13576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13577// for more information on using Contexts.
13578func (c *IoT) ListDimensionsPagesWithContext(ctx aws.Context, input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool, opts ...request.Option) error {
13579	p := request.Pagination{
13580		NewRequest: func() (*request.Request, error) {
13581			var inCpy *ListDimensionsInput
13582			if input != nil {
13583				tmp := *input
13584				inCpy = &tmp
13585			}
13586			req, _ := c.ListDimensionsRequest(inCpy)
13587			req.SetContext(ctx)
13588			req.ApplyOptions(opts...)
13589			return req, nil
13590		},
13591	}
13592
13593	for p.Next() {
13594		if !fn(p.Page().(*ListDimensionsOutput), !p.HasNextPage()) {
13595			break
13596		}
13597	}
13598
13599	return p.Err()
13600}
13601
13602const opListDomainConfigurations = "ListDomainConfigurations"
13603
13604// ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
13605// client's request for the ListDomainConfigurations operation. The "output" return
13606// value will be populated with the request's response once the request completes
13607// successfully.
13608//
13609// Use "Send" method on the returned Request to send the API call to the service.
13610// the "output" return value is not valid until after Send returns without error.
13611//
13612// See ListDomainConfigurations for more information on using the ListDomainConfigurations
13613// API call, and error handling.
13614//
13615// This method is useful when you want to inject custom logic or configuration
13616// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13617//
13618//
13619//    // Example sending a request using the ListDomainConfigurationsRequest method.
13620//    req, resp := client.ListDomainConfigurationsRequest(params)
13621//
13622//    err := req.Send()
13623//    if err == nil { // resp is now filled
13624//        fmt.Println(resp)
13625//    }
13626func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
13627	op := &request.Operation{
13628		Name:       opListDomainConfigurations,
13629		HTTPMethod: "GET",
13630		HTTPPath:   "/domainConfigurations",
13631		Paginator: &request.Paginator{
13632			InputTokens:     []string{"marker"},
13633			OutputTokens:    []string{"nextMarker"},
13634			LimitToken:      "pageSize",
13635			TruncationToken: "",
13636		},
13637	}
13638
13639	if input == nil {
13640		input = &ListDomainConfigurationsInput{}
13641	}
13642
13643	output = &ListDomainConfigurationsOutput{}
13644	req = c.newRequest(op, input, output)
13645	return
13646}
13647
13648// ListDomainConfigurations API operation for AWS IoT.
13649//
13650// Gets a list of domain configurations for the user. This list is sorted alphabetically
13651// by domain configuration name.
13652//
13653// The domain configuration feature is in public preview and is subject to change.
13654//
13655// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13656// with awserr.Error's Code and Message methods to get detailed information about
13657// the error.
13658//
13659// See the AWS API reference guide for AWS IoT's
13660// API operation ListDomainConfigurations for usage and error information.
13661//
13662// Returned Error Types:
13663//   * InvalidRequestException
13664//   The request is not valid.
13665//
13666//   * ThrottlingException
13667//   The rate exceeds the limit.
13668//
13669//   * UnauthorizedException
13670//   You are not authorized to perform this operation.
13671//
13672//   * ServiceUnavailableException
13673//   The service is temporarily unavailable.
13674//
13675//   * InternalFailureException
13676//   An unexpected error has occurred.
13677//
13678func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
13679	req, out := c.ListDomainConfigurationsRequest(input)
13680	return out, req.Send()
13681}
13682
13683// ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
13684// the ability to pass a context and additional request options.
13685//
13686// See ListDomainConfigurations for details on how to use this API operation.
13687//
13688// The context must be non-nil and will be used for request cancellation. If
13689// the context is nil a panic will occur. In the future the SDK may create
13690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13691// for more information on using Contexts.
13692func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
13693	req, out := c.ListDomainConfigurationsRequest(input)
13694	req.SetContext(ctx)
13695	req.ApplyOptions(opts...)
13696	return out, req.Send()
13697}
13698
13699// ListDomainConfigurationsPages iterates over the pages of a ListDomainConfigurations operation,
13700// calling the "fn" function with the response data for each page. To stop
13701// iterating, return false from the fn function.
13702//
13703// See ListDomainConfigurations method for more information on how to use this operation.
13704//
13705// Note: This operation can generate multiple requests to a service.
13706//
13707//    // Example iterating over at most 3 pages of a ListDomainConfigurations operation.
13708//    pageNum := 0
13709//    err := client.ListDomainConfigurationsPages(params,
13710//        func(page *iot.ListDomainConfigurationsOutput, lastPage bool) bool {
13711//            pageNum++
13712//            fmt.Println(page)
13713//            return pageNum <= 3
13714//        })
13715//
13716func (c *IoT) ListDomainConfigurationsPages(input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool) error {
13717	return c.ListDomainConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
13718}
13719
13720// ListDomainConfigurationsPagesWithContext same as ListDomainConfigurationsPages except
13721// it takes a Context and allows setting request options on the pages.
13722//
13723// The context must be non-nil and will be used for request cancellation. If
13724// the context is nil a panic will occur. In the future the SDK may create
13725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13726// for more information on using Contexts.
13727func (c *IoT) ListDomainConfigurationsPagesWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool, opts ...request.Option) error {
13728	p := request.Pagination{
13729		NewRequest: func() (*request.Request, error) {
13730			var inCpy *ListDomainConfigurationsInput
13731			if input != nil {
13732				tmp := *input
13733				inCpy = &tmp
13734			}
13735			req, _ := c.ListDomainConfigurationsRequest(inCpy)
13736			req.SetContext(ctx)
13737			req.ApplyOptions(opts...)
13738			return req, nil
13739		},
13740	}
13741
13742	for p.Next() {
13743		if !fn(p.Page().(*ListDomainConfigurationsOutput), !p.HasNextPage()) {
13744			break
13745		}
13746	}
13747
13748	return p.Err()
13749}
13750
13751const opListIndices = "ListIndices"
13752
13753// ListIndicesRequest generates a "aws/request.Request" representing the
13754// client's request for the ListIndices operation. The "output" return
13755// value will be populated with the request's response once the request completes
13756// successfully.
13757//
13758// Use "Send" method on the returned Request to send the API call to the service.
13759// the "output" return value is not valid until after Send returns without error.
13760//
13761// See ListIndices for more information on using the ListIndices
13762// API call, and error handling.
13763//
13764// This method is useful when you want to inject custom logic or configuration
13765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13766//
13767//
13768//    // Example sending a request using the ListIndicesRequest method.
13769//    req, resp := client.ListIndicesRequest(params)
13770//
13771//    err := req.Send()
13772//    if err == nil { // resp is now filled
13773//        fmt.Println(resp)
13774//    }
13775func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
13776	op := &request.Operation{
13777		Name:       opListIndices,
13778		HTTPMethod: "GET",
13779		HTTPPath:   "/indices",
13780		Paginator: &request.Paginator{
13781			InputTokens:     []string{"nextToken"},
13782			OutputTokens:    []string{"nextToken"},
13783			LimitToken:      "maxResults",
13784			TruncationToken: "",
13785		},
13786	}
13787
13788	if input == nil {
13789		input = &ListIndicesInput{}
13790	}
13791
13792	output = &ListIndicesOutput{}
13793	req = c.newRequest(op, input, output)
13794	return
13795}
13796
13797// ListIndices API operation for AWS IoT.
13798//
13799// Lists the search indices.
13800//
13801// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13802// with awserr.Error's Code and Message methods to get detailed information about
13803// the error.
13804//
13805// See the AWS API reference guide for AWS IoT's
13806// API operation ListIndices for usage and error information.
13807//
13808// Returned Error Types:
13809//   * InvalidRequestException
13810//   The request is not valid.
13811//
13812//   * ThrottlingException
13813//   The rate exceeds the limit.
13814//
13815//   * UnauthorizedException
13816//   You are not authorized to perform this operation.
13817//
13818//   * ServiceUnavailableException
13819//   The service is temporarily unavailable.
13820//
13821//   * InternalFailureException
13822//   An unexpected error has occurred.
13823//
13824func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
13825	req, out := c.ListIndicesRequest(input)
13826	return out, req.Send()
13827}
13828
13829// ListIndicesWithContext is the same as ListIndices with the addition of
13830// the ability to pass a context and additional request options.
13831//
13832// See ListIndices for details on how to use this API operation.
13833//
13834// The context must be non-nil and will be used for request cancellation. If
13835// the context is nil a panic will occur. In the future the SDK may create
13836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13837// for more information on using Contexts.
13838func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
13839	req, out := c.ListIndicesRequest(input)
13840	req.SetContext(ctx)
13841	req.ApplyOptions(opts...)
13842	return out, req.Send()
13843}
13844
13845// ListIndicesPages iterates over the pages of a ListIndices operation,
13846// calling the "fn" function with the response data for each page. To stop
13847// iterating, return false from the fn function.
13848//
13849// See ListIndices method for more information on how to use this operation.
13850//
13851// Note: This operation can generate multiple requests to a service.
13852//
13853//    // Example iterating over at most 3 pages of a ListIndices operation.
13854//    pageNum := 0
13855//    err := client.ListIndicesPages(params,
13856//        func(page *iot.ListIndicesOutput, lastPage bool) bool {
13857//            pageNum++
13858//            fmt.Println(page)
13859//            return pageNum <= 3
13860//        })
13861//
13862func (c *IoT) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
13863	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
13864}
13865
13866// ListIndicesPagesWithContext same as ListIndicesPages except
13867// it takes a Context and allows setting request options on the pages.
13868//
13869// The context must be non-nil and will be used for request cancellation. If
13870// the context is nil a panic will occur. In the future the SDK may create
13871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13872// for more information on using Contexts.
13873func (c *IoT) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
13874	p := request.Pagination{
13875		NewRequest: func() (*request.Request, error) {
13876			var inCpy *ListIndicesInput
13877			if input != nil {
13878				tmp := *input
13879				inCpy = &tmp
13880			}
13881			req, _ := c.ListIndicesRequest(inCpy)
13882			req.SetContext(ctx)
13883			req.ApplyOptions(opts...)
13884			return req, nil
13885		},
13886	}
13887
13888	for p.Next() {
13889		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
13890			break
13891		}
13892	}
13893
13894	return p.Err()
13895}
13896
13897const opListJobExecutionsForJob = "ListJobExecutionsForJob"
13898
13899// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
13900// client's request for the ListJobExecutionsForJob operation. The "output" return
13901// value will be populated with the request's response once the request completes
13902// successfully.
13903//
13904// Use "Send" method on the returned Request to send the API call to the service.
13905// the "output" return value is not valid until after Send returns without error.
13906//
13907// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
13908// API call, and error handling.
13909//
13910// This method is useful when you want to inject custom logic or configuration
13911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13912//
13913//
13914//    // Example sending a request using the ListJobExecutionsForJobRequest method.
13915//    req, resp := client.ListJobExecutionsForJobRequest(params)
13916//
13917//    err := req.Send()
13918//    if err == nil { // resp is now filled
13919//        fmt.Println(resp)
13920//    }
13921func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
13922	op := &request.Operation{
13923		Name:       opListJobExecutionsForJob,
13924		HTTPMethod: "GET",
13925		HTTPPath:   "/jobs/{jobId}/things",
13926		Paginator: &request.Paginator{
13927			InputTokens:     []string{"nextToken"},
13928			OutputTokens:    []string{"nextToken"},
13929			LimitToken:      "maxResults",
13930			TruncationToken: "",
13931		},
13932	}
13933
13934	if input == nil {
13935		input = &ListJobExecutionsForJobInput{}
13936	}
13937
13938	output = &ListJobExecutionsForJobOutput{}
13939	req = c.newRequest(op, input, output)
13940	return
13941}
13942
13943// ListJobExecutionsForJob API operation for AWS IoT.
13944//
13945// Lists the job executions for a job.
13946//
13947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13948// with awserr.Error's Code and Message methods to get detailed information about
13949// the error.
13950//
13951// See the AWS API reference guide for AWS IoT's
13952// API operation ListJobExecutionsForJob for usage and error information.
13953//
13954// Returned Error Types:
13955//   * InvalidRequestException
13956//   The request is not valid.
13957//
13958//   * ResourceNotFoundException
13959//   The specified resource does not exist.
13960//
13961//   * ThrottlingException
13962//   The rate exceeds the limit.
13963//
13964//   * ServiceUnavailableException
13965//   The service is temporarily unavailable.
13966//
13967func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
13968	req, out := c.ListJobExecutionsForJobRequest(input)
13969	return out, req.Send()
13970}
13971
13972// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
13973// the ability to pass a context and additional request options.
13974//
13975// See ListJobExecutionsForJob for details on how to use this API operation.
13976//
13977// The context must be non-nil and will be used for request cancellation. If
13978// the context is nil a panic will occur. In the future the SDK may create
13979// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13980// for more information on using Contexts.
13981func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
13982	req, out := c.ListJobExecutionsForJobRequest(input)
13983	req.SetContext(ctx)
13984	req.ApplyOptions(opts...)
13985	return out, req.Send()
13986}
13987
13988// ListJobExecutionsForJobPages iterates over the pages of a ListJobExecutionsForJob operation,
13989// calling the "fn" function with the response data for each page. To stop
13990// iterating, return false from the fn function.
13991//
13992// See ListJobExecutionsForJob method for more information on how to use this operation.
13993//
13994// Note: This operation can generate multiple requests to a service.
13995//
13996//    // Example iterating over at most 3 pages of a ListJobExecutionsForJob operation.
13997//    pageNum := 0
13998//    err := client.ListJobExecutionsForJobPages(params,
13999//        func(page *iot.ListJobExecutionsForJobOutput, lastPage bool) bool {
14000//            pageNum++
14001//            fmt.Println(page)
14002//            return pageNum <= 3
14003//        })
14004//
14005func (c *IoT) ListJobExecutionsForJobPages(input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool) error {
14006	return c.ListJobExecutionsForJobPagesWithContext(aws.BackgroundContext(), input, fn)
14007}
14008
14009// ListJobExecutionsForJobPagesWithContext same as ListJobExecutionsForJobPages except
14010// it takes a Context and allows setting request options on the pages.
14011//
14012// The context must be non-nil and will be used for request cancellation. If
14013// the context is nil a panic will occur. In the future the SDK may create
14014// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14015// for more information on using Contexts.
14016func (c *IoT) ListJobExecutionsForJobPagesWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool, opts ...request.Option) error {
14017	p := request.Pagination{
14018		NewRequest: func() (*request.Request, error) {
14019			var inCpy *ListJobExecutionsForJobInput
14020			if input != nil {
14021				tmp := *input
14022				inCpy = &tmp
14023			}
14024			req, _ := c.ListJobExecutionsForJobRequest(inCpy)
14025			req.SetContext(ctx)
14026			req.ApplyOptions(opts...)
14027			return req, nil
14028		},
14029	}
14030
14031	for p.Next() {
14032		if !fn(p.Page().(*ListJobExecutionsForJobOutput), !p.HasNextPage()) {
14033			break
14034		}
14035	}
14036
14037	return p.Err()
14038}
14039
14040const opListJobExecutionsForThing = "ListJobExecutionsForThing"
14041
14042// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
14043// client's request for the ListJobExecutionsForThing operation. The "output" return
14044// value will be populated with the request's response once the request completes
14045// successfully.
14046//
14047// Use "Send" method on the returned Request to send the API call to the service.
14048// the "output" return value is not valid until after Send returns without error.
14049//
14050// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
14051// API call, and error handling.
14052//
14053// This method is useful when you want to inject custom logic or configuration
14054// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14055//
14056//
14057//    // Example sending a request using the ListJobExecutionsForThingRequest method.
14058//    req, resp := client.ListJobExecutionsForThingRequest(params)
14059//
14060//    err := req.Send()
14061//    if err == nil { // resp is now filled
14062//        fmt.Println(resp)
14063//    }
14064func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
14065	op := &request.Operation{
14066		Name:       opListJobExecutionsForThing,
14067		HTTPMethod: "GET",
14068		HTTPPath:   "/things/{thingName}/jobs",
14069		Paginator: &request.Paginator{
14070			InputTokens:     []string{"nextToken"},
14071			OutputTokens:    []string{"nextToken"},
14072			LimitToken:      "maxResults",
14073			TruncationToken: "",
14074		},
14075	}
14076
14077	if input == nil {
14078		input = &ListJobExecutionsForThingInput{}
14079	}
14080
14081	output = &ListJobExecutionsForThingOutput{}
14082	req = c.newRequest(op, input, output)
14083	return
14084}
14085
14086// ListJobExecutionsForThing API operation for AWS IoT.
14087//
14088// Lists the job executions for the specified thing.
14089//
14090// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14091// with awserr.Error's Code and Message methods to get detailed information about
14092// the error.
14093//
14094// See the AWS API reference guide for AWS IoT's
14095// API operation ListJobExecutionsForThing for usage and error information.
14096//
14097// Returned Error Types:
14098//   * InvalidRequestException
14099//   The request is not valid.
14100//
14101//   * ResourceNotFoundException
14102//   The specified resource does not exist.
14103//
14104//   * ThrottlingException
14105//   The rate exceeds the limit.
14106//
14107//   * ServiceUnavailableException
14108//   The service is temporarily unavailable.
14109//
14110func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
14111	req, out := c.ListJobExecutionsForThingRequest(input)
14112	return out, req.Send()
14113}
14114
14115// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
14116// the ability to pass a context and additional request options.
14117//
14118// See ListJobExecutionsForThing for details on how to use this API operation.
14119//
14120// The context must be non-nil and will be used for request cancellation. If
14121// the context is nil a panic will occur. In the future the SDK may create
14122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14123// for more information on using Contexts.
14124func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
14125	req, out := c.ListJobExecutionsForThingRequest(input)
14126	req.SetContext(ctx)
14127	req.ApplyOptions(opts...)
14128	return out, req.Send()
14129}
14130
14131// ListJobExecutionsForThingPages iterates over the pages of a ListJobExecutionsForThing operation,
14132// calling the "fn" function with the response data for each page. To stop
14133// iterating, return false from the fn function.
14134//
14135// See ListJobExecutionsForThing method for more information on how to use this operation.
14136//
14137// Note: This operation can generate multiple requests to a service.
14138//
14139//    // Example iterating over at most 3 pages of a ListJobExecutionsForThing operation.
14140//    pageNum := 0
14141//    err := client.ListJobExecutionsForThingPages(params,
14142//        func(page *iot.ListJobExecutionsForThingOutput, lastPage bool) bool {
14143//            pageNum++
14144//            fmt.Println(page)
14145//            return pageNum <= 3
14146//        })
14147//
14148func (c *IoT) ListJobExecutionsForThingPages(input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool) error {
14149	return c.ListJobExecutionsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
14150}
14151
14152// ListJobExecutionsForThingPagesWithContext same as ListJobExecutionsForThingPages except
14153// it takes a Context and allows setting request options on the pages.
14154//
14155// The context must be non-nil and will be used for request cancellation. If
14156// the context is nil a panic will occur. In the future the SDK may create
14157// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14158// for more information on using Contexts.
14159func (c *IoT) ListJobExecutionsForThingPagesWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool, opts ...request.Option) error {
14160	p := request.Pagination{
14161		NewRequest: func() (*request.Request, error) {
14162			var inCpy *ListJobExecutionsForThingInput
14163			if input != nil {
14164				tmp := *input
14165				inCpy = &tmp
14166			}
14167			req, _ := c.ListJobExecutionsForThingRequest(inCpy)
14168			req.SetContext(ctx)
14169			req.ApplyOptions(opts...)
14170			return req, nil
14171		},
14172	}
14173
14174	for p.Next() {
14175		if !fn(p.Page().(*ListJobExecutionsForThingOutput), !p.HasNextPage()) {
14176			break
14177		}
14178	}
14179
14180	return p.Err()
14181}
14182
14183const opListJobs = "ListJobs"
14184
14185// ListJobsRequest generates a "aws/request.Request" representing the
14186// client's request for the ListJobs operation. The "output" return
14187// value will be populated with the request's response once the request completes
14188// successfully.
14189//
14190// Use "Send" method on the returned Request to send the API call to the service.
14191// the "output" return value is not valid until after Send returns without error.
14192//
14193// See ListJobs for more information on using the ListJobs
14194// API call, and error handling.
14195//
14196// This method is useful when you want to inject custom logic or configuration
14197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14198//
14199//
14200//    // Example sending a request using the ListJobsRequest method.
14201//    req, resp := client.ListJobsRequest(params)
14202//
14203//    err := req.Send()
14204//    if err == nil { // resp is now filled
14205//        fmt.Println(resp)
14206//    }
14207func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
14208	op := &request.Operation{
14209		Name:       opListJobs,
14210		HTTPMethod: "GET",
14211		HTTPPath:   "/jobs",
14212		Paginator: &request.Paginator{
14213			InputTokens:     []string{"nextToken"},
14214			OutputTokens:    []string{"nextToken"},
14215			LimitToken:      "maxResults",
14216			TruncationToken: "",
14217		},
14218	}
14219
14220	if input == nil {
14221		input = &ListJobsInput{}
14222	}
14223
14224	output = &ListJobsOutput{}
14225	req = c.newRequest(op, input, output)
14226	return
14227}
14228
14229// ListJobs API operation for AWS IoT.
14230//
14231// Lists jobs.
14232//
14233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14234// with awserr.Error's Code and Message methods to get detailed information about
14235// the error.
14236//
14237// See the AWS API reference guide for AWS IoT's
14238// API operation ListJobs for usage and error information.
14239//
14240// Returned Error Types:
14241//   * InvalidRequestException
14242//   The request is not valid.
14243//
14244//   * ResourceNotFoundException
14245//   The specified resource does not exist.
14246//
14247//   * ThrottlingException
14248//   The rate exceeds the limit.
14249//
14250//   * ServiceUnavailableException
14251//   The service is temporarily unavailable.
14252//
14253func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
14254	req, out := c.ListJobsRequest(input)
14255	return out, req.Send()
14256}
14257
14258// ListJobsWithContext is the same as ListJobs with the addition of
14259// the ability to pass a context and additional request options.
14260//
14261// See ListJobs for details on how to use this API operation.
14262//
14263// The context must be non-nil and will be used for request cancellation. If
14264// the context is nil a panic will occur. In the future the SDK may create
14265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14266// for more information on using Contexts.
14267func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
14268	req, out := c.ListJobsRequest(input)
14269	req.SetContext(ctx)
14270	req.ApplyOptions(opts...)
14271	return out, req.Send()
14272}
14273
14274// ListJobsPages iterates over the pages of a ListJobs operation,
14275// calling the "fn" function with the response data for each page. To stop
14276// iterating, return false from the fn function.
14277//
14278// See ListJobs method for more information on how to use this operation.
14279//
14280// Note: This operation can generate multiple requests to a service.
14281//
14282//    // Example iterating over at most 3 pages of a ListJobs operation.
14283//    pageNum := 0
14284//    err := client.ListJobsPages(params,
14285//        func(page *iot.ListJobsOutput, lastPage bool) bool {
14286//            pageNum++
14287//            fmt.Println(page)
14288//            return pageNum <= 3
14289//        })
14290//
14291func (c *IoT) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
14292	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
14293}
14294
14295// ListJobsPagesWithContext same as ListJobsPages except
14296// it takes a Context and allows setting request options on the pages.
14297//
14298// The context must be non-nil and will be used for request cancellation. If
14299// the context is nil a panic will occur. In the future the SDK may create
14300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14301// for more information on using Contexts.
14302func (c *IoT) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
14303	p := request.Pagination{
14304		NewRequest: func() (*request.Request, error) {
14305			var inCpy *ListJobsInput
14306			if input != nil {
14307				tmp := *input
14308				inCpy = &tmp
14309			}
14310			req, _ := c.ListJobsRequest(inCpy)
14311			req.SetContext(ctx)
14312			req.ApplyOptions(opts...)
14313			return req, nil
14314		},
14315	}
14316
14317	for p.Next() {
14318		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
14319			break
14320		}
14321	}
14322
14323	return p.Err()
14324}
14325
14326const opListMitigationActions = "ListMitigationActions"
14327
14328// ListMitigationActionsRequest generates a "aws/request.Request" representing the
14329// client's request for the ListMitigationActions operation. The "output" return
14330// value will be populated with the request's response once the request completes
14331// successfully.
14332//
14333// Use "Send" method on the returned Request to send the API call to the service.
14334// the "output" return value is not valid until after Send returns without error.
14335//
14336// See ListMitigationActions for more information on using the ListMitigationActions
14337// API call, and error handling.
14338//
14339// This method is useful when you want to inject custom logic or configuration
14340// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14341//
14342//
14343//    // Example sending a request using the ListMitigationActionsRequest method.
14344//    req, resp := client.ListMitigationActionsRequest(params)
14345//
14346//    err := req.Send()
14347//    if err == nil { // resp is now filled
14348//        fmt.Println(resp)
14349//    }
14350func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
14351	op := &request.Operation{
14352		Name:       opListMitigationActions,
14353		HTTPMethod: "GET",
14354		HTTPPath:   "/mitigationactions/actions",
14355		Paginator: &request.Paginator{
14356			InputTokens:     []string{"nextToken"},
14357			OutputTokens:    []string{"nextToken"},
14358			LimitToken:      "maxResults",
14359			TruncationToken: "",
14360		},
14361	}
14362
14363	if input == nil {
14364		input = &ListMitigationActionsInput{}
14365	}
14366
14367	output = &ListMitigationActionsOutput{}
14368	req = c.newRequest(op, input, output)
14369	return
14370}
14371
14372// ListMitigationActions API operation for AWS IoT.
14373//
14374// Gets a list of all mitigation actions that match the specified filter criteria.
14375//
14376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14377// with awserr.Error's Code and Message methods to get detailed information about
14378// the error.
14379//
14380// See the AWS API reference guide for AWS IoT's
14381// API operation ListMitigationActions for usage and error information.
14382//
14383// Returned Error Types:
14384//   * InvalidRequestException
14385//   The request is not valid.
14386//
14387//   * ThrottlingException
14388//   The rate exceeds the limit.
14389//
14390//   * InternalFailureException
14391//   An unexpected error has occurred.
14392//
14393func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
14394	req, out := c.ListMitigationActionsRequest(input)
14395	return out, req.Send()
14396}
14397
14398// ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
14399// the ability to pass a context and additional request options.
14400//
14401// See ListMitigationActions for details on how to use this API operation.
14402//
14403// The context must be non-nil and will be used for request cancellation. If
14404// the context is nil a panic will occur. In the future the SDK may create
14405// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14406// for more information on using Contexts.
14407func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
14408	req, out := c.ListMitigationActionsRequest(input)
14409	req.SetContext(ctx)
14410	req.ApplyOptions(opts...)
14411	return out, req.Send()
14412}
14413
14414// ListMitigationActionsPages iterates over the pages of a ListMitigationActions operation,
14415// calling the "fn" function with the response data for each page. To stop
14416// iterating, return false from the fn function.
14417//
14418// See ListMitigationActions method for more information on how to use this operation.
14419//
14420// Note: This operation can generate multiple requests to a service.
14421//
14422//    // Example iterating over at most 3 pages of a ListMitigationActions operation.
14423//    pageNum := 0
14424//    err := client.ListMitigationActionsPages(params,
14425//        func(page *iot.ListMitigationActionsOutput, lastPage bool) bool {
14426//            pageNum++
14427//            fmt.Println(page)
14428//            return pageNum <= 3
14429//        })
14430//
14431func (c *IoT) ListMitigationActionsPages(input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool) error {
14432	return c.ListMitigationActionsPagesWithContext(aws.BackgroundContext(), input, fn)
14433}
14434
14435// ListMitigationActionsPagesWithContext same as ListMitigationActionsPages except
14436// it takes a Context and allows setting request options on the pages.
14437//
14438// The context must be non-nil and will be used for request cancellation. If
14439// the context is nil a panic will occur. In the future the SDK may create
14440// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14441// for more information on using Contexts.
14442func (c *IoT) ListMitigationActionsPagesWithContext(ctx aws.Context, input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool, opts ...request.Option) error {
14443	p := request.Pagination{
14444		NewRequest: func() (*request.Request, error) {
14445			var inCpy *ListMitigationActionsInput
14446			if input != nil {
14447				tmp := *input
14448				inCpy = &tmp
14449			}
14450			req, _ := c.ListMitigationActionsRequest(inCpy)
14451			req.SetContext(ctx)
14452			req.ApplyOptions(opts...)
14453			return req, nil
14454		},
14455	}
14456
14457	for p.Next() {
14458		if !fn(p.Page().(*ListMitigationActionsOutput), !p.HasNextPage()) {
14459			break
14460		}
14461	}
14462
14463	return p.Err()
14464}
14465
14466const opListOTAUpdates = "ListOTAUpdates"
14467
14468// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
14469// client's request for the ListOTAUpdates operation. The "output" return
14470// value will be populated with the request's response once the request completes
14471// successfully.
14472//
14473// Use "Send" method on the returned Request to send the API call to the service.
14474// the "output" return value is not valid until after Send returns without error.
14475//
14476// See ListOTAUpdates for more information on using the ListOTAUpdates
14477// API call, and error handling.
14478//
14479// This method is useful when you want to inject custom logic or configuration
14480// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14481//
14482//
14483//    // Example sending a request using the ListOTAUpdatesRequest method.
14484//    req, resp := client.ListOTAUpdatesRequest(params)
14485//
14486//    err := req.Send()
14487//    if err == nil { // resp is now filled
14488//        fmt.Println(resp)
14489//    }
14490func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
14491	op := &request.Operation{
14492		Name:       opListOTAUpdates,
14493		HTTPMethod: "GET",
14494		HTTPPath:   "/otaUpdates",
14495		Paginator: &request.Paginator{
14496			InputTokens:     []string{"nextToken"},
14497			OutputTokens:    []string{"nextToken"},
14498			LimitToken:      "maxResults",
14499			TruncationToken: "",
14500		},
14501	}
14502
14503	if input == nil {
14504		input = &ListOTAUpdatesInput{}
14505	}
14506
14507	output = &ListOTAUpdatesOutput{}
14508	req = c.newRequest(op, input, output)
14509	return
14510}
14511
14512// ListOTAUpdates API operation for AWS IoT.
14513//
14514// Lists OTA updates.
14515//
14516// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14517// with awserr.Error's Code and Message methods to get detailed information about
14518// the error.
14519//
14520// See the AWS API reference guide for AWS IoT's
14521// API operation ListOTAUpdates for usage and error information.
14522//
14523// Returned Error Types:
14524//   * InvalidRequestException
14525//   The request is not valid.
14526//
14527//   * ThrottlingException
14528//   The rate exceeds the limit.
14529//
14530//   * UnauthorizedException
14531//   You are not authorized to perform this operation.
14532//
14533//   * InternalFailureException
14534//   An unexpected error has occurred.
14535//
14536//   * ServiceUnavailableException
14537//   The service is temporarily unavailable.
14538//
14539func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
14540	req, out := c.ListOTAUpdatesRequest(input)
14541	return out, req.Send()
14542}
14543
14544// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
14545// the ability to pass a context and additional request options.
14546//
14547// See ListOTAUpdates for details on how to use this API operation.
14548//
14549// The context must be non-nil and will be used for request cancellation. If
14550// the context is nil a panic will occur. In the future the SDK may create
14551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14552// for more information on using Contexts.
14553func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
14554	req, out := c.ListOTAUpdatesRequest(input)
14555	req.SetContext(ctx)
14556	req.ApplyOptions(opts...)
14557	return out, req.Send()
14558}
14559
14560// ListOTAUpdatesPages iterates over the pages of a ListOTAUpdates operation,
14561// calling the "fn" function with the response data for each page. To stop
14562// iterating, return false from the fn function.
14563//
14564// See ListOTAUpdates method for more information on how to use this operation.
14565//
14566// Note: This operation can generate multiple requests to a service.
14567//
14568//    // Example iterating over at most 3 pages of a ListOTAUpdates operation.
14569//    pageNum := 0
14570//    err := client.ListOTAUpdatesPages(params,
14571//        func(page *iot.ListOTAUpdatesOutput, lastPage bool) bool {
14572//            pageNum++
14573//            fmt.Println(page)
14574//            return pageNum <= 3
14575//        })
14576//
14577func (c *IoT) ListOTAUpdatesPages(input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool) error {
14578	return c.ListOTAUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
14579}
14580
14581// ListOTAUpdatesPagesWithContext same as ListOTAUpdatesPages except
14582// it takes a Context and allows setting request options on the pages.
14583//
14584// The context must be non-nil and will be used for request cancellation. If
14585// the context is nil a panic will occur. In the future the SDK may create
14586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14587// for more information on using Contexts.
14588func (c *IoT) ListOTAUpdatesPagesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool, opts ...request.Option) error {
14589	p := request.Pagination{
14590		NewRequest: func() (*request.Request, error) {
14591			var inCpy *ListOTAUpdatesInput
14592			if input != nil {
14593				tmp := *input
14594				inCpy = &tmp
14595			}
14596			req, _ := c.ListOTAUpdatesRequest(inCpy)
14597			req.SetContext(ctx)
14598			req.ApplyOptions(opts...)
14599			return req, nil
14600		},
14601	}
14602
14603	for p.Next() {
14604		if !fn(p.Page().(*ListOTAUpdatesOutput), !p.HasNextPage()) {
14605			break
14606		}
14607	}
14608
14609	return p.Err()
14610}
14611
14612const opListOutgoingCertificates = "ListOutgoingCertificates"
14613
14614// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
14615// client's request for the ListOutgoingCertificates operation. The "output" return
14616// value will be populated with the request's response once the request completes
14617// successfully.
14618//
14619// Use "Send" method on the returned Request to send the API call to the service.
14620// the "output" return value is not valid until after Send returns without error.
14621//
14622// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
14623// API call, and error handling.
14624//
14625// This method is useful when you want to inject custom logic or configuration
14626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14627//
14628//
14629//    // Example sending a request using the ListOutgoingCertificatesRequest method.
14630//    req, resp := client.ListOutgoingCertificatesRequest(params)
14631//
14632//    err := req.Send()
14633//    if err == nil { // resp is now filled
14634//        fmt.Println(resp)
14635//    }
14636func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
14637	op := &request.Operation{
14638		Name:       opListOutgoingCertificates,
14639		HTTPMethod: "GET",
14640		HTTPPath:   "/certificates-out-going",
14641		Paginator: &request.Paginator{
14642			InputTokens:     []string{"marker"},
14643			OutputTokens:    []string{"nextMarker"},
14644			LimitToken:      "pageSize",
14645			TruncationToken: "",
14646		},
14647	}
14648
14649	if input == nil {
14650		input = &ListOutgoingCertificatesInput{}
14651	}
14652
14653	output = &ListOutgoingCertificatesOutput{}
14654	req = c.newRequest(op, input, output)
14655	return
14656}
14657
14658// ListOutgoingCertificates API operation for AWS IoT.
14659//
14660// Lists certificates that are being transferred but not yet accepted.
14661//
14662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14663// with awserr.Error's Code and Message methods to get detailed information about
14664// the error.
14665//
14666// See the AWS API reference guide for AWS IoT's
14667// API operation ListOutgoingCertificates for usage and error information.
14668//
14669// Returned Error Types:
14670//   * InvalidRequestException
14671//   The request is not valid.
14672//
14673//   * ThrottlingException
14674//   The rate exceeds the limit.
14675//
14676//   * UnauthorizedException
14677//   You are not authorized to perform this operation.
14678//
14679//   * ServiceUnavailableException
14680//   The service is temporarily unavailable.
14681//
14682//   * InternalFailureException
14683//   An unexpected error has occurred.
14684//
14685func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
14686	req, out := c.ListOutgoingCertificatesRequest(input)
14687	return out, req.Send()
14688}
14689
14690// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
14691// the ability to pass a context and additional request options.
14692//
14693// See ListOutgoingCertificates for details on how to use this API operation.
14694//
14695// The context must be non-nil and will be used for request cancellation. If
14696// the context is nil a panic will occur. In the future the SDK may create
14697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14698// for more information on using Contexts.
14699func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
14700	req, out := c.ListOutgoingCertificatesRequest(input)
14701	req.SetContext(ctx)
14702	req.ApplyOptions(opts...)
14703	return out, req.Send()
14704}
14705
14706// ListOutgoingCertificatesPages iterates over the pages of a ListOutgoingCertificates operation,
14707// calling the "fn" function with the response data for each page. To stop
14708// iterating, return false from the fn function.
14709//
14710// See ListOutgoingCertificates method for more information on how to use this operation.
14711//
14712// Note: This operation can generate multiple requests to a service.
14713//
14714//    // Example iterating over at most 3 pages of a ListOutgoingCertificates operation.
14715//    pageNum := 0
14716//    err := client.ListOutgoingCertificatesPages(params,
14717//        func(page *iot.ListOutgoingCertificatesOutput, lastPage bool) bool {
14718//            pageNum++
14719//            fmt.Println(page)
14720//            return pageNum <= 3
14721//        })
14722//
14723func (c *IoT) ListOutgoingCertificatesPages(input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool) error {
14724	return c.ListOutgoingCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
14725}
14726
14727// ListOutgoingCertificatesPagesWithContext same as ListOutgoingCertificatesPages except
14728// it takes a Context and allows setting request options on the pages.
14729//
14730// The context must be non-nil and will be used for request cancellation. If
14731// the context is nil a panic will occur. In the future the SDK may create
14732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14733// for more information on using Contexts.
14734func (c *IoT) ListOutgoingCertificatesPagesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool, opts ...request.Option) error {
14735	p := request.Pagination{
14736		NewRequest: func() (*request.Request, error) {
14737			var inCpy *ListOutgoingCertificatesInput
14738			if input != nil {
14739				tmp := *input
14740				inCpy = &tmp
14741			}
14742			req, _ := c.ListOutgoingCertificatesRequest(inCpy)
14743			req.SetContext(ctx)
14744			req.ApplyOptions(opts...)
14745			return req, nil
14746		},
14747	}
14748
14749	for p.Next() {
14750		if !fn(p.Page().(*ListOutgoingCertificatesOutput), !p.HasNextPage()) {
14751			break
14752		}
14753	}
14754
14755	return p.Err()
14756}
14757
14758const opListPolicies = "ListPolicies"
14759
14760// ListPoliciesRequest generates a "aws/request.Request" representing the
14761// client's request for the ListPolicies operation. The "output" return
14762// value will be populated with the request's response once the request completes
14763// successfully.
14764//
14765// Use "Send" method on the returned Request to send the API call to the service.
14766// the "output" return value is not valid until after Send returns without error.
14767//
14768// See ListPolicies for more information on using the ListPolicies
14769// API call, and error handling.
14770//
14771// This method is useful when you want to inject custom logic or configuration
14772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14773//
14774//
14775//    // Example sending a request using the ListPoliciesRequest method.
14776//    req, resp := client.ListPoliciesRequest(params)
14777//
14778//    err := req.Send()
14779//    if err == nil { // resp is now filled
14780//        fmt.Println(resp)
14781//    }
14782func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
14783	op := &request.Operation{
14784		Name:       opListPolicies,
14785		HTTPMethod: "GET",
14786		HTTPPath:   "/policies",
14787		Paginator: &request.Paginator{
14788			InputTokens:     []string{"marker"},
14789			OutputTokens:    []string{"nextMarker"},
14790			LimitToken:      "pageSize",
14791			TruncationToken: "",
14792		},
14793	}
14794
14795	if input == nil {
14796		input = &ListPoliciesInput{}
14797	}
14798
14799	output = &ListPoliciesOutput{}
14800	req = c.newRequest(op, input, output)
14801	return
14802}
14803
14804// ListPolicies API operation for AWS IoT.
14805//
14806// Lists your policies.
14807//
14808// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14809// with awserr.Error's Code and Message methods to get detailed information about
14810// the error.
14811//
14812// See the AWS API reference guide for AWS IoT's
14813// API operation ListPolicies for usage and error information.
14814//
14815// Returned Error Types:
14816//   * InvalidRequestException
14817//   The request is not valid.
14818//
14819//   * ThrottlingException
14820//   The rate exceeds the limit.
14821//
14822//   * UnauthorizedException
14823//   You are not authorized to perform this operation.
14824//
14825//   * ServiceUnavailableException
14826//   The service is temporarily unavailable.
14827//
14828//   * InternalFailureException
14829//   An unexpected error has occurred.
14830//
14831func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
14832	req, out := c.ListPoliciesRequest(input)
14833	return out, req.Send()
14834}
14835
14836// ListPoliciesWithContext is the same as ListPolicies with the addition of
14837// the ability to pass a context and additional request options.
14838//
14839// See ListPolicies for details on how to use this API operation.
14840//
14841// The context must be non-nil and will be used for request cancellation. If
14842// the context is nil a panic will occur. In the future the SDK may create
14843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14844// for more information on using Contexts.
14845func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
14846	req, out := c.ListPoliciesRequest(input)
14847	req.SetContext(ctx)
14848	req.ApplyOptions(opts...)
14849	return out, req.Send()
14850}
14851
14852// ListPoliciesPages iterates over the pages of a ListPolicies operation,
14853// calling the "fn" function with the response data for each page. To stop
14854// iterating, return false from the fn function.
14855//
14856// See ListPolicies method for more information on how to use this operation.
14857//
14858// Note: This operation can generate multiple requests to a service.
14859//
14860//    // Example iterating over at most 3 pages of a ListPolicies operation.
14861//    pageNum := 0
14862//    err := client.ListPoliciesPages(params,
14863//        func(page *iot.ListPoliciesOutput, lastPage bool) bool {
14864//            pageNum++
14865//            fmt.Println(page)
14866//            return pageNum <= 3
14867//        })
14868//
14869func (c *IoT) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
14870	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
14871}
14872
14873// ListPoliciesPagesWithContext same as ListPoliciesPages except
14874// it takes a Context and allows setting request options on the pages.
14875//
14876// The context must be non-nil and will be used for request cancellation. If
14877// the context is nil a panic will occur. In the future the SDK may create
14878// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14879// for more information on using Contexts.
14880func (c *IoT) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
14881	p := request.Pagination{
14882		NewRequest: func() (*request.Request, error) {
14883			var inCpy *ListPoliciesInput
14884			if input != nil {
14885				tmp := *input
14886				inCpy = &tmp
14887			}
14888			req, _ := c.ListPoliciesRequest(inCpy)
14889			req.SetContext(ctx)
14890			req.ApplyOptions(opts...)
14891			return req, nil
14892		},
14893	}
14894
14895	for p.Next() {
14896		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
14897			break
14898		}
14899	}
14900
14901	return p.Err()
14902}
14903
14904const opListPolicyPrincipals = "ListPolicyPrincipals"
14905
14906// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
14907// client's request for the ListPolicyPrincipals operation. The "output" return
14908// value will be populated with the request's response once the request completes
14909// successfully.
14910//
14911// Use "Send" method on the returned Request to send the API call to the service.
14912// the "output" return value is not valid until after Send returns without error.
14913//
14914// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
14915// API call, and error handling.
14916//
14917// This method is useful when you want to inject custom logic or configuration
14918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14919//
14920//
14921//    // Example sending a request using the ListPolicyPrincipalsRequest method.
14922//    req, resp := client.ListPolicyPrincipalsRequest(params)
14923//
14924//    err := req.Send()
14925//    if err == nil { // resp is now filled
14926//        fmt.Println(resp)
14927//    }
14928//
14929// Deprecated: ListPolicyPrincipals has been deprecated
14930func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
14931	if c.Client.Config.Logger != nil {
14932		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
14933	}
14934	op := &request.Operation{
14935		Name:       opListPolicyPrincipals,
14936		HTTPMethod: "GET",
14937		HTTPPath:   "/policy-principals",
14938		Paginator: &request.Paginator{
14939			InputTokens:     []string{"marker"},
14940			OutputTokens:    []string{"nextMarker"},
14941			LimitToken:      "pageSize",
14942			TruncationToken: "",
14943		},
14944	}
14945
14946	if input == nil {
14947		input = &ListPolicyPrincipalsInput{}
14948	}
14949
14950	output = &ListPolicyPrincipalsOutput{}
14951	req = c.newRequest(op, input, output)
14952	return
14953}
14954
14955// ListPolicyPrincipals API operation for AWS IoT.
14956//
14957// Lists the principals associated with the specified policy.
14958//
14959// Note: This API is deprecated. Please use ListTargetsForPolicy instead.
14960//
14961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14962// with awserr.Error's Code and Message methods to get detailed information about
14963// the error.
14964//
14965// See the AWS API reference guide for AWS IoT's
14966// API operation ListPolicyPrincipals for usage and error information.
14967//
14968// Returned Error Types:
14969//   * ResourceNotFoundException
14970//   The specified resource does not exist.
14971//
14972//   * InvalidRequestException
14973//   The request is not valid.
14974//
14975//   * ThrottlingException
14976//   The rate exceeds the limit.
14977//
14978//   * UnauthorizedException
14979//   You are not authorized to perform this operation.
14980//
14981//   * ServiceUnavailableException
14982//   The service is temporarily unavailable.
14983//
14984//   * InternalFailureException
14985//   An unexpected error has occurred.
14986//
14987//
14988// Deprecated: ListPolicyPrincipals has been deprecated
14989func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
14990	req, out := c.ListPolicyPrincipalsRequest(input)
14991	return out, req.Send()
14992}
14993
14994// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
14995// the ability to pass a context and additional request options.
14996//
14997// See ListPolicyPrincipals for details on how to use this API operation.
14998//
14999// The context must be non-nil and will be used for request cancellation. If
15000// the context is nil a panic will occur. In the future the SDK may create
15001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15002// for more information on using Contexts.
15003//
15004// Deprecated: ListPolicyPrincipalsWithContext has been deprecated
15005func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
15006	req, out := c.ListPolicyPrincipalsRequest(input)
15007	req.SetContext(ctx)
15008	req.ApplyOptions(opts...)
15009	return out, req.Send()
15010}
15011
15012// ListPolicyPrincipalsPages iterates over the pages of a ListPolicyPrincipals operation,
15013// calling the "fn" function with the response data for each page. To stop
15014// iterating, return false from the fn function.
15015//
15016// See ListPolicyPrincipals method for more information on how to use this operation.
15017//
15018// Note: This operation can generate multiple requests to a service.
15019//
15020//    // Example iterating over at most 3 pages of a ListPolicyPrincipals operation.
15021//    pageNum := 0
15022//    err := client.ListPolicyPrincipalsPages(params,
15023//        func(page *iot.ListPolicyPrincipalsOutput, lastPage bool) bool {
15024//            pageNum++
15025//            fmt.Println(page)
15026//            return pageNum <= 3
15027//        })
15028//
15029//
15030// Deprecated: ListPolicyPrincipalsPages has been deprecated
15031func (c *IoT) ListPolicyPrincipalsPages(input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool) error {
15032	return c.ListPolicyPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
15033}
15034
15035// ListPolicyPrincipalsPagesWithContext same as ListPolicyPrincipalsPages except
15036// it takes a Context and allows setting request options on the pages.
15037//
15038// The context must be non-nil and will be used for request cancellation. If
15039// the context is nil a panic will occur. In the future the SDK may create
15040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15041// for more information on using Contexts.
15042//
15043// Deprecated: ListPolicyPrincipalsPagesWithContext has been deprecated
15044func (c *IoT) ListPolicyPrincipalsPagesWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool, opts ...request.Option) error {
15045	p := request.Pagination{
15046		NewRequest: func() (*request.Request, error) {
15047			var inCpy *ListPolicyPrincipalsInput
15048			if input != nil {
15049				tmp := *input
15050				inCpy = &tmp
15051			}
15052			req, _ := c.ListPolicyPrincipalsRequest(inCpy)
15053			req.SetContext(ctx)
15054			req.ApplyOptions(opts...)
15055			return req, nil
15056		},
15057	}
15058
15059	for p.Next() {
15060		if !fn(p.Page().(*ListPolicyPrincipalsOutput), !p.HasNextPage()) {
15061			break
15062		}
15063	}
15064
15065	return p.Err()
15066}
15067
15068const opListPolicyVersions = "ListPolicyVersions"
15069
15070// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
15071// client's request for the ListPolicyVersions operation. The "output" return
15072// value will be populated with the request's response once the request completes
15073// successfully.
15074//
15075// Use "Send" method on the returned Request to send the API call to the service.
15076// the "output" return value is not valid until after Send returns without error.
15077//
15078// See ListPolicyVersions for more information on using the ListPolicyVersions
15079// API call, and error handling.
15080//
15081// This method is useful when you want to inject custom logic or configuration
15082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15083//
15084//
15085//    // Example sending a request using the ListPolicyVersionsRequest method.
15086//    req, resp := client.ListPolicyVersionsRequest(params)
15087//
15088//    err := req.Send()
15089//    if err == nil { // resp is now filled
15090//        fmt.Println(resp)
15091//    }
15092func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
15093	op := &request.Operation{
15094		Name:       opListPolicyVersions,
15095		HTTPMethod: "GET",
15096		HTTPPath:   "/policies/{policyName}/version",
15097	}
15098
15099	if input == nil {
15100		input = &ListPolicyVersionsInput{}
15101	}
15102
15103	output = &ListPolicyVersionsOutput{}
15104	req = c.newRequest(op, input, output)
15105	return
15106}
15107
15108// ListPolicyVersions API operation for AWS IoT.
15109//
15110// Lists the versions of the specified policy and identifies the default version.
15111//
15112// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15113// with awserr.Error's Code and Message methods to get detailed information about
15114// the error.
15115//
15116// See the AWS API reference guide for AWS IoT's
15117// API operation ListPolicyVersions for usage and error information.
15118//
15119// Returned Error Types:
15120//   * ResourceNotFoundException
15121//   The specified resource does not exist.
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) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
15139	req, out := c.ListPolicyVersionsRequest(input)
15140	return out, req.Send()
15141}
15142
15143// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
15144// the ability to pass a context and additional request options.
15145//
15146// See ListPolicyVersions 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) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
15153	req, out := c.ListPolicyVersionsRequest(input)
15154	req.SetContext(ctx)
15155	req.ApplyOptions(opts...)
15156	return out, req.Send()
15157}
15158
15159const opListPrincipalPolicies = "ListPrincipalPolicies"
15160
15161// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
15162// client's request for the ListPrincipalPolicies 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 ListPrincipalPolicies for more information on using the ListPrincipalPolicies
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 ListPrincipalPoliciesRequest method.
15177//    req, resp := client.ListPrincipalPoliciesRequest(params)
15178//
15179//    err := req.Send()
15180//    if err == nil { // resp is now filled
15181//        fmt.Println(resp)
15182//    }
15183//
15184// Deprecated: ListPrincipalPolicies has been deprecated
15185func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
15186	if c.Client.Config.Logger != nil {
15187		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
15188	}
15189	op := &request.Operation{
15190		Name:       opListPrincipalPolicies,
15191		HTTPMethod: "GET",
15192		HTTPPath:   "/principal-policies",
15193		Paginator: &request.Paginator{
15194			InputTokens:     []string{"marker"},
15195			OutputTokens:    []string{"nextMarker"},
15196			LimitToken:      "pageSize",
15197			TruncationToken: "",
15198		},
15199	}
15200
15201	if input == nil {
15202		input = &ListPrincipalPoliciesInput{}
15203	}
15204
15205	output = &ListPrincipalPoliciesOutput{}
15206	req = c.newRequest(op, input, output)
15207	return
15208}
15209
15210// ListPrincipalPolicies API operation for AWS IoT.
15211//
15212// Lists the policies attached to the specified principal. If you use an Cognito
15213// identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
15214//
15215// Note: This API is deprecated. Please use ListAttachedPolicies instead.
15216//
15217// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15218// with awserr.Error's Code and Message methods to get detailed information about
15219// the error.
15220//
15221// See the AWS API reference guide for AWS IoT's
15222// API operation ListPrincipalPolicies for usage and error information.
15223//
15224// Returned Error Types:
15225//   * ResourceNotFoundException
15226//   The specified resource does not exist.
15227//
15228//   * InvalidRequestException
15229//   The request is not valid.
15230//
15231//   * ThrottlingException
15232//   The rate exceeds the limit.
15233//
15234//   * UnauthorizedException
15235//   You are not authorized to perform this operation.
15236//
15237//   * ServiceUnavailableException
15238//   The service is temporarily unavailable.
15239//
15240//   * InternalFailureException
15241//   An unexpected error has occurred.
15242//
15243//
15244// Deprecated: ListPrincipalPolicies has been deprecated
15245func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
15246	req, out := c.ListPrincipalPoliciesRequest(input)
15247	return out, req.Send()
15248}
15249
15250// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
15251// the ability to pass a context and additional request options.
15252//
15253// See ListPrincipalPolicies for details on how to use this API operation.
15254//
15255// The context must be non-nil and will be used for request cancellation. If
15256// the context is nil a panic will occur. In the future the SDK may create
15257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15258// for more information on using Contexts.
15259//
15260// Deprecated: ListPrincipalPoliciesWithContext has been deprecated
15261func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
15262	req, out := c.ListPrincipalPoliciesRequest(input)
15263	req.SetContext(ctx)
15264	req.ApplyOptions(opts...)
15265	return out, req.Send()
15266}
15267
15268// ListPrincipalPoliciesPages iterates over the pages of a ListPrincipalPolicies operation,
15269// calling the "fn" function with the response data for each page. To stop
15270// iterating, return false from the fn function.
15271//
15272// See ListPrincipalPolicies method for more information on how to use this operation.
15273//
15274// Note: This operation can generate multiple requests to a service.
15275//
15276//    // Example iterating over at most 3 pages of a ListPrincipalPolicies operation.
15277//    pageNum := 0
15278//    err := client.ListPrincipalPoliciesPages(params,
15279//        func(page *iot.ListPrincipalPoliciesOutput, lastPage bool) bool {
15280//            pageNum++
15281//            fmt.Println(page)
15282//            return pageNum <= 3
15283//        })
15284//
15285//
15286// Deprecated: ListPrincipalPoliciesPages has been deprecated
15287func (c *IoT) ListPrincipalPoliciesPages(input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool) error {
15288	return c.ListPrincipalPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
15289}
15290
15291// ListPrincipalPoliciesPagesWithContext same as ListPrincipalPoliciesPages except
15292// it takes a Context and allows setting request options on the pages.
15293//
15294// The context must be non-nil and will be used for request cancellation. If
15295// the context is nil a panic will occur. In the future the SDK may create
15296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15297// for more information on using Contexts.
15298//
15299// Deprecated: ListPrincipalPoliciesPagesWithContext has been deprecated
15300func (c *IoT) ListPrincipalPoliciesPagesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool, opts ...request.Option) error {
15301	p := request.Pagination{
15302		NewRequest: func() (*request.Request, error) {
15303			var inCpy *ListPrincipalPoliciesInput
15304			if input != nil {
15305				tmp := *input
15306				inCpy = &tmp
15307			}
15308			req, _ := c.ListPrincipalPoliciesRequest(inCpy)
15309			req.SetContext(ctx)
15310			req.ApplyOptions(opts...)
15311			return req, nil
15312		},
15313	}
15314
15315	for p.Next() {
15316		if !fn(p.Page().(*ListPrincipalPoliciesOutput), !p.HasNextPage()) {
15317			break
15318		}
15319	}
15320
15321	return p.Err()
15322}
15323
15324const opListPrincipalThings = "ListPrincipalThings"
15325
15326// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
15327// client's request for the ListPrincipalThings operation. The "output" return
15328// value will be populated with the request's response once the request completes
15329// successfully.
15330//
15331// Use "Send" method on the returned Request to send the API call to the service.
15332// the "output" return value is not valid until after Send returns without error.
15333//
15334// See ListPrincipalThings for more information on using the ListPrincipalThings
15335// API call, and error handling.
15336//
15337// This method is useful when you want to inject custom logic or configuration
15338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15339//
15340//
15341//    // Example sending a request using the ListPrincipalThingsRequest method.
15342//    req, resp := client.ListPrincipalThingsRequest(params)
15343//
15344//    err := req.Send()
15345//    if err == nil { // resp is now filled
15346//        fmt.Println(resp)
15347//    }
15348func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
15349	op := &request.Operation{
15350		Name:       opListPrincipalThings,
15351		HTTPMethod: "GET",
15352		HTTPPath:   "/principals/things",
15353		Paginator: &request.Paginator{
15354			InputTokens:     []string{"nextToken"},
15355			OutputTokens:    []string{"nextToken"},
15356			LimitToken:      "maxResults",
15357			TruncationToken: "",
15358		},
15359	}
15360
15361	if input == nil {
15362		input = &ListPrincipalThingsInput{}
15363	}
15364
15365	output = &ListPrincipalThingsOutput{}
15366	req = c.newRequest(op, input, output)
15367	return
15368}
15369
15370// ListPrincipalThings API operation for AWS IoT.
15371//
15372// Lists the things associated with the specified principal. A principal can
15373// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
15374// or federated identities.
15375//
15376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15377// with awserr.Error's Code and Message methods to get detailed information about
15378// the error.
15379//
15380// See the AWS API reference guide for AWS IoT's
15381// API operation ListPrincipalThings for usage and error information.
15382//
15383// Returned Error Types:
15384//   * InvalidRequestException
15385//   The request is not valid.
15386//
15387//   * ThrottlingException
15388//   The rate exceeds the limit.
15389//
15390//   * UnauthorizedException
15391//   You are not authorized to perform this operation.
15392//
15393//   * ServiceUnavailableException
15394//   The service is temporarily unavailable.
15395//
15396//   * InternalFailureException
15397//   An unexpected error has occurred.
15398//
15399//   * ResourceNotFoundException
15400//   The specified resource does not exist.
15401//
15402func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
15403	req, out := c.ListPrincipalThingsRequest(input)
15404	return out, req.Send()
15405}
15406
15407// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
15408// the ability to pass a context and additional request options.
15409//
15410// See ListPrincipalThings for details on how to use this API operation.
15411//
15412// The context must be non-nil and will be used for request cancellation. If
15413// the context is nil a panic will occur. In the future the SDK may create
15414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15415// for more information on using Contexts.
15416func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
15417	req, out := c.ListPrincipalThingsRequest(input)
15418	req.SetContext(ctx)
15419	req.ApplyOptions(opts...)
15420	return out, req.Send()
15421}
15422
15423// ListPrincipalThingsPages iterates over the pages of a ListPrincipalThings operation,
15424// calling the "fn" function with the response data for each page. To stop
15425// iterating, return false from the fn function.
15426//
15427// See ListPrincipalThings method for more information on how to use this operation.
15428//
15429// Note: This operation can generate multiple requests to a service.
15430//
15431//    // Example iterating over at most 3 pages of a ListPrincipalThings operation.
15432//    pageNum := 0
15433//    err := client.ListPrincipalThingsPages(params,
15434//        func(page *iot.ListPrincipalThingsOutput, lastPage bool) bool {
15435//            pageNum++
15436//            fmt.Println(page)
15437//            return pageNum <= 3
15438//        })
15439//
15440func (c *IoT) ListPrincipalThingsPages(input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool) error {
15441	return c.ListPrincipalThingsPagesWithContext(aws.BackgroundContext(), input, fn)
15442}
15443
15444// ListPrincipalThingsPagesWithContext same as ListPrincipalThingsPages except
15445// it takes a Context and allows setting request options on the pages.
15446//
15447// The context must be non-nil and will be used for request cancellation. If
15448// the context is nil a panic will occur. In the future the SDK may create
15449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15450// for more information on using Contexts.
15451func (c *IoT) ListPrincipalThingsPagesWithContext(ctx aws.Context, input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool, opts ...request.Option) error {
15452	p := request.Pagination{
15453		NewRequest: func() (*request.Request, error) {
15454			var inCpy *ListPrincipalThingsInput
15455			if input != nil {
15456				tmp := *input
15457				inCpy = &tmp
15458			}
15459			req, _ := c.ListPrincipalThingsRequest(inCpy)
15460			req.SetContext(ctx)
15461			req.ApplyOptions(opts...)
15462			return req, nil
15463		},
15464	}
15465
15466	for p.Next() {
15467		if !fn(p.Page().(*ListPrincipalThingsOutput), !p.HasNextPage()) {
15468			break
15469		}
15470	}
15471
15472	return p.Err()
15473}
15474
15475const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
15476
15477// ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
15478// client's request for the ListProvisioningTemplateVersions operation. The "output" return
15479// value will be populated with the request's response once the request completes
15480// successfully.
15481//
15482// Use "Send" method on the returned Request to send the API call to the service.
15483// the "output" return value is not valid until after Send returns without error.
15484//
15485// See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
15486// API call, and error handling.
15487//
15488// This method is useful when you want to inject custom logic or configuration
15489// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15490//
15491//
15492//    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
15493//    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
15494//
15495//    err := req.Send()
15496//    if err == nil { // resp is now filled
15497//        fmt.Println(resp)
15498//    }
15499func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
15500	op := &request.Operation{
15501		Name:       opListProvisioningTemplateVersions,
15502		HTTPMethod: "GET",
15503		HTTPPath:   "/provisioning-templates/{templateName}/versions",
15504		Paginator: &request.Paginator{
15505			InputTokens:     []string{"nextToken"},
15506			OutputTokens:    []string{"nextToken"},
15507			LimitToken:      "maxResults",
15508			TruncationToken: "",
15509		},
15510	}
15511
15512	if input == nil {
15513		input = &ListProvisioningTemplateVersionsInput{}
15514	}
15515
15516	output = &ListProvisioningTemplateVersionsOutput{}
15517	req = c.newRequest(op, input, output)
15518	return
15519}
15520
15521// ListProvisioningTemplateVersions API operation for AWS IoT.
15522//
15523// A list of fleet provisioning template versions.
15524//
15525// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15526// with awserr.Error's Code and Message methods to get detailed information about
15527// the error.
15528//
15529// See the AWS API reference guide for AWS IoT's
15530// API operation ListProvisioningTemplateVersions for usage and error information.
15531//
15532// Returned Error Types:
15533//   * InternalFailureException
15534//   An unexpected error has occurred.
15535//
15536//   * InvalidRequestException
15537//   The request is not valid.
15538//
15539//   * ThrottlingException
15540//   The rate exceeds the limit.
15541//
15542//   * ResourceNotFoundException
15543//   The specified resource does not exist.
15544//
15545//   * UnauthorizedException
15546//   You are not authorized to perform this operation.
15547//
15548func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
15549	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15550	return out, req.Send()
15551}
15552
15553// ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
15554// the ability to pass a context and additional request options.
15555//
15556// See ListProvisioningTemplateVersions for details on how to use this API operation.
15557//
15558// The context must be non-nil and will be used for request cancellation. If
15559// the context is nil a panic will occur. In the future the SDK may create
15560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15561// for more information on using Contexts.
15562func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
15563	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15564	req.SetContext(ctx)
15565	req.ApplyOptions(opts...)
15566	return out, req.Send()
15567}
15568
15569// ListProvisioningTemplateVersionsPages iterates over the pages of a ListProvisioningTemplateVersions operation,
15570// calling the "fn" function with the response data for each page. To stop
15571// iterating, return false from the fn function.
15572//
15573// See ListProvisioningTemplateVersions method for more information on how to use this operation.
15574//
15575// Note: This operation can generate multiple requests to a service.
15576//
15577//    // Example iterating over at most 3 pages of a ListProvisioningTemplateVersions operation.
15578//    pageNum := 0
15579//    err := client.ListProvisioningTemplateVersionsPages(params,
15580//        func(page *iot.ListProvisioningTemplateVersionsOutput, lastPage bool) bool {
15581//            pageNum++
15582//            fmt.Println(page)
15583//            return pageNum <= 3
15584//        })
15585//
15586func (c *IoT) ListProvisioningTemplateVersionsPages(input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool) error {
15587	return c.ListProvisioningTemplateVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
15588}
15589
15590// ListProvisioningTemplateVersionsPagesWithContext same as ListProvisioningTemplateVersionsPages except
15591// it takes a Context and allows setting request options on the pages.
15592//
15593// The context must be non-nil and will be used for request cancellation. If
15594// the context is nil a panic will occur. In the future the SDK may create
15595// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15596// for more information on using Contexts.
15597func (c *IoT) ListProvisioningTemplateVersionsPagesWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool, opts ...request.Option) error {
15598	p := request.Pagination{
15599		NewRequest: func() (*request.Request, error) {
15600			var inCpy *ListProvisioningTemplateVersionsInput
15601			if input != nil {
15602				tmp := *input
15603				inCpy = &tmp
15604			}
15605			req, _ := c.ListProvisioningTemplateVersionsRequest(inCpy)
15606			req.SetContext(ctx)
15607			req.ApplyOptions(opts...)
15608			return req, nil
15609		},
15610	}
15611
15612	for p.Next() {
15613		if !fn(p.Page().(*ListProvisioningTemplateVersionsOutput), !p.HasNextPage()) {
15614			break
15615		}
15616	}
15617
15618	return p.Err()
15619}
15620
15621const opListProvisioningTemplates = "ListProvisioningTemplates"
15622
15623// ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
15624// client's request for the ListProvisioningTemplates operation. The "output" return
15625// value will be populated with the request's response once the request completes
15626// successfully.
15627//
15628// Use "Send" method on the returned Request to send the API call to the service.
15629// the "output" return value is not valid until after Send returns without error.
15630//
15631// See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
15632// API call, and error handling.
15633//
15634// This method is useful when you want to inject custom logic or configuration
15635// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15636//
15637//
15638//    // Example sending a request using the ListProvisioningTemplatesRequest method.
15639//    req, resp := client.ListProvisioningTemplatesRequest(params)
15640//
15641//    err := req.Send()
15642//    if err == nil { // resp is now filled
15643//        fmt.Println(resp)
15644//    }
15645func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
15646	op := &request.Operation{
15647		Name:       opListProvisioningTemplates,
15648		HTTPMethod: "GET",
15649		HTTPPath:   "/provisioning-templates",
15650		Paginator: &request.Paginator{
15651			InputTokens:     []string{"nextToken"},
15652			OutputTokens:    []string{"nextToken"},
15653			LimitToken:      "maxResults",
15654			TruncationToken: "",
15655		},
15656	}
15657
15658	if input == nil {
15659		input = &ListProvisioningTemplatesInput{}
15660	}
15661
15662	output = &ListProvisioningTemplatesOutput{}
15663	req = c.newRequest(op, input, output)
15664	return
15665}
15666
15667// ListProvisioningTemplates API operation for AWS IoT.
15668//
15669// Lists the fleet provisioning templates in your AWS account.
15670//
15671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15672// with awserr.Error's Code and Message methods to get detailed information about
15673// the error.
15674//
15675// See the AWS API reference guide for AWS IoT's
15676// API operation ListProvisioningTemplates for usage and error information.
15677//
15678// Returned Error Types:
15679//   * InternalFailureException
15680//   An unexpected error has occurred.
15681//
15682//   * InvalidRequestException
15683//   The request is not valid.
15684//
15685//   * ThrottlingException
15686//   The rate exceeds the limit.
15687//
15688//   * UnauthorizedException
15689//   You are not authorized to perform this operation.
15690//
15691func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
15692	req, out := c.ListProvisioningTemplatesRequest(input)
15693	return out, req.Send()
15694}
15695
15696// ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
15697// the ability to pass a context and additional request options.
15698//
15699// See ListProvisioningTemplates for details on how to use this API operation.
15700//
15701// The context must be non-nil and will be used for request cancellation. If
15702// the context is nil a panic will occur. In the future the SDK may create
15703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15704// for more information on using Contexts.
15705func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
15706	req, out := c.ListProvisioningTemplatesRequest(input)
15707	req.SetContext(ctx)
15708	req.ApplyOptions(opts...)
15709	return out, req.Send()
15710}
15711
15712// ListProvisioningTemplatesPages iterates over the pages of a ListProvisioningTemplates operation,
15713// calling the "fn" function with the response data for each page. To stop
15714// iterating, return false from the fn function.
15715//
15716// See ListProvisioningTemplates method for more information on how to use this operation.
15717//
15718// Note: This operation can generate multiple requests to a service.
15719//
15720//    // Example iterating over at most 3 pages of a ListProvisioningTemplates operation.
15721//    pageNum := 0
15722//    err := client.ListProvisioningTemplatesPages(params,
15723//        func(page *iot.ListProvisioningTemplatesOutput, lastPage bool) bool {
15724//            pageNum++
15725//            fmt.Println(page)
15726//            return pageNum <= 3
15727//        })
15728//
15729func (c *IoT) ListProvisioningTemplatesPages(input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool) error {
15730	return c.ListProvisioningTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
15731}
15732
15733// ListProvisioningTemplatesPagesWithContext same as ListProvisioningTemplatesPages except
15734// it takes a Context and allows setting request options on the pages.
15735//
15736// The context must be non-nil and will be used for request cancellation. If
15737// the context is nil a panic will occur. In the future the SDK may create
15738// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15739// for more information on using Contexts.
15740func (c *IoT) ListProvisioningTemplatesPagesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool, opts ...request.Option) error {
15741	p := request.Pagination{
15742		NewRequest: func() (*request.Request, error) {
15743			var inCpy *ListProvisioningTemplatesInput
15744			if input != nil {
15745				tmp := *input
15746				inCpy = &tmp
15747			}
15748			req, _ := c.ListProvisioningTemplatesRequest(inCpy)
15749			req.SetContext(ctx)
15750			req.ApplyOptions(opts...)
15751			return req, nil
15752		},
15753	}
15754
15755	for p.Next() {
15756		if !fn(p.Page().(*ListProvisioningTemplatesOutput), !p.HasNextPage()) {
15757			break
15758		}
15759	}
15760
15761	return p.Err()
15762}
15763
15764const opListRoleAliases = "ListRoleAliases"
15765
15766// ListRoleAliasesRequest generates a "aws/request.Request" representing the
15767// client's request for the ListRoleAliases operation. The "output" return
15768// value will be populated with the request's response once the request completes
15769// successfully.
15770//
15771// Use "Send" method on the returned Request to send the API call to the service.
15772// the "output" return value is not valid until after Send returns without error.
15773//
15774// See ListRoleAliases for more information on using the ListRoleAliases
15775// API call, and error handling.
15776//
15777// This method is useful when you want to inject custom logic or configuration
15778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15779//
15780//
15781//    // Example sending a request using the ListRoleAliasesRequest method.
15782//    req, resp := client.ListRoleAliasesRequest(params)
15783//
15784//    err := req.Send()
15785//    if err == nil { // resp is now filled
15786//        fmt.Println(resp)
15787//    }
15788func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
15789	op := &request.Operation{
15790		Name:       opListRoleAliases,
15791		HTTPMethod: "GET",
15792		HTTPPath:   "/role-aliases",
15793		Paginator: &request.Paginator{
15794			InputTokens:     []string{"marker"},
15795			OutputTokens:    []string{"nextMarker"},
15796			LimitToken:      "pageSize",
15797			TruncationToken: "",
15798		},
15799	}
15800
15801	if input == nil {
15802		input = &ListRoleAliasesInput{}
15803	}
15804
15805	output = &ListRoleAliasesOutput{}
15806	req = c.newRequest(op, input, output)
15807	return
15808}
15809
15810// ListRoleAliases API operation for AWS IoT.
15811//
15812// Lists the role aliases registered in your account.
15813//
15814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15815// with awserr.Error's Code and Message methods to get detailed information about
15816// the error.
15817//
15818// See the AWS API reference guide for AWS IoT's
15819// API operation ListRoleAliases for usage and error information.
15820//
15821// Returned Error Types:
15822//   * InvalidRequestException
15823//   The request is not valid.
15824//
15825//   * ThrottlingException
15826//   The rate exceeds the limit.
15827//
15828//   * UnauthorizedException
15829//   You are not authorized to perform this operation.
15830//
15831//   * ServiceUnavailableException
15832//   The service is temporarily unavailable.
15833//
15834//   * InternalFailureException
15835//   An unexpected error has occurred.
15836//
15837func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
15838	req, out := c.ListRoleAliasesRequest(input)
15839	return out, req.Send()
15840}
15841
15842// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
15843// the ability to pass a context and additional request options.
15844//
15845// See ListRoleAliases for details on how to use this API operation.
15846//
15847// The context must be non-nil and will be used for request cancellation. If
15848// the context is nil a panic will occur. In the future the SDK may create
15849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15850// for more information on using Contexts.
15851func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
15852	req, out := c.ListRoleAliasesRequest(input)
15853	req.SetContext(ctx)
15854	req.ApplyOptions(opts...)
15855	return out, req.Send()
15856}
15857
15858// ListRoleAliasesPages iterates over the pages of a ListRoleAliases operation,
15859// calling the "fn" function with the response data for each page. To stop
15860// iterating, return false from the fn function.
15861//
15862// See ListRoleAliases method for more information on how to use this operation.
15863//
15864// Note: This operation can generate multiple requests to a service.
15865//
15866//    // Example iterating over at most 3 pages of a ListRoleAliases operation.
15867//    pageNum := 0
15868//    err := client.ListRoleAliasesPages(params,
15869//        func(page *iot.ListRoleAliasesOutput, lastPage bool) bool {
15870//            pageNum++
15871//            fmt.Println(page)
15872//            return pageNum <= 3
15873//        })
15874//
15875func (c *IoT) ListRoleAliasesPages(input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool) error {
15876	return c.ListRoleAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
15877}
15878
15879// ListRoleAliasesPagesWithContext same as ListRoleAliasesPages except
15880// it takes a Context and allows setting request options on the pages.
15881//
15882// The context must be non-nil and will be used for request cancellation. If
15883// the context is nil a panic will occur. In the future the SDK may create
15884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15885// for more information on using Contexts.
15886func (c *IoT) ListRoleAliasesPagesWithContext(ctx aws.Context, input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool, opts ...request.Option) error {
15887	p := request.Pagination{
15888		NewRequest: func() (*request.Request, error) {
15889			var inCpy *ListRoleAliasesInput
15890			if input != nil {
15891				tmp := *input
15892				inCpy = &tmp
15893			}
15894			req, _ := c.ListRoleAliasesRequest(inCpy)
15895			req.SetContext(ctx)
15896			req.ApplyOptions(opts...)
15897			return req, nil
15898		},
15899	}
15900
15901	for p.Next() {
15902		if !fn(p.Page().(*ListRoleAliasesOutput), !p.HasNextPage()) {
15903			break
15904		}
15905	}
15906
15907	return p.Err()
15908}
15909
15910const opListScheduledAudits = "ListScheduledAudits"
15911
15912// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
15913// client's request for the ListScheduledAudits operation. The "output" return
15914// value will be populated with the request's response once the request completes
15915// successfully.
15916//
15917// Use "Send" method on the returned Request to send the API call to the service.
15918// the "output" return value is not valid until after Send returns without error.
15919//
15920// See ListScheduledAudits for more information on using the ListScheduledAudits
15921// API call, and error handling.
15922//
15923// This method is useful when you want to inject custom logic or configuration
15924// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15925//
15926//
15927//    // Example sending a request using the ListScheduledAuditsRequest method.
15928//    req, resp := client.ListScheduledAuditsRequest(params)
15929//
15930//    err := req.Send()
15931//    if err == nil { // resp is now filled
15932//        fmt.Println(resp)
15933//    }
15934func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
15935	op := &request.Operation{
15936		Name:       opListScheduledAudits,
15937		HTTPMethod: "GET",
15938		HTTPPath:   "/audit/scheduledaudits",
15939		Paginator: &request.Paginator{
15940			InputTokens:     []string{"nextToken"},
15941			OutputTokens:    []string{"nextToken"},
15942			LimitToken:      "maxResults",
15943			TruncationToken: "",
15944		},
15945	}
15946
15947	if input == nil {
15948		input = &ListScheduledAuditsInput{}
15949	}
15950
15951	output = &ListScheduledAuditsOutput{}
15952	req = c.newRequest(op, input, output)
15953	return
15954}
15955
15956// ListScheduledAudits API operation for AWS IoT.
15957//
15958// Lists all of your scheduled audits.
15959//
15960// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15961// with awserr.Error's Code and Message methods to get detailed information about
15962// the error.
15963//
15964// See the AWS API reference guide for AWS IoT's
15965// API operation ListScheduledAudits for usage and error information.
15966//
15967// Returned Error Types:
15968//   * InvalidRequestException
15969//   The request is not valid.
15970//
15971//   * ThrottlingException
15972//   The rate exceeds the limit.
15973//
15974//   * InternalFailureException
15975//   An unexpected error has occurred.
15976//
15977func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
15978	req, out := c.ListScheduledAuditsRequest(input)
15979	return out, req.Send()
15980}
15981
15982// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
15983// the ability to pass a context and additional request options.
15984//
15985// See ListScheduledAudits for details on how to use this API operation.
15986//
15987// The context must be non-nil and will be used for request cancellation. If
15988// the context is nil a panic will occur. In the future the SDK may create
15989// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15990// for more information on using Contexts.
15991func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
15992	req, out := c.ListScheduledAuditsRequest(input)
15993	req.SetContext(ctx)
15994	req.ApplyOptions(opts...)
15995	return out, req.Send()
15996}
15997
15998// ListScheduledAuditsPages iterates over the pages of a ListScheduledAudits operation,
15999// calling the "fn" function with the response data for each page. To stop
16000// iterating, return false from the fn function.
16001//
16002// See ListScheduledAudits method for more information on how to use this operation.
16003//
16004// Note: This operation can generate multiple requests to a service.
16005//
16006//    // Example iterating over at most 3 pages of a ListScheduledAudits operation.
16007//    pageNum := 0
16008//    err := client.ListScheduledAuditsPages(params,
16009//        func(page *iot.ListScheduledAuditsOutput, lastPage bool) bool {
16010//            pageNum++
16011//            fmt.Println(page)
16012//            return pageNum <= 3
16013//        })
16014//
16015func (c *IoT) ListScheduledAuditsPages(input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool) error {
16016	return c.ListScheduledAuditsPagesWithContext(aws.BackgroundContext(), input, fn)
16017}
16018
16019// ListScheduledAuditsPagesWithContext same as ListScheduledAuditsPages except
16020// it takes a Context and allows setting request options on the pages.
16021//
16022// The context must be non-nil and will be used for request cancellation. If
16023// the context is nil a panic will occur. In the future the SDK may create
16024// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16025// for more information on using Contexts.
16026func (c *IoT) ListScheduledAuditsPagesWithContext(ctx aws.Context, input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool, opts ...request.Option) error {
16027	p := request.Pagination{
16028		NewRequest: func() (*request.Request, error) {
16029			var inCpy *ListScheduledAuditsInput
16030			if input != nil {
16031				tmp := *input
16032				inCpy = &tmp
16033			}
16034			req, _ := c.ListScheduledAuditsRequest(inCpy)
16035			req.SetContext(ctx)
16036			req.ApplyOptions(opts...)
16037			return req, nil
16038		},
16039	}
16040
16041	for p.Next() {
16042		if !fn(p.Page().(*ListScheduledAuditsOutput), !p.HasNextPage()) {
16043			break
16044		}
16045	}
16046
16047	return p.Err()
16048}
16049
16050const opListSecurityProfiles = "ListSecurityProfiles"
16051
16052// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
16053// client's request for the ListSecurityProfiles operation. The "output" return
16054// value will be populated with the request's response once the request completes
16055// successfully.
16056//
16057// Use "Send" method on the returned Request to send the API call to the service.
16058// the "output" return value is not valid until after Send returns without error.
16059//
16060// See ListSecurityProfiles for more information on using the ListSecurityProfiles
16061// API call, and error handling.
16062//
16063// This method is useful when you want to inject custom logic or configuration
16064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16065//
16066//
16067//    // Example sending a request using the ListSecurityProfilesRequest method.
16068//    req, resp := client.ListSecurityProfilesRequest(params)
16069//
16070//    err := req.Send()
16071//    if err == nil { // resp is now filled
16072//        fmt.Println(resp)
16073//    }
16074func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
16075	op := &request.Operation{
16076		Name:       opListSecurityProfiles,
16077		HTTPMethod: "GET",
16078		HTTPPath:   "/security-profiles",
16079		Paginator: &request.Paginator{
16080			InputTokens:     []string{"nextToken"},
16081			OutputTokens:    []string{"nextToken"},
16082			LimitToken:      "maxResults",
16083			TruncationToken: "",
16084		},
16085	}
16086
16087	if input == nil {
16088		input = &ListSecurityProfilesInput{}
16089	}
16090
16091	output = &ListSecurityProfilesOutput{}
16092	req = c.newRequest(op, input, output)
16093	return
16094}
16095
16096// ListSecurityProfiles API operation for AWS IoT.
16097//
16098// Lists the Device Defender security profiles you've created. You can filter
16099// security profiles by dimension or custom metric.
16100//
16101// dimensionName and metricName cannot be used in the same request.
16102//
16103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16104// with awserr.Error's Code and Message methods to get detailed information about
16105// the error.
16106//
16107// See the AWS API reference guide for AWS IoT's
16108// API operation ListSecurityProfiles for usage and error information.
16109//
16110// Returned Error Types:
16111//   * InvalidRequestException
16112//   The request is not valid.
16113//
16114//   * ThrottlingException
16115//   The rate exceeds the limit.
16116//
16117//   * InternalFailureException
16118//   An unexpected error has occurred.
16119//
16120//   * ResourceNotFoundException
16121//   The specified resource does not exist.
16122//
16123func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
16124	req, out := c.ListSecurityProfilesRequest(input)
16125	return out, req.Send()
16126}
16127
16128// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
16129// the ability to pass a context and additional request options.
16130//
16131// See ListSecurityProfiles for details on how to use this API operation.
16132//
16133// The context must be non-nil and will be used for request cancellation. If
16134// the context is nil a panic will occur. In the future the SDK may create
16135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16136// for more information on using Contexts.
16137func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
16138	req, out := c.ListSecurityProfilesRequest(input)
16139	req.SetContext(ctx)
16140	req.ApplyOptions(opts...)
16141	return out, req.Send()
16142}
16143
16144// ListSecurityProfilesPages iterates over the pages of a ListSecurityProfiles operation,
16145// calling the "fn" function with the response data for each page. To stop
16146// iterating, return false from the fn function.
16147//
16148// See ListSecurityProfiles method for more information on how to use this operation.
16149//
16150// Note: This operation can generate multiple requests to a service.
16151//
16152//    // Example iterating over at most 3 pages of a ListSecurityProfiles operation.
16153//    pageNum := 0
16154//    err := client.ListSecurityProfilesPages(params,
16155//        func(page *iot.ListSecurityProfilesOutput, lastPage bool) bool {
16156//            pageNum++
16157//            fmt.Println(page)
16158//            return pageNum <= 3
16159//        })
16160//
16161func (c *IoT) ListSecurityProfilesPages(input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool) error {
16162	return c.ListSecurityProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
16163}
16164
16165// ListSecurityProfilesPagesWithContext same as ListSecurityProfilesPages except
16166// it takes a Context and allows setting request options on the pages.
16167//
16168// The context must be non-nil and will be used for request cancellation. If
16169// the context is nil a panic will occur. In the future the SDK may create
16170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16171// for more information on using Contexts.
16172func (c *IoT) ListSecurityProfilesPagesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool, opts ...request.Option) error {
16173	p := request.Pagination{
16174		NewRequest: func() (*request.Request, error) {
16175			var inCpy *ListSecurityProfilesInput
16176			if input != nil {
16177				tmp := *input
16178				inCpy = &tmp
16179			}
16180			req, _ := c.ListSecurityProfilesRequest(inCpy)
16181			req.SetContext(ctx)
16182			req.ApplyOptions(opts...)
16183			return req, nil
16184		},
16185	}
16186
16187	for p.Next() {
16188		if !fn(p.Page().(*ListSecurityProfilesOutput), !p.HasNextPage()) {
16189			break
16190		}
16191	}
16192
16193	return p.Err()
16194}
16195
16196const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
16197
16198// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
16199// client's request for the ListSecurityProfilesForTarget operation. The "output" return
16200// value will be populated with the request's response once the request completes
16201// successfully.
16202//
16203// Use "Send" method on the returned Request to send the API call to the service.
16204// the "output" return value is not valid until after Send returns without error.
16205//
16206// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
16207// API call, and error handling.
16208//
16209// This method is useful when you want to inject custom logic or configuration
16210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16211//
16212//
16213//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
16214//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
16215//
16216//    err := req.Send()
16217//    if err == nil { // resp is now filled
16218//        fmt.Println(resp)
16219//    }
16220func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
16221	op := &request.Operation{
16222		Name:       opListSecurityProfilesForTarget,
16223		HTTPMethod: "GET",
16224		HTTPPath:   "/security-profiles-for-target",
16225		Paginator: &request.Paginator{
16226			InputTokens:     []string{"nextToken"},
16227			OutputTokens:    []string{"nextToken"},
16228			LimitToken:      "maxResults",
16229			TruncationToken: "",
16230		},
16231	}
16232
16233	if input == nil {
16234		input = &ListSecurityProfilesForTargetInput{}
16235	}
16236
16237	output = &ListSecurityProfilesForTargetOutput{}
16238	req = c.newRequest(op, input, output)
16239	return
16240}
16241
16242// ListSecurityProfilesForTarget API operation for AWS IoT.
16243//
16244// Lists the Device Defender security profiles attached to a target (thing group).
16245//
16246// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16247// with awserr.Error's Code and Message methods to get detailed information about
16248// the error.
16249//
16250// See the AWS API reference guide for AWS IoT's
16251// API operation ListSecurityProfilesForTarget for usage and error information.
16252//
16253// Returned Error Types:
16254//   * InvalidRequestException
16255//   The request is not valid.
16256//
16257//   * ThrottlingException
16258//   The rate exceeds the limit.
16259//
16260//   * InternalFailureException
16261//   An unexpected error has occurred.
16262//
16263//   * ResourceNotFoundException
16264//   The specified resource does not exist.
16265//
16266func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
16267	req, out := c.ListSecurityProfilesForTargetRequest(input)
16268	return out, req.Send()
16269}
16270
16271// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
16272// the ability to pass a context and additional request options.
16273//
16274// See ListSecurityProfilesForTarget for details on how to use this API operation.
16275//
16276// The context must be non-nil and will be used for request cancellation. If
16277// the context is nil a panic will occur. In the future the SDK may create
16278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16279// for more information on using Contexts.
16280func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
16281	req, out := c.ListSecurityProfilesForTargetRequest(input)
16282	req.SetContext(ctx)
16283	req.ApplyOptions(opts...)
16284	return out, req.Send()
16285}
16286
16287// ListSecurityProfilesForTargetPages iterates over the pages of a ListSecurityProfilesForTarget operation,
16288// calling the "fn" function with the response data for each page. To stop
16289// iterating, return false from the fn function.
16290//
16291// See ListSecurityProfilesForTarget method for more information on how to use this operation.
16292//
16293// Note: This operation can generate multiple requests to a service.
16294//
16295//    // Example iterating over at most 3 pages of a ListSecurityProfilesForTarget operation.
16296//    pageNum := 0
16297//    err := client.ListSecurityProfilesForTargetPages(params,
16298//        func(page *iot.ListSecurityProfilesForTargetOutput, lastPage bool) bool {
16299//            pageNum++
16300//            fmt.Println(page)
16301//            return pageNum <= 3
16302//        })
16303//
16304func (c *IoT) ListSecurityProfilesForTargetPages(input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool) error {
16305	return c.ListSecurityProfilesForTargetPagesWithContext(aws.BackgroundContext(), input, fn)
16306}
16307
16308// ListSecurityProfilesForTargetPagesWithContext same as ListSecurityProfilesForTargetPages except
16309// it takes a Context and allows setting request options on the pages.
16310//
16311// The context must be non-nil and will be used for request cancellation. If
16312// the context is nil a panic will occur. In the future the SDK may create
16313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16314// for more information on using Contexts.
16315func (c *IoT) ListSecurityProfilesForTargetPagesWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool, opts ...request.Option) error {
16316	p := request.Pagination{
16317		NewRequest: func() (*request.Request, error) {
16318			var inCpy *ListSecurityProfilesForTargetInput
16319			if input != nil {
16320				tmp := *input
16321				inCpy = &tmp
16322			}
16323			req, _ := c.ListSecurityProfilesForTargetRequest(inCpy)
16324			req.SetContext(ctx)
16325			req.ApplyOptions(opts...)
16326			return req, nil
16327		},
16328	}
16329
16330	for p.Next() {
16331		if !fn(p.Page().(*ListSecurityProfilesForTargetOutput), !p.HasNextPage()) {
16332			break
16333		}
16334	}
16335
16336	return p.Err()
16337}
16338
16339const opListStreams = "ListStreams"
16340
16341// ListStreamsRequest generates a "aws/request.Request" representing the
16342// client's request for the ListStreams operation. The "output" return
16343// value will be populated with the request's response once the request completes
16344// successfully.
16345//
16346// Use "Send" method on the returned Request to send the API call to the service.
16347// the "output" return value is not valid until after Send returns without error.
16348//
16349// See ListStreams for more information on using the ListStreams
16350// API call, and error handling.
16351//
16352// This method is useful when you want to inject custom logic or configuration
16353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16354//
16355//
16356//    // Example sending a request using the ListStreamsRequest method.
16357//    req, resp := client.ListStreamsRequest(params)
16358//
16359//    err := req.Send()
16360//    if err == nil { // resp is now filled
16361//        fmt.Println(resp)
16362//    }
16363func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
16364	op := &request.Operation{
16365		Name:       opListStreams,
16366		HTTPMethod: "GET",
16367		HTTPPath:   "/streams",
16368		Paginator: &request.Paginator{
16369			InputTokens:     []string{"nextToken"},
16370			OutputTokens:    []string{"nextToken"},
16371			LimitToken:      "maxResults",
16372			TruncationToken: "",
16373		},
16374	}
16375
16376	if input == nil {
16377		input = &ListStreamsInput{}
16378	}
16379
16380	output = &ListStreamsOutput{}
16381	req = c.newRequest(op, input, output)
16382	return
16383}
16384
16385// ListStreams API operation for AWS IoT.
16386//
16387// Lists all of the streams in your AWS account.
16388//
16389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16390// with awserr.Error's Code and Message methods to get detailed information about
16391// the error.
16392//
16393// See the AWS API reference guide for AWS IoT's
16394// API operation ListStreams for usage and error information.
16395//
16396// Returned Error Types:
16397//   * InvalidRequestException
16398//   The request is not valid.
16399//
16400//   * ThrottlingException
16401//   The rate exceeds the limit.
16402//
16403//   * UnauthorizedException
16404//   You are not authorized to perform this operation.
16405//
16406//   * ServiceUnavailableException
16407//   The service is temporarily unavailable.
16408//
16409//   * InternalFailureException
16410//   An unexpected error has occurred.
16411//
16412func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
16413	req, out := c.ListStreamsRequest(input)
16414	return out, req.Send()
16415}
16416
16417// ListStreamsWithContext is the same as ListStreams with the addition of
16418// the ability to pass a context and additional request options.
16419//
16420// See ListStreams for details on how to use this API operation.
16421//
16422// The context must be non-nil and will be used for request cancellation. If
16423// the context is nil a panic will occur. In the future the SDK may create
16424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16425// for more information on using Contexts.
16426func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
16427	req, out := c.ListStreamsRequest(input)
16428	req.SetContext(ctx)
16429	req.ApplyOptions(opts...)
16430	return out, req.Send()
16431}
16432
16433// ListStreamsPages iterates over the pages of a ListStreams operation,
16434// calling the "fn" function with the response data for each page. To stop
16435// iterating, return false from the fn function.
16436//
16437// See ListStreams method for more information on how to use this operation.
16438//
16439// Note: This operation can generate multiple requests to a service.
16440//
16441//    // Example iterating over at most 3 pages of a ListStreams operation.
16442//    pageNum := 0
16443//    err := client.ListStreamsPages(params,
16444//        func(page *iot.ListStreamsOutput, lastPage bool) bool {
16445//            pageNum++
16446//            fmt.Println(page)
16447//            return pageNum <= 3
16448//        })
16449//
16450func (c *IoT) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
16451	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
16452}
16453
16454// ListStreamsPagesWithContext same as ListStreamsPages except
16455// it takes a Context and allows setting request options on the pages.
16456//
16457// The context must be non-nil and will be used for request cancellation. If
16458// the context is nil a panic will occur. In the future the SDK may create
16459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16460// for more information on using Contexts.
16461func (c *IoT) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
16462	p := request.Pagination{
16463		NewRequest: func() (*request.Request, error) {
16464			var inCpy *ListStreamsInput
16465			if input != nil {
16466				tmp := *input
16467				inCpy = &tmp
16468			}
16469			req, _ := c.ListStreamsRequest(inCpy)
16470			req.SetContext(ctx)
16471			req.ApplyOptions(opts...)
16472			return req, nil
16473		},
16474	}
16475
16476	for p.Next() {
16477		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
16478			break
16479		}
16480	}
16481
16482	return p.Err()
16483}
16484
16485const opListTagsForResource = "ListTagsForResource"
16486
16487// ListTagsForResourceRequest generates a "aws/request.Request" representing the
16488// client's request for the ListTagsForResource operation. The "output" return
16489// value will be populated with the request's response once the request completes
16490// successfully.
16491//
16492// Use "Send" method on the returned Request to send the API call to the service.
16493// the "output" return value is not valid until after Send returns without error.
16494//
16495// See ListTagsForResource for more information on using the ListTagsForResource
16496// API call, and error handling.
16497//
16498// This method is useful when you want to inject custom logic or configuration
16499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16500//
16501//
16502//    // Example sending a request using the ListTagsForResourceRequest method.
16503//    req, resp := client.ListTagsForResourceRequest(params)
16504//
16505//    err := req.Send()
16506//    if err == nil { // resp is now filled
16507//        fmt.Println(resp)
16508//    }
16509func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
16510	op := &request.Operation{
16511		Name:       opListTagsForResource,
16512		HTTPMethod: "GET",
16513		HTTPPath:   "/tags",
16514		Paginator: &request.Paginator{
16515			InputTokens:     []string{"nextToken"},
16516			OutputTokens:    []string{"nextToken"},
16517			LimitToken:      "",
16518			TruncationToken: "",
16519		},
16520	}
16521
16522	if input == nil {
16523		input = &ListTagsForResourceInput{}
16524	}
16525
16526	output = &ListTagsForResourceOutput{}
16527	req = c.newRequest(op, input, output)
16528	return
16529}
16530
16531// ListTagsForResource API operation for AWS IoT.
16532//
16533// Lists the tags (metadata) you have assigned to the resource.
16534//
16535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16536// with awserr.Error's Code and Message methods to get detailed information about
16537// the error.
16538//
16539// See the AWS API reference guide for AWS IoT's
16540// API operation ListTagsForResource for usage and error information.
16541//
16542// Returned Error Types:
16543//   * InvalidRequestException
16544//   The request is not valid.
16545//
16546//   * InternalFailureException
16547//   An unexpected error has occurred.
16548//
16549//   * ResourceNotFoundException
16550//   The specified resource does not exist.
16551//
16552//   * ThrottlingException
16553//   The rate exceeds the limit.
16554//
16555func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
16556	req, out := c.ListTagsForResourceRequest(input)
16557	return out, req.Send()
16558}
16559
16560// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
16561// the ability to pass a context and additional request options.
16562//
16563// See ListTagsForResource for details on how to use this API operation.
16564//
16565// The context must be non-nil and will be used for request cancellation. If
16566// the context is nil a panic will occur. In the future the SDK may create
16567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16568// for more information on using Contexts.
16569func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
16570	req, out := c.ListTagsForResourceRequest(input)
16571	req.SetContext(ctx)
16572	req.ApplyOptions(opts...)
16573	return out, req.Send()
16574}
16575
16576// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
16577// calling the "fn" function with the response data for each page. To stop
16578// iterating, return false from the fn function.
16579//
16580// See ListTagsForResource method for more information on how to use this operation.
16581//
16582// Note: This operation can generate multiple requests to a service.
16583//
16584//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
16585//    pageNum := 0
16586//    err := client.ListTagsForResourcePages(params,
16587//        func(page *iot.ListTagsForResourceOutput, lastPage bool) bool {
16588//            pageNum++
16589//            fmt.Println(page)
16590//            return pageNum <= 3
16591//        })
16592//
16593func (c *IoT) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
16594	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
16595}
16596
16597// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
16598// it takes a Context and allows setting request options on the pages.
16599//
16600// The context must be non-nil and will be used for request cancellation. If
16601// the context is nil a panic will occur. In the future the SDK may create
16602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16603// for more information on using Contexts.
16604func (c *IoT) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
16605	p := request.Pagination{
16606		NewRequest: func() (*request.Request, error) {
16607			var inCpy *ListTagsForResourceInput
16608			if input != nil {
16609				tmp := *input
16610				inCpy = &tmp
16611			}
16612			req, _ := c.ListTagsForResourceRequest(inCpy)
16613			req.SetContext(ctx)
16614			req.ApplyOptions(opts...)
16615			return req, nil
16616		},
16617	}
16618
16619	for p.Next() {
16620		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
16621			break
16622		}
16623	}
16624
16625	return p.Err()
16626}
16627
16628const opListTargetsForPolicy = "ListTargetsForPolicy"
16629
16630// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
16631// client's request for the ListTargetsForPolicy operation. The "output" return
16632// value will be populated with the request's response once the request completes
16633// successfully.
16634//
16635// Use "Send" method on the returned Request to send the API call to the service.
16636// the "output" return value is not valid until after Send returns without error.
16637//
16638// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
16639// API call, and error handling.
16640//
16641// This method is useful when you want to inject custom logic or configuration
16642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16643//
16644//
16645//    // Example sending a request using the ListTargetsForPolicyRequest method.
16646//    req, resp := client.ListTargetsForPolicyRequest(params)
16647//
16648//    err := req.Send()
16649//    if err == nil { // resp is now filled
16650//        fmt.Println(resp)
16651//    }
16652func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
16653	op := &request.Operation{
16654		Name:       opListTargetsForPolicy,
16655		HTTPMethod: "POST",
16656		HTTPPath:   "/policy-targets/{policyName}",
16657		Paginator: &request.Paginator{
16658			InputTokens:     []string{"marker"},
16659			OutputTokens:    []string{"nextMarker"},
16660			LimitToken:      "pageSize",
16661			TruncationToken: "",
16662		},
16663	}
16664
16665	if input == nil {
16666		input = &ListTargetsForPolicyInput{}
16667	}
16668
16669	output = &ListTargetsForPolicyOutput{}
16670	req = c.newRequest(op, input, output)
16671	return
16672}
16673
16674// ListTargetsForPolicy API operation for AWS IoT.
16675//
16676// List targets for the specified policy.
16677//
16678// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16679// with awserr.Error's Code and Message methods to get detailed information about
16680// the error.
16681//
16682// See the AWS API reference guide for AWS IoT's
16683// API operation ListTargetsForPolicy for usage and error information.
16684//
16685// Returned Error Types:
16686//   * ResourceNotFoundException
16687//   The specified resource does not exist.
16688//
16689//   * InvalidRequestException
16690//   The request is not valid.
16691//
16692//   * ThrottlingException
16693//   The rate exceeds the limit.
16694//
16695//   * UnauthorizedException
16696//   You are not authorized to perform this operation.
16697//
16698//   * ServiceUnavailableException
16699//   The service is temporarily unavailable.
16700//
16701//   * InternalFailureException
16702//   An unexpected error has occurred.
16703//
16704//   * LimitExceededException
16705//   A limit has been exceeded.
16706//
16707func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
16708	req, out := c.ListTargetsForPolicyRequest(input)
16709	return out, req.Send()
16710}
16711
16712// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
16713// the ability to pass a context and additional request options.
16714//
16715// See ListTargetsForPolicy for details on how to use this API operation.
16716//
16717// The context must be non-nil and will be used for request cancellation. If
16718// the context is nil a panic will occur. In the future the SDK may create
16719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16720// for more information on using Contexts.
16721func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
16722	req, out := c.ListTargetsForPolicyRequest(input)
16723	req.SetContext(ctx)
16724	req.ApplyOptions(opts...)
16725	return out, req.Send()
16726}
16727
16728// ListTargetsForPolicyPages iterates over the pages of a ListTargetsForPolicy operation,
16729// calling the "fn" function with the response data for each page. To stop
16730// iterating, return false from the fn function.
16731//
16732// See ListTargetsForPolicy method for more information on how to use this operation.
16733//
16734// Note: This operation can generate multiple requests to a service.
16735//
16736//    // Example iterating over at most 3 pages of a ListTargetsForPolicy operation.
16737//    pageNum := 0
16738//    err := client.ListTargetsForPolicyPages(params,
16739//        func(page *iot.ListTargetsForPolicyOutput, lastPage bool) bool {
16740//            pageNum++
16741//            fmt.Println(page)
16742//            return pageNum <= 3
16743//        })
16744//
16745func (c *IoT) ListTargetsForPolicyPages(input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool) error {
16746	return c.ListTargetsForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
16747}
16748
16749// ListTargetsForPolicyPagesWithContext same as ListTargetsForPolicyPages except
16750// it takes a Context and allows setting request options on the pages.
16751//
16752// The context must be non-nil and will be used for request cancellation. If
16753// the context is nil a panic will occur. In the future the SDK may create
16754// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16755// for more information on using Contexts.
16756func (c *IoT) ListTargetsForPolicyPagesWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool, opts ...request.Option) error {
16757	p := request.Pagination{
16758		NewRequest: func() (*request.Request, error) {
16759			var inCpy *ListTargetsForPolicyInput
16760			if input != nil {
16761				tmp := *input
16762				inCpy = &tmp
16763			}
16764			req, _ := c.ListTargetsForPolicyRequest(inCpy)
16765			req.SetContext(ctx)
16766			req.ApplyOptions(opts...)
16767			return req, nil
16768		},
16769	}
16770
16771	for p.Next() {
16772		if !fn(p.Page().(*ListTargetsForPolicyOutput), !p.HasNextPage()) {
16773			break
16774		}
16775	}
16776
16777	return p.Err()
16778}
16779
16780const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
16781
16782// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
16783// client's request for the ListTargetsForSecurityProfile operation. The "output" return
16784// value will be populated with the request's response once the request completes
16785// successfully.
16786//
16787// Use "Send" method on the returned Request to send the API call to the service.
16788// the "output" return value is not valid until after Send returns without error.
16789//
16790// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
16791// API call, and error handling.
16792//
16793// This method is useful when you want to inject custom logic or configuration
16794// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16795//
16796//
16797//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
16798//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
16799//
16800//    err := req.Send()
16801//    if err == nil { // resp is now filled
16802//        fmt.Println(resp)
16803//    }
16804func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
16805	op := &request.Operation{
16806		Name:       opListTargetsForSecurityProfile,
16807		HTTPMethod: "GET",
16808		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
16809		Paginator: &request.Paginator{
16810			InputTokens:     []string{"nextToken"},
16811			OutputTokens:    []string{"nextToken"},
16812			LimitToken:      "maxResults",
16813			TruncationToken: "",
16814		},
16815	}
16816
16817	if input == nil {
16818		input = &ListTargetsForSecurityProfileInput{}
16819	}
16820
16821	output = &ListTargetsForSecurityProfileOutput{}
16822	req = c.newRequest(op, input, output)
16823	return
16824}
16825
16826// ListTargetsForSecurityProfile API operation for AWS IoT.
16827//
16828// Lists the targets (thing groups) associated with a given Device Defender
16829// security profile.
16830//
16831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16832// with awserr.Error's Code and Message methods to get detailed information about
16833// the error.
16834//
16835// See the AWS API reference guide for AWS IoT's
16836// API operation ListTargetsForSecurityProfile for usage and error information.
16837//
16838// Returned Error Types:
16839//   * InvalidRequestException
16840//   The request is not valid.
16841//
16842//   * ResourceNotFoundException
16843//   The specified resource does not exist.
16844//
16845//   * ThrottlingException
16846//   The rate exceeds the limit.
16847//
16848//   * InternalFailureException
16849//   An unexpected error has occurred.
16850//
16851func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
16852	req, out := c.ListTargetsForSecurityProfileRequest(input)
16853	return out, req.Send()
16854}
16855
16856// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
16857// the ability to pass a context and additional request options.
16858//
16859// See ListTargetsForSecurityProfile for details on how to use this API operation.
16860//
16861// The context must be non-nil and will be used for request cancellation. If
16862// the context is nil a panic will occur. In the future the SDK may create
16863// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16864// for more information on using Contexts.
16865func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
16866	req, out := c.ListTargetsForSecurityProfileRequest(input)
16867	req.SetContext(ctx)
16868	req.ApplyOptions(opts...)
16869	return out, req.Send()
16870}
16871
16872// ListTargetsForSecurityProfilePages iterates over the pages of a ListTargetsForSecurityProfile operation,
16873// calling the "fn" function with the response data for each page. To stop
16874// iterating, return false from the fn function.
16875//
16876// See ListTargetsForSecurityProfile method for more information on how to use this operation.
16877//
16878// Note: This operation can generate multiple requests to a service.
16879//
16880//    // Example iterating over at most 3 pages of a ListTargetsForSecurityProfile operation.
16881//    pageNum := 0
16882//    err := client.ListTargetsForSecurityProfilePages(params,
16883//        func(page *iot.ListTargetsForSecurityProfileOutput, lastPage bool) bool {
16884//            pageNum++
16885//            fmt.Println(page)
16886//            return pageNum <= 3
16887//        })
16888//
16889func (c *IoT) ListTargetsForSecurityProfilePages(input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool) error {
16890	return c.ListTargetsForSecurityProfilePagesWithContext(aws.BackgroundContext(), input, fn)
16891}
16892
16893// ListTargetsForSecurityProfilePagesWithContext same as ListTargetsForSecurityProfilePages except
16894// it takes a Context and allows setting request options on the pages.
16895//
16896// The context must be non-nil and will be used for request cancellation. If
16897// the context is nil a panic will occur. In the future the SDK may create
16898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16899// for more information on using Contexts.
16900func (c *IoT) ListTargetsForSecurityProfilePagesWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool, opts ...request.Option) error {
16901	p := request.Pagination{
16902		NewRequest: func() (*request.Request, error) {
16903			var inCpy *ListTargetsForSecurityProfileInput
16904			if input != nil {
16905				tmp := *input
16906				inCpy = &tmp
16907			}
16908			req, _ := c.ListTargetsForSecurityProfileRequest(inCpy)
16909			req.SetContext(ctx)
16910			req.ApplyOptions(opts...)
16911			return req, nil
16912		},
16913	}
16914
16915	for p.Next() {
16916		if !fn(p.Page().(*ListTargetsForSecurityProfileOutput), !p.HasNextPage()) {
16917			break
16918		}
16919	}
16920
16921	return p.Err()
16922}
16923
16924const opListThingGroups = "ListThingGroups"
16925
16926// ListThingGroupsRequest generates a "aws/request.Request" representing the
16927// client's request for the ListThingGroups operation. The "output" return
16928// value will be populated with the request's response once the request completes
16929// successfully.
16930//
16931// Use "Send" method on the returned Request to send the API call to the service.
16932// the "output" return value is not valid until after Send returns without error.
16933//
16934// See ListThingGroups for more information on using the ListThingGroups
16935// API call, and error handling.
16936//
16937// This method is useful when you want to inject custom logic or configuration
16938// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16939//
16940//
16941//    // Example sending a request using the ListThingGroupsRequest method.
16942//    req, resp := client.ListThingGroupsRequest(params)
16943//
16944//    err := req.Send()
16945//    if err == nil { // resp is now filled
16946//        fmt.Println(resp)
16947//    }
16948func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
16949	op := &request.Operation{
16950		Name:       opListThingGroups,
16951		HTTPMethod: "GET",
16952		HTTPPath:   "/thing-groups",
16953		Paginator: &request.Paginator{
16954			InputTokens:     []string{"nextToken"},
16955			OutputTokens:    []string{"nextToken"},
16956			LimitToken:      "maxResults",
16957			TruncationToken: "",
16958		},
16959	}
16960
16961	if input == nil {
16962		input = &ListThingGroupsInput{}
16963	}
16964
16965	output = &ListThingGroupsOutput{}
16966	req = c.newRequest(op, input, output)
16967	return
16968}
16969
16970// ListThingGroups API operation for AWS IoT.
16971//
16972// List the thing groups in your account.
16973//
16974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16975// with awserr.Error's Code and Message methods to get detailed information about
16976// the error.
16977//
16978// See the AWS API reference guide for AWS IoT's
16979// API operation ListThingGroups for usage and error information.
16980//
16981// Returned Error Types:
16982//   * InvalidRequestException
16983//   The request is not valid.
16984//
16985//   * InternalFailureException
16986//   An unexpected error has occurred.
16987//
16988//   * ResourceNotFoundException
16989//   The specified resource does not exist.
16990//
16991//   * ThrottlingException
16992//   The rate exceeds the limit.
16993//
16994func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
16995	req, out := c.ListThingGroupsRequest(input)
16996	return out, req.Send()
16997}
16998
16999// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
17000// the ability to pass a context and additional request options.
17001//
17002// See ListThingGroups for details on how to use this API operation.
17003//
17004// The context must be non-nil and will be used for request cancellation. If
17005// the context is nil a panic will occur. In the future the SDK may create
17006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17007// for more information on using Contexts.
17008func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
17009	req, out := c.ListThingGroupsRequest(input)
17010	req.SetContext(ctx)
17011	req.ApplyOptions(opts...)
17012	return out, req.Send()
17013}
17014
17015// ListThingGroupsPages iterates over the pages of a ListThingGroups operation,
17016// calling the "fn" function with the response data for each page. To stop
17017// iterating, return false from the fn function.
17018//
17019// See ListThingGroups method for more information on how to use this operation.
17020//
17021// Note: This operation can generate multiple requests to a service.
17022//
17023//    // Example iterating over at most 3 pages of a ListThingGroups operation.
17024//    pageNum := 0
17025//    err := client.ListThingGroupsPages(params,
17026//        func(page *iot.ListThingGroupsOutput, lastPage bool) bool {
17027//            pageNum++
17028//            fmt.Println(page)
17029//            return pageNum <= 3
17030//        })
17031//
17032func (c *IoT) ListThingGroupsPages(input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool) error {
17033	return c.ListThingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
17034}
17035
17036// ListThingGroupsPagesWithContext same as ListThingGroupsPages except
17037// it takes a Context and allows setting request options on the pages.
17038//
17039// The context must be non-nil and will be used for request cancellation. If
17040// the context is nil a panic will occur. In the future the SDK may create
17041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17042// for more information on using Contexts.
17043func (c *IoT) ListThingGroupsPagesWithContext(ctx aws.Context, input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool, opts ...request.Option) error {
17044	p := request.Pagination{
17045		NewRequest: func() (*request.Request, error) {
17046			var inCpy *ListThingGroupsInput
17047			if input != nil {
17048				tmp := *input
17049				inCpy = &tmp
17050			}
17051			req, _ := c.ListThingGroupsRequest(inCpy)
17052			req.SetContext(ctx)
17053			req.ApplyOptions(opts...)
17054			return req, nil
17055		},
17056	}
17057
17058	for p.Next() {
17059		if !fn(p.Page().(*ListThingGroupsOutput), !p.HasNextPage()) {
17060			break
17061		}
17062	}
17063
17064	return p.Err()
17065}
17066
17067const opListThingGroupsForThing = "ListThingGroupsForThing"
17068
17069// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
17070// client's request for the ListThingGroupsForThing operation. The "output" return
17071// value will be populated with the request's response once the request completes
17072// successfully.
17073//
17074// Use "Send" method on the returned Request to send the API call to the service.
17075// the "output" return value is not valid until after Send returns without error.
17076//
17077// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
17078// API call, and error handling.
17079//
17080// This method is useful when you want to inject custom logic or configuration
17081// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17082//
17083//
17084//    // Example sending a request using the ListThingGroupsForThingRequest method.
17085//    req, resp := client.ListThingGroupsForThingRequest(params)
17086//
17087//    err := req.Send()
17088//    if err == nil { // resp is now filled
17089//        fmt.Println(resp)
17090//    }
17091func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
17092	op := &request.Operation{
17093		Name:       opListThingGroupsForThing,
17094		HTTPMethod: "GET",
17095		HTTPPath:   "/things/{thingName}/thing-groups",
17096		Paginator: &request.Paginator{
17097			InputTokens:     []string{"nextToken"},
17098			OutputTokens:    []string{"nextToken"},
17099			LimitToken:      "maxResults",
17100			TruncationToken: "",
17101		},
17102	}
17103
17104	if input == nil {
17105		input = &ListThingGroupsForThingInput{}
17106	}
17107
17108	output = &ListThingGroupsForThingOutput{}
17109	req = c.newRequest(op, input, output)
17110	return
17111}
17112
17113// ListThingGroupsForThing API operation for AWS IoT.
17114//
17115// List the thing groups to which the specified thing belongs.
17116//
17117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17118// with awserr.Error's Code and Message methods to get detailed information about
17119// the error.
17120//
17121// See the AWS API reference guide for AWS IoT's
17122// API operation ListThingGroupsForThing for usage and error information.
17123//
17124// Returned Error Types:
17125//   * InvalidRequestException
17126//   The request is not valid.
17127//
17128//   * InternalFailureException
17129//   An unexpected error has occurred.
17130//
17131//   * ResourceNotFoundException
17132//   The specified resource does not exist.
17133//
17134//   * ThrottlingException
17135//   The rate exceeds the limit.
17136//
17137func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
17138	req, out := c.ListThingGroupsForThingRequest(input)
17139	return out, req.Send()
17140}
17141
17142// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
17143// the ability to pass a context and additional request options.
17144//
17145// See ListThingGroupsForThing for details on how to use this API operation.
17146//
17147// The context must be non-nil and will be used for request cancellation. If
17148// the context is nil a panic will occur. In the future the SDK may create
17149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17150// for more information on using Contexts.
17151func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
17152	req, out := c.ListThingGroupsForThingRequest(input)
17153	req.SetContext(ctx)
17154	req.ApplyOptions(opts...)
17155	return out, req.Send()
17156}
17157
17158// ListThingGroupsForThingPages iterates over the pages of a ListThingGroupsForThing operation,
17159// calling the "fn" function with the response data for each page. To stop
17160// iterating, return false from the fn function.
17161//
17162// See ListThingGroupsForThing method for more information on how to use this operation.
17163//
17164// Note: This operation can generate multiple requests to a service.
17165//
17166//    // Example iterating over at most 3 pages of a ListThingGroupsForThing operation.
17167//    pageNum := 0
17168//    err := client.ListThingGroupsForThingPages(params,
17169//        func(page *iot.ListThingGroupsForThingOutput, lastPage bool) bool {
17170//            pageNum++
17171//            fmt.Println(page)
17172//            return pageNum <= 3
17173//        })
17174//
17175func (c *IoT) ListThingGroupsForThingPages(input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool) error {
17176	return c.ListThingGroupsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
17177}
17178
17179// ListThingGroupsForThingPagesWithContext same as ListThingGroupsForThingPages except
17180// it takes a Context and allows setting request options on the pages.
17181//
17182// The context must be non-nil and will be used for request cancellation. If
17183// the context is nil a panic will occur. In the future the SDK may create
17184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17185// for more information on using Contexts.
17186func (c *IoT) ListThingGroupsForThingPagesWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool, opts ...request.Option) error {
17187	p := request.Pagination{
17188		NewRequest: func() (*request.Request, error) {
17189			var inCpy *ListThingGroupsForThingInput
17190			if input != nil {
17191				tmp := *input
17192				inCpy = &tmp
17193			}
17194			req, _ := c.ListThingGroupsForThingRequest(inCpy)
17195			req.SetContext(ctx)
17196			req.ApplyOptions(opts...)
17197			return req, nil
17198		},
17199	}
17200
17201	for p.Next() {
17202		if !fn(p.Page().(*ListThingGroupsForThingOutput), !p.HasNextPage()) {
17203			break
17204		}
17205	}
17206
17207	return p.Err()
17208}
17209
17210const opListThingPrincipals = "ListThingPrincipals"
17211
17212// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
17213// client's request for the ListThingPrincipals operation. The "output" return
17214// value will be populated with the request's response once the request completes
17215// successfully.
17216//
17217// Use "Send" method on the returned Request to send the API call to the service.
17218// the "output" return value is not valid until after Send returns without error.
17219//
17220// See ListThingPrincipals for more information on using the ListThingPrincipals
17221// API call, and error handling.
17222//
17223// This method is useful when you want to inject custom logic or configuration
17224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17225//
17226//
17227//    // Example sending a request using the ListThingPrincipalsRequest method.
17228//    req, resp := client.ListThingPrincipalsRequest(params)
17229//
17230//    err := req.Send()
17231//    if err == nil { // resp is now filled
17232//        fmt.Println(resp)
17233//    }
17234func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
17235	op := &request.Operation{
17236		Name:       opListThingPrincipals,
17237		HTTPMethod: "GET",
17238		HTTPPath:   "/things/{thingName}/principals",
17239		Paginator: &request.Paginator{
17240			InputTokens:     []string{"nextToken"},
17241			OutputTokens:    []string{"nextToken"},
17242			LimitToken:      "maxResults",
17243			TruncationToken: "",
17244		},
17245	}
17246
17247	if input == nil {
17248		input = &ListThingPrincipalsInput{}
17249	}
17250
17251	output = &ListThingPrincipalsOutput{}
17252	req = c.newRequest(op, input, output)
17253	return
17254}
17255
17256// ListThingPrincipals API operation for AWS IoT.
17257//
17258// Lists the principals associated with the specified thing. A principal can
17259// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
17260// or federated identities.
17261//
17262// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17263// with awserr.Error's Code and Message methods to get detailed information about
17264// the error.
17265//
17266// See the AWS API reference guide for AWS IoT's
17267// API operation ListThingPrincipals for usage and error information.
17268//
17269// Returned Error Types:
17270//   * InvalidRequestException
17271//   The request is not valid.
17272//
17273//   * ThrottlingException
17274//   The rate exceeds the limit.
17275//
17276//   * UnauthorizedException
17277//   You are not authorized to perform this operation.
17278//
17279//   * ServiceUnavailableException
17280//   The service is temporarily unavailable.
17281//
17282//   * InternalFailureException
17283//   An unexpected error has occurred.
17284//
17285//   * ResourceNotFoundException
17286//   The specified resource does not exist.
17287//
17288func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
17289	req, out := c.ListThingPrincipalsRequest(input)
17290	return out, req.Send()
17291}
17292
17293// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
17294// the ability to pass a context and additional request options.
17295//
17296// See ListThingPrincipals for details on how to use this API operation.
17297//
17298// The context must be non-nil and will be used for request cancellation. If
17299// the context is nil a panic will occur. In the future the SDK may create
17300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17301// for more information on using Contexts.
17302func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
17303	req, out := c.ListThingPrincipalsRequest(input)
17304	req.SetContext(ctx)
17305	req.ApplyOptions(opts...)
17306	return out, req.Send()
17307}
17308
17309// ListThingPrincipalsPages iterates over the pages of a ListThingPrincipals operation,
17310// calling the "fn" function with the response data for each page. To stop
17311// iterating, return false from the fn function.
17312//
17313// See ListThingPrincipals method for more information on how to use this operation.
17314//
17315// Note: This operation can generate multiple requests to a service.
17316//
17317//    // Example iterating over at most 3 pages of a ListThingPrincipals operation.
17318//    pageNum := 0
17319//    err := client.ListThingPrincipalsPages(params,
17320//        func(page *iot.ListThingPrincipalsOutput, lastPage bool) bool {
17321//            pageNum++
17322//            fmt.Println(page)
17323//            return pageNum <= 3
17324//        })
17325//
17326func (c *IoT) ListThingPrincipalsPages(input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool) error {
17327	return c.ListThingPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
17328}
17329
17330// ListThingPrincipalsPagesWithContext same as ListThingPrincipalsPages except
17331// it takes a Context and allows setting request options on the pages.
17332//
17333// The context must be non-nil and will be used for request cancellation. If
17334// the context is nil a panic will occur. In the future the SDK may create
17335// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17336// for more information on using Contexts.
17337func (c *IoT) ListThingPrincipalsPagesWithContext(ctx aws.Context, input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool, opts ...request.Option) error {
17338	p := request.Pagination{
17339		NewRequest: func() (*request.Request, error) {
17340			var inCpy *ListThingPrincipalsInput
17341			if input != nil {
17342				tmp := *input
17343				inCpy = &tmp
17344			}
17345			req, _ := c.ListThingPrincipalsRequest(inCpy)
17346			req.SetContext(ctx)
17347			req.ApplyOptions(opts...)
17348			return req, nil
17349		},
17350	}
17351
17352	for p.Next() {
17353		if !fn(p.Page().(*ListThingPrincipalsOutput), !p.HasNextPage()) {
17354			break
17355		}
17356	}
17357
17358	return p.Err()
17359}
17360
17361const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
17362
17363// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
17364// client's request for the ListThingRegistrationTaskReports operation. The "output" return
17365// value will be populated with the request's response once the request completes
17366// successfully.
17367//
17368// Use "Send" method on the returned Request to send the API call to the service.
17369// the "output" return value is not valid until after Send returns without error.
17370//
17371// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
17372// API call, and error handling.
17373//
17374// This method is useful when you want to inject custom logic or configuration
17375// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17376//
17377//
17378//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
17379//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
17380//
17381//    err := req.Send()
17382//    if err == nil { // resp is now filled
17383//        fmt.Println(resp)
17384//    }
17385func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
17386	op := &request.Operation{
17387		Name:       opListThingRegistrationTaskReports,
17388		HTTPMethod: "GET",
17389		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
17390		Paginator: &request.Paginator{
17391			InputTokens:     []string{"nextToken"},
17392			OutputTokens:    []string{"nextToken"},
17393			LimitToken:      "maxResults",
17394			TruncationToken: "",
17395		},
17396	}
17397
17398	if input == nil {
17399		input = &ListThingRegistrationTaskReportsInput{}
17400	}
17401
17402	output = &ListThingRegistrationTaskReportsOutput{}
17403	req = c.newRequest(op, input, output)
17404	return
17405}
17406
17407// ListThingRegistrationTaskReports API operation for AWS IoT.
17408//
17409// Information about the thing registration tasks.
17410//
17411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17412// with awserr.Error's Code and Message methods to get detailed information about
17413// the error.
17414//
17415// See the AWS API reference guide for AWS IoT's
17416// API operation ListThingRegistrationTaskReports for usage and error information.
17417//
17418// Returned Error Types:
17419//   * InvalidRequestException
17420//   The request is not valid.
17421//
17422//   * ThrottlingException
17423//   The rate exceeds the limit.
17424//
17425//   * UnauthorizedException
17426//   You are not authorized to perform this operation.
17427//
17428//   * InternalFailureException
17429//   An unexpected error has occurred.
17430//
17431func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
17432	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17433	return out, req.Send()
17434}
17435
17436// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
17437// the ability to pass a context and additional request options.
17438//
17439// See ListThingRegistrationTaskReports for details on how to use this API operation.
17440//
17441// The context must be non-nil and will be used for request cancellation. If
17442// the context is nil a panic will occur. In the future the SDK may create
17443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17444// for more information on using Contexts.
17445func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
17446	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17447	req.SetContext(ctx)
17448	req.ApplyOptions(opts...)
17449	return out, req.Send()
17450}
17451
17452// ListThingRegistrationTaskReportsPages iterates over the pages of a ListThingRegistrationTaskReports operation,
17453// calling the "fn" function with the response data for each page. To stop
17454// iterating, return false from the fn function.
17455//
17456// See ListThingRegistrationTaskReports method for more information on how to use this operation.
17457//
17458// Note: This operation can generate multiple requests to a service.
17459//
17460//    // Example iterating over at most 3 pages of a ListThingRegistrationTaskReports operation.
17461//    pageNum := 0
17462//    err := client.ListThingRegistrationTaskReportsPages(params,
17463//        func(page *iot.ListThingRegistrationTaskReportsOutput, lastPage bool) bool {
17464//            pageNum++
17465//            fmt.Println(page)
17466//            return pageNum <= 3
17467//        })
17468//
17469func (c *IoT) ListThingRegistrationTaskReportsPages(input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool) error {
17470	return c.ListThingRegistrationTaskReportsPagesWithContext(aws.BackgroundContext(), input, fn)
17471}
17472
17473// ListThingRegistrationTaskReportsPagesWithContext same as ListThingRegistrationTaskReportsPages except
17474// it takes a Context and allows setting request options on the pages.
17475//
17476// The context must be non-nil and will be used for request cancellation. If
17477// the context is nil a panic will occur. In the future the SDK may create
17478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17479// for more information on using Contexts.
17480func (c *IoT) ListThingRegistrationTaskReportsPagesWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool, opts ...request.Option) error {
17481	p := request.Pagination{
17482		NewRequest: func() (*request.Request, error) {
17483			var inCpy *ListThingRegistrationTaskReportsInput
17484			if input != nil {
17485				tmp := *input
17486				inCpy = &tmp
17487			}
17488			req, _ := c.ListThingRegistrationTaskReportsRequest(inCpy)
17489			req.SetContext(ctx)
17490			req.ApplyOptions(opts...)
17491			return req, nil
17492		},
17493	}
17494
17495	for p.Next() {
17496		if !fn(p.Page().(*ListThingRegistrationTaskReportsOutput), !p.HasNextPage()) {
17497			break
17498		}
17499	}
17500
17501	return p.Err()
17502}
17503
17504const opListThingRegistrationTasks = "ListThingRegistrationTasks"
17505
17506// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
17507// client's request for the ListThingRegistrationTasks operation. The "output" return
17508// value will be populated with the request's response once the request completes
17509// successfully.
17510//
17511// Use "Send" method on the returned Request to send the API call to the service.
17512// the "output" return value is not valid until after Send returns without error.
17513//
17514// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
17515// API call, and error handling.
17516//
17517// This method is useful when you want to inject custom logic or configuration
17518// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17519//
17520//
17521//    // Example sending a request using the ListThingRegistrationTasksRequest method.
17522//    req, resp := client.ListThingRegistrationTasksRequest(params)
17523//
17524//    err := req.Send()
17525//    if err == nil { // resp is now filled
17526//        fmt.Println(resp)
17527//    }
17528func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
17529	op := &request.Operation{
17530		Name:       opListThingRegistrationTasks,
17531		HTTPMethod: "GET",
17532		HTTPPath:   "/thing-registration-tasks",
17533		Paginator: &request.Paginator{
17534			InputTokens:     []string{"nextToken"},
17535			OutputTokens:    []string{"nextToken"},
17536			LimitToken:      "maxResults",
17537			TruncationToken: "",
17538		},
17539	}
17540
17541	if input == nil {
17542		input = &ListThingRegistrationTasksInput{}
17543	}
17544
17545	output = &ListThingRegistrationTasksOutput{}
17546	req = c.newRequest(op, input, output)
17547	return
17548}
17549
17550// ListThingRegistrationTasks API operation for AWS IoT.
17551//
17552// List bulk thing provisioning tasks.
17553//
17554// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17555// with awserr.Error's Code and Message methods to get detailed information about
17556// the error.
17557//
17558// See the AWS API reference guide for AWS IoT's
17559// API operation ListThingRegistrationTasks for usage and error information.
17560//
17561// Returned Error Types:
17562//   * InvalidRequestException
17563//   The request is not valid.
17564//
17565//   * ThrottlingException
17566//   The rate exceeds the limit.
17567//
17568//   * UnauthorizedException
17569//   You are not authorized to perform this operation.
17570//
17571//   * InternalFailureException
17572//   An unexpected error has occurred.
17573//
17574func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
17575	req, out := c.ListThingRegistrationTasksRequest(input)
17576	return out, req.Send()
17577}
17578
17579// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
17580// the ability to pass a context and additional request options.
17581//
17582// See ListThingRegistrationTasks for details on how to use this API operation.
17583//
17584// The context must be non-nil and will be used for request cancellation. If
17585// the context is nil a panic will occur. In the future the SDK may create
17586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17587// for more information on using Contexts.
17588func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
17589	req, out := c.ListThingRegistrationTasksRequest(input)
17590	req.SetContext(ctx)
17591	req.ApplyOptions(opts...)
17592	return out, req.Send()
17593}
17594
17595// ListThingRegistrationTasksPages iterates over the pages of a ListThingRegistrationTasks operation,
17596// calling the "fn" function with the response data for each page. To stop
17597// iterating, return false from the fn function.
17598//
17599// See ListThingRegistrationTasks method for more information on how to use this operation.
17600//
17601// Note: This operation can generate multiple requests to a service.
17602//
17603//    // Example iterating over at most 3 pages of a ListThingRegistrationTasks operation.
17604//    pageNum := 0
17605//    err := client.ListThingRegistrationTasksPages(params,
17606//        func(page *iot.ListThingRegistrationTasksOutput, lastPage bool) bool {
17607//            pageNum++
17608//            fmt.Println(page)
17609//            return pageNum <= 3
17610//        })
17611//
17612func (c *IoT) ListThingRegistrationTasksPages(input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool) error {
17613	return c.ListThingRegistrationTasksPagesWithContext(aws.BackgroundContext(), input, fn)
17614}
17615
17616// ListThingRegistrationTasksPagesWithContext same as ListThingRegistrationTasksPages except
17617// it takes a Context and allows setting request options on the pages.
17618//
17619// The context must be non-nil and will be used for request cancellation. If
17620// the context is nil a panic will occur. In the future the SDK may create
17621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17622// for more information on using Contexts.
17623func (c *IoT) ListThingRegistrationTasksPagesWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool, opts ...request.Option) error {
17624	p := request.Pagination{
17625		NewRequest: func() (*request.Request, error) {
17626			var inCpy *ListThingRegistrationTasksInput
17627			if input != nil {
17628				tmp := *input
17629				inCpy = &tmp
17630			}
17631			req, _ := c.ListThingRegistrationTasksRequest(inCpy)
17632			req.SetContext(ctx)
17633			req.ApplyOptions(opts...)
17634			return req, nil
17635		},
17636	}
17637
17638	for p.Next() {
17639		if !fn(p.Page().(*ListThingRegistrationTasksOutput), !p.HasNextPage()) {
17640			break
17641		}
17642	}
17643
17644	return p.Err()
17645}
17646
17647const opListThingTypes = "ListThingTypes"
17648
17649// ListThingTypesRequest generates a "aws/request.Request" representing the
17650// client's request for the ListThingTypes operation. The "output" return
17651// value will be populated with the request's response once the request completes
17652// successfully.
17653//
17654// Use "Send" method on the returned Request to send the API call to the service.
17655// the "output" return value is not valid until after Send returns without error.
17656//
17657// See ListThingTypes for more information on using the ListThingTypes
17658// API call, and error handling.
17659//
17660// This method is useful when you want to inject custom logic or configuration
17661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17662//
17663//
17664//    // Example sending a request using the ListThingTypesRequest method.
17665//    req, resp := client.ListThingTypesRequest(params)
17666//
17667//    err := req.Send()
17668//    if err == nil { // resp is now filled
17669//        fmt.Println(resp)
17670//    }
17671func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
17672	op := &request.Operation{
17673		Name:       opListThingTypes,
17674		HTTPMethod: "GET",
17675		HTTPPath:   "/thing-types",
17676		Paginator: &request.Paginator{
17677			InputTokens:     []string{"nextToken"},
17678			OutputTokens:    []string{"nextToken"},
17679			LimitToken:      "maxResults",
17680			TruncationToken: "",
17681		},
17682	}
17683
17684	if input == nil {
17685		input = &ListThingTypesInput{}
17686	}
17687
17688	output = &ListThingTypesOutput{}
17689	req = c.newRequest(op, input, output)
17690	return
17691}
17692
17693// ListThingTypes API operation for AWS IoT.
17694//
17695// Lists the existing thing types.
17696//
17697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17698// with awserr.Error's Code and Message methods to get detailed information about
17699// the error.
17700//
17701// See the AWS API reference guide for AWS IoT's
17702// API operation ListThingTypes for usage and error information.
17703//
17704// Returned Error Types:
17705//   * InvalidRequestException
17706//   The request is not valid.
17707//
17708//   * ThrottlingException
17709//   The rate exceeds the limit.
17710//
17711//   * UnauthorizedException
17712//   You are not authorized to perform this operation.
17713//
17714//   * ServiceUnavailableException
17715//   The service is temporarily unavailable.
17716//
17717//   * InternalFailureException
17718//   An unexpected error has occurred.
17719//
17720func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
17721	req, out := c.ListThingTypesRequest(input)
17722	return out, req.Send()
17723}
17724
17725// ListThingTypesWithContext is the same as ListThingTypes with the addition of
17726// the ability to pass a context and additional request options.
17727//
17728// See ListThingTypes for details on how to use this API operation.
17729//
17730// The context must be non-nil and will be used for request cancellation. If
17731// the context is nil a panic will occur. In the future the SDK may create
17732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17733// for more information on using Contexts.
17734func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
17735	req, out := c.ListThingTypesRequest(input)
17736	req.SetContext(ctx)
17737	req.ApplyOptions(opts...)
17738	return out, req.Send()
17739}
17740
17741// ListThingTypesPages iterates over the pages of a ListThingTypes operation,
17742// calling the "fn" function with the response data for each page. To stop
17743// iterating, return false from the fn function.
17744//
17745// See ListThingTypes method for more information on how to use this operation.
17746//
17747// Note: This operation can generate multiple requests to a service.
17748//
17749//    // Example iterating over at most 3 pages of a ListThingTypes operation.
17750//    pageNum := 0
17751//    err := client.ListThingTypesPages(params,
17752//        func(page *iot.ListThingTypesOutput, lastPage bool) bool {
17753//            pageNum++
17754//            fmt.Println(page)
17755//            return pageNum <= 3
17756//        })
17757//
17758func (c *IoT) ListThingTypesPages(input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool) error {
17759	return c.ListThingTypesPagesWithContext(aws.BackgroundContext(), input, fn)
17760}
17761
17762// ListThingTypesPagesWithContext same as ListThingTypesPages except
17763// it takes a Context and allows setting request options on the pages.
17764//
17765// The context must be non-nil and will be used for request cancellation. If
17766// the context is nil a panic will occur. In the future the SDK may create
17767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17768// for more information on using Contexts.
17769func (c *IoT) ListThingTypesPagesWithContext(ctx aws.Context, input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool, opts ...request.Option) error {
17770	p := request.Pagination{
17771		NewRequest: func() (*request.Request, error) {
17772			var inCpy *ListThingTypesInput
17773			if input != nil {
17774				tmp := *input
17775				inCpy = &tmp
17776			}
17777			req, _ := c.ListThingTypesRequest(inCpy)
17778			req.SetContext(ctx)
17779			req.ApplyOptions(opts...)
17780			return req, nil
17781		},
17782	}
17783
17784	for p.Next() {
17785		if !fn(p.Page().(*ListThingTypesOutput), !p.HasNextPage()) {
17786			break
17787		}
17788	}
17789
17790	return p.Err()
17791}
17792
17793const opListThings = "ListThings"
17794
17795// ListThingsRequest generates a "aws/request.Request" representing the
17796// client's request for the ListThings operation. The "output" return
17797// value will be populated with the request's response once the request completes
17798// successfully.
17799//
17800// Use "Send" method on the returned Request to send the API call to the service.
17801// the "output" return value is not valid until after Send returns without error.
17802//
17803// See ListThings for more information on using the ListThings
17804// API call, and error handling.
17805//
17806// This method is useful when you want to inject custom logic or configuration
17807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17808//
17809//
17810//    // Example sending a request using the ListThingsRequest method.
17811//    req, resp := client.ListThingsRequest(params)
17812//
17813//    err := req.Send()
17814//    if err == nil { // resp is now filled
17815//        fmt.Println(resp)
17816//    }
17817func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
17818	op := &request.Operation{
17819		Name:       opListThings,
17820		HTTPMethod: "GET",
17821		HTTPPath:   "/things",
17822		Paginator: &request.Paginator{
17823			InputTokens:     []string{"nextToken"},
17824			OutputTokens:    []string{"nextToken"},
17825			LimitToken:      "maxResults",
17826			TruncationToken: "",
17827		},
17828	}
17829
17830	if input == nil {
17831		input = &ListThingsInput{}
17832	}
17833
17834	output = &ListThingsOutput{}
17835	req = c.newRequest(op, input, output)
17836	return
17837}
17838
17839// ListThings API operation for AWS IoT.
17840//
17841// Lists your things. Use the attributeName and attributeValue parameters to
17842// filter your things. For example, calling ListThings with attributeName=Color
17843// and attributeValue=Red retrieves all things in the registry that contain
17844// an attribute Color with the value Red.
17845//
17846// You will not be charged for calling this API if an Access denied error is
17847// returned. You will also not be charged if no attributes or pagination token
17848// was provided in request and no pagination token and no results were returned.
17849//
17850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17851// with awserr.Error's Code and Message methods to get detailed information about
17852// the error.
17853//
17854// See the AWS API reference guide for AWS IoT's
17855// API operation ListThings for usage and error information.
17856//
17857// Returned Error Types:
17858//   * InvalidRequestException
17859//   The request is not valid.
17860//
17861//   * ThrottlingException
17862//   The rate exceeds the limit.
17863//
17864//   * UnauthorizedException
17865//   You are not authorized to perform this operation.
17866//
17867//   * ServiceUnavailableException
17868//   The service is temporarily unavailable.
17869//
17870//   * InternalFailureException
17871//   An unexpected error has occurred.
17872//
17873func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
17874	req, out := c.ListThingsRequest(input)
17875	return out, req.Send()
17876}
17877
17878// ListThingsWithContext is the same as ListThings with the addition of
17879// the ability to pass a context and additional request options.
17880//
17881// See ListThings for details on how to use this API operation.
17882//
17883// The context must be non-nil and will be used for request cancellation. If
17884// the context is nil a panic will occur. In the future the SDK may create
17885// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17886// for more information on using Contexts.
17887func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
17888	req, out := c.ListThingsRequest(input)
17889	req.SetContext(ctx)
17890	req.ApplyOptions(opts...)
17891	return out, req.Send()
17892}
17893
17894// ListThingsPages iterates over the pages of a ListThings operation,
17895// calling the "fn" function with the response data for each page. To stop
17896// iterating, return false from the fn function.
17897//
17898// See ListThings method for more information on how to use this operation.
17899//
17900// Note: This operation can generate multiple requests to a service.
17901//
17902//    // Example iterating over at most 3 pages of a ListThings operation.
17903//    pageNum := 0
17904//    err := client.ListThingsPages(params,
17905//        func(page *iot.ListThingsOutput, lastPage bool) bool {
17906//            pageNum++
17907//            fmt.Println(page)
17908//            return pageNum <= 3
17909//        })
17910//
17911func (c *IoT) ListThingsPages(input *ListThingsInput, fn func(*ListThingsOutput, bool) bool) error {
17912	return c.ListThingsPagesWithContext(aws.BackgroundContext(), input, fn)
17913}
17914
17915// ListThingsPagesWithContext same as ListThingsPages except
17916// it takes a Context and allows setting request options on the pages.
17917//
17918// The context must be non-nil and will be used for request cancellation. If
17919// the context is nil a panic will occur. In the future the SDK may create
17920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17921// for more information on using Contexts.
17922func (c *IoT) ListThingsPagesWithContext(ctx aws.Context, input *ListThingsInput, fn func(*ListThingsOutput, bool) bool, opts ...request.Option) error {
17923	p := request.Pagination{
17924		NewRequest: func() (*request.Request, error) {
17925			var inCpy *ListThingsInput
17926			if input != nil {
17927				tmp := *input
17928				inCpy = &tmp
17929			}
17930			req, _ := c.ListThingsRequest(inCpy)
17931			req.SetContext(ctx)
17932			req.ApplyOptions(opts...)
17933			return req, nil
17934		},
17935	}
17936
17937	for p.Next() {
17938		if !fn(p.Page().(*ListThingsOutput), !p.HasNextPage()) {
17939			break
17940		}
17941	}
17942
17943	return p.Err()
17944}
17945
17946const opListThingsInBillingGroup = "ListThingsInBillingGroup"
17947
17948// ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
17949// client's request for the ListThingsInBillingGroup operation. The "output" return
17950// value will be populated with the request's response once the request completes
17951// successfully.
17952//
17953// Use "Send" method on the returned Request to send the API call to the service.
17954// the "output" return value is not valid until after Send returns without error.
17955//
17956// See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
17957// API call, and error handling.
17958//
17959// This method is useful when you want to inject custom logic or configuration
17960// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17961//
17962//
17963//    // Example sending a request using the ListThingsInBillingGroupRequest method.
17964//    req, resp := client.ListThingsInBillingGroupRequest(params)
17965//
17966//    err := req.Send()
17967//    if err == nil { // resp is now filled
17968//        fmt.Println(resp)
17969//    }
17970func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
17971	op := &request.Operation{
17972		Name:       opListThingsInBillingGroup,
17973		HTTPMethod: "GET",
17974		HTTPPath:   "/billing-groups/{billingGroupName}/things",
17975		Paginator: &request.Paginator{
17976			InputTokens:     []string{"nextToken"},
17977			OutputTokens:    []string{"nextToken"},
17978			LimitToken:      "maxResults",
17979			TruncationToken: "",
17980		},
17981	}
17982
17983	if input == nil {
17984		input = &ListThingsInBillingGroupInput{}
17985	}
17986
17987	output = &ListThingsInBillingGroupOutput{}
17988	req = c.newRequest(op, input, output)
17989	return
17990}
17991
17992// ListThingsInBillingGroup API operation for AWS IoT.
17993//
17994// Lists the things you have added to the given billing group.
17995//
17996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17997// with awserr.Error's Code and Message methods to get detailed information about
17998// the error.
17999//
18000// See the AWS API reference guide for AWS IoT's
18001// API operation ListThingsInBillingGroup for usage and error information.
18002//
18003// Returned Error Types:
18004//   * InvalidRequestException
18005//   The request is not valid.
18006//
18007//   * InternalFailureException
18008//   An unexpected error has occurred.
18009//
18010//   * ResourceNotFoundException
18011//   The specified resource does not exist.
18012//
18013//   * ThrottlingException
18014//   The rate exceeds the limit.
18015//
18016func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
18017	req, out := c.ListThingsInBillingGroupRequest(input)
18018	return out, req.Send()
18019}
18020
18021// ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
18022// the ability to pass a context and additional request options.
18023//
18024// See ListThingsInBillingGroup for details on how to use this API operation.
18025//
18026// The context must be non-nil and will be used for request cancellation. If
18027// the context is nil a panic will occur. In the future the SDK may create
18028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18029// for more information on using Contexts.
18030func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
18031	req, out := c.ListThingsInBillingGroupRequest(input)
18032	req.SetContext(ctx)
18033	req.ApplyOptions(opts...)
18034	return out, req.Send()
18035}
18036
18037// ListThingsInBillingGroupPages iterates over the pages of a ListThingsInBillingGroup operation,
18038// calling the "fn" function with the response data for each page. To stop
18039// iterating, return false from the fn function.
18040//
18041// See ListThingsInBillingGroup method for more information on how to use this operation.
18042//
18043// Note: This operation can generate multiple requests to a service.
18044//
18045//    // Example iterating over at most 3 pages of a ListThingsInBillingGroup operation.
18046//    pageNum := 0
18047//    err := client.ListThingsInBillingGroupPages(params,
18048//        func(page *iot.ListThingsInBillingGroupOutput, lastPage bool) bool {
18049//            pageNum++
18050//            fmt.Println(page)
18051//            return pageNum <= 3
18052//        })
18053//
18054func (c *IoT) ListThingsInBillingGroupPages(input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool) error {
18055	return c.ListThingsInBillingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18056}
18057
18058// ListThingsInBillingGroupPagesWithContext same as ListThingsInBillingGroupPages except
18059// it takes a Context and allows setting request options on the pages.
18060//
18061// The context must be non-nil and will be used for request cancellation. If
18062// the context is nil a panic will occur. In the future the SDK may create
18063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18064// for more information on using Contexts.
18065func (c *IoT) ListThingsInBillingGroupPagesWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool, opts ...request.Option) error {
18066	p := request.Pagination{
18067		NewRequest: func() (*request.Request, error) {
18068			var inCpy *ListThingsInBillingGroupInput
18069			if input != nil {
18070				tmp := *input
18071				inCpy = &tmp
18072			}
18073			req, _ := c.ListThingsInBillingGroupRequest(inCpy)
18074			req.SetContext(ctx)
18075			req.ApplyOptions(opts...)
18076			return req, nil
18077		},
18078	}
18079
18080	for p.Next() {
18081		if !fn(p.Page().(*ListThingsInBillingGroupOutput), !p.HasNextPage()) {
18082			break
18083		}
18084	}
18085
18086	return p.Err()
18087}
18088
18089const opListThingsInThingGroup = "ListThingsInThingGroup"
18090
18091// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
18092// client's request for the ListThingsInThingGroup operation. The "output" return
18093// value will be populated with the request's response once the request completes
18094// successfully.
18095//
18096// Use "Send" method on the returned Request to send the API call to the service.
18097// the "output" return value is not valid until after Send returns without error.
18098//
18099// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
18100// API call, and error handling.
18101//
18102// This method is useful when you want to inject custom logic or configuration
18103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18104//
18105//
18106//    // Example sending a request using the ListThingsInThingGroupRequest method.
18107//    req, resp := client.ListThingsInThingGroupRequest(params)
18108//
18109//    err := req.Send()
18110//    if err == nil { // resp is now filled
18111//        fmt.Println(resp)
18112//    }
18113func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
18114	op := &request.Operation{
18115		Name:       opListThingsInThingGroup,
18116		HTTPMethod: "GET",
18117		HTTPPath:   "/thing-groups/{thingGroupName}/things",
18118		Paginator: &request.Paginator{
18119			InputTokens:     []string{"nextToken"},
18120			OutputTokens:    []string{"nextToken"},
18121			LimitToken:      "maxResults",
18122			TruncationToken: "",
18123		},
18124	}
18125
18126	if input == nil {
18127		input = &ListThingsInThingGroupInput{}
18128	}
18129
18130	output = &ListThingsInThingGroupOutput{}
18131	req = c.newRequest(op, input, output)
18132	return
18133}
18134
18135// ListThingsInThingGroup API operation for AWS IoT.
18136//
18137// Lists the things in the specified group.
18138//
18139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18140// with awserr.Error's Code and Message methods to get detailed information about
18141// the error.
18142//
18143// See the AWS API reference guide for AWS IoT's
18144// API operation ListThingsInThingGroup for usage and error information.
18145//
18146// Returned Error Types:
18147//   * InvalidRequestException
18148//   The request is not valid.
18149//
18150//   * InternalFailureException
18151//   An unexpected error has occurred.
18152//
18153//   * ResourceNotFoundException
18154//   The specified resource does not exist.
18155//
18156//   * ThrottlingException
18157//   The rate exceeds the limit.
18158//
18159func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
18160	req, out := c.ListThingsInThingGroupRequest(input)
18161	return out, req.Send()
18162}
18163
18164// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
18165// the ability to pass a context and additional request options.
18166//
18167// See ListThingsInThingGroup for details on how to use this API operation.
18168//
18169// The context must be non-nil and will be used for request cancellation. If
18170// the context is nil a panic will occur. In the future the SDK may create
18171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18172// for more information on using Contexts.
18173func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
18174	req, out := c.ListThingsInThingGroupRequest(input)
18175	req.SetContext(ctx)
18176	req.ApplyOptions(opts...)
18177	return out, req.Send()
18178}
18179
18180// ListThingsInThingGroupPages iterates over the pages of a ListThingsInThingGroup operation,
18181// calling the "fn" function with the response data for each page. To stop
18182// iterating, return false from the fn function.
18183//
18184// See ListThingsInThingGroup method for more information on how to use this operation.
18185//
18186// Note: This operation can generate multiple requests to a service.
18187//
18188//    // Example iterating over at most 3 pages of a ListThingsInThingGroup operation.
18189//    pageNum := 0
18190//    err := client.ListThingsInThingGroupPages(params,
18191//        func(page *iot.ListThingsInThingGroupOutput, lastPage bool) bool {
18192//            pageNum++
18193//            fmt.Println(page)
18194//            return pageNum <= 3
18195//        })
18196//
18197func (c *IoT) ListThingsInThingGroupPages(input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool) error {
18198	return c.ListThingsInThingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18199}
18200
18201// ListThingsInThingGroupPagesWithContext same as ListThingsInThingGroupPages except
18202// it takes a Context and allows setting request options on the pages.
18203//
18204// The context must be non-nil and will be used for request cancellation. If
18205// the context is nil a panic will occur. In the future the SDK may create
18206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18207// for more information on using Contexts.
18208func (c *IoT) ListThingsInThingGroupPagesWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool, opts ...request.Option) error {
18209	p := request.Pagination{
18210		NewRequest: func() (*request.Request, error) {
18211			var inCpy *ListThingsInThingGroupInput
18212			if input != nil {
18213				tmp := *input
18214				inCpy = &tmp
18215			}
18216			req, _ := c.ListThingsInThingGroupRequest(inCpy)
18217			req.SetContext(ctx)
18218			req.ApplyOptions(opts...)
18219			return req, nil
18220		},
18221	}
18222
18223	for p.Next() {
18224		if !fn(p.Page().(*ListThingsInThingGroupOutput), !p.HasNextPage()) {
18225			break
18226		}
18227	}
18228
18229	return p.Err()
18230}
18231
18232const opListTopicRuleDestinations = "ListTopicRuleDestinations"
18233
18234// ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
18235// client's request for the ListTopicRuleDestinations operation. The "output" return
18236// value will be populated with the request's response once the request completes
18237// successfully.
18238//
18239// Use "Send" method on the returned Request to send the API call to the service.
18240// the "output" return value is not valid until after Send returns without error.
18241//
18242// See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
18243// API call, and error handling.
18244//
18245// This method is useful when you want to inject custom logic or configuration
18246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18247//
18248//
18249//    // Example sending a request using the ListTopicRuleDestinationsRequest method.
18250//    req, resp := client.ListTopicRuleDestinationsRequest(params)
18251//
18252//    err := req.Send()
18253//    if err == nil { // resp is now filled
18254//        fmt.Println(resp)
18255//    }
18256func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
18257	op := &request.Operation{
18258		Name:       opListTopicRuleDestinations,
18259		HTTPMethod: "GET",
18260		HTTPPath:   "/destinations",
18261		Paginator: &request.Paginator{
18262			InputTokens:     []string{"nextToken"},
18263			OutputTokens:    []string{"nextToken"},
18264			LimitToken:      "maxResults",
18265			TruncationToken: "",
18266		},
18267	}
18268
18269	if input == nil {
18270		input = &ListTopicRuleDestinationsInput{}
18271	}
18272
18273	output = &ListTopicRuleDestinationsOutput{}
18274	req = c.newRequest(op, input, output)
18275	return
18276}
18277
18278// ListTopicRuleDestinations API operation for AWS IoT.
18279//
18280// Lists all the topic rule destinations in your AWS account.
18281//
18282// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18283// with awserr.Error's Code and Message methods to get detailed information about
18284// the error.
18285//
18286// See the AWS API reference guide for AWS IoT's
18287// API operation ListTopicRuleDestinations for usage and error information.
18288//
18289// Returned Error Types:
18290//   * InternalException
18291//   An unexpected error has occurred.
18292//
18293//   * InvalidRequestException
18294//   The request is not valid.
18295//
18296//   * ServiceUnavailableException
18297//   The service is temporarily unavailable.
18298//
18299//   * UnauthorizedException
18300//   You are not authorized to perform this operation.
18301//
18302func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
18303	req, out := c.ListTopicRuleDestinationsRequest(input)
18304	return out, req.Send()
18305}
18306
18307// ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
18308// the ability to pass a context and additional request options.
18309//
18310// See ListTopicRuleDestinations for details on how to use this API operation.
18311//
18312// The context must be non-nil and will be used for request cancellation. If
18313// the context is nil a panic will occur. In the future the SDK may create
18314// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18315// for more information on using Contexts.
18316func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
18317	req, out := c.ListTopicRuleDestinationsRequest(input)
18318	req.SetContext(ctx)
18319	req.ApplyOptions(opts...)
18320	return out, req.Send()
18321}
18322
18323// ListTopicRuleDestinationsPages iterates over the pages of a ListTopicRuleDestinations operation,
18324// calling the "fn" function with the response data for each page. To stop
18325// iterating, return false from the fn function.
18326//
18327// See ListTopicRuleDestinations method for more information on how to use this operation.
18328//
18329// Note: This operation can generate multiple requests to a service.
18330//
18331//    // Example iterating over at most 3 pages of a ListTopicRuleDestinations operation.
18332//    pageNum := 0
18333//    err := client.ListTopicRuleDestinationsPages(params,
18334//        func(page *iot.ListTopicRuleDestinationsOutput, lastPage bool) bool {
18335//            pageNum++
18336//            fmt.Println(page)
18337//            return pageNum <= 3
18338//        })
18339//
18340func (c *IoT) ListTopicRuleDestinationsPages(input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool) error {
18341	return c.ListTopicRuleDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
18342}
18343
18344// ListTopicRuleDestinationsPagesWithContext same as ListTopicRuleDestinationsPages except
18345// it takes a Context and allows setting request options on the pages.
18346//
18347// The context must be non-nil and will be used for request cancellation. If
18348// the context is nil a panic will occur. In the future the SDK may create
18349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18350// for more information on using Contexts.
18351func (c *IoT) ListTopicRuleDestinationsPagesWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool, opts ...request.Option) error {
18352	p := request.Pagination{
18353		NewRequest: func() (*request.Request, error) {
18354			var inCpy *ListTopicRuleDestinationsInput
18355			if input != nil {
18356				tmp := *input
18357				inCpy = &tmp
18358			}
18359			req, _ := c.ListTopicRuleDestinationsRequest(inCpy)
18360			req.SetContext(ctx)
18361			req.ApplyOptions(opts...)
18362			return req, nil
18363		},
18364	}
18365
18366	for p.Next() {
18367		if !fn(p.Page().(*ListTopicRuleDestinationsOutput), !p.HasNextPage()) {
18368			break
18369		}
18370	}
18371
18372	return p.Err()
18373}
18374
18375const opListTopicRules = "ListTopicRules"
18376
18377// ListTopicRulesRequest generates a "aws/request.Request" representing the
18378// client's request for the ListTopicRules operation. The "output" return
18379// value will be populated with the request's response once the request completes
18380// successfully.
18381//
18382// Use "Send" method on the returned Request to send the API call to the service.
18383// the "output" return value is not valid until after Send returns without error.
18384//
18385// See ListTopicRules for more information on using the ListTopicRules
18386// API call, and error handling.
18387//
18388// This method is useful when you want to inject custom logic or configuration
18389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18390//
18391//
18392//    // Example sending a request using the ListTopicRulesRequest method.
18393//    req, resp := client.ListTopicRulesRequest(params)
18394//
18395//    err := req.Send()
18396//    if err == nil { // resp is now filled
18397//        fmt.Println(resp)
18398//    }
18399func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
18400	op := &request.Operation{
18401		Name:       opListTopicRules,
18402		HTTPMethod: "GET",
18403		HTTPPath:   "/rules",
18404		Paginator: &request.Paginator{
18405			InputTokens:     []string{"nextToken"},
18406			OutputTokens:    []string{"nextToken"},
18407			LimitToken:      "maxResults",
18408			TruncationToken: "",
18409		},
18410	}
18411
18412	if input == nil {
18413		input = &ListTopicRulesInput{}
18414	}
18415
18416	output = &ListTopicRulesOutput{}
18417	req = c.newRequest(op, input, output)
18418	return
18419}
18420
18421// ListTopicRules API operation for AWS IoT.
18422//
18423// Lists the rules for the specific topic.
18424//
18425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18426// with awserr.Error's Code and Message methods to get detailed information about
18427// the error.
18428//
18429// See the AWS API reference guide for AWS IoT's
18430// API operation ListTopicRules for usage and error information.
18431//
18432// Returned Error Types:
18433//   * InternalException
18434//   An unexpected error has occurred.
18435//
18436//   * InvalidRequestException
18437//   The request is not valid.
18438//
18439//   * ServiceUnavailableException
18440//   The service is temporarily unavailable.
18441//
18442func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
18443	req, out := c.ListTopicRulesRequest(input)
18444	return out, req.Send()
18445}
18446
18447// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
18448// the ability to pass a context and additional request options.
18449//
18450// See ListTopicRules for details on how to use this API operation.
18451//
18452// The context must be non-nil and will be used for request cancellation. If
18453// the context is nil a panic will occur. In the future the SDK may create
18454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18455// for more information on using Contexts.
18456func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
18457	req, out := c.ListTopicRulesRequest(input)
18458	req.SetContext(ctx)
18459	req.ApplyOptions(opts...)
18460	return out, req.Send()
18461}
18462
18463// ListTopicRulesPages iterates over the pages of a ListTopicRules operation,
18464// calling the "fn" function with the response data for each page. To stop
18465// iterating, return false from the fn function.
18466//
18467// See ListTopicRules method for more information on how to use this operation.
18468//
18469// Note: This operation can generate multiple requests to a service.
18470//
18471//    // Example iterating over at most 3 pages of a ListTopicRules operation.
18472//    pageNum := 0
18473//    err := client.ListTopicRulesPages(params,
18474//        func(page *iot.ListTopicRulesOutput, lastPage bool) bool {
18475//            pageNum++
18476//            fmt.Println(page)
18477//            return pageNum <= 3
18478//        })
18479//
18480func (c *IoT) ListTopicRulesPages(input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool) error {
18481	return c.ListTopicRulesPagesWithContext(aws.BackgroundContext(), input, fn)
18482}
18483
18484// ListTopicRulesPagesWithContext same as ListTopicRulesPages except
18485// it takes a Context and allows setting request options on the pages.
18486//
18487// The context must be non-nil and will be used for request cancellation. If
18488// the context is nil a panic will occur. In the future the SDK may create
18489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18490// for more information on using Contexts.
18491func (c *IoT) ListTopicRulesPagesWithContext(ctx aws.Context, input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool, opts ...request.Option) error {
18492	p := request.Pagination{
18493		NewRequest: func() (*request.Request, error) {
18494			var inCpy *ListTopicRulesInput
18495			if input != nil {
18496				tmp := *input
18497				inCpy = &tmp
18498			}
18499			req, _ := c.ListTopicRulesRequest(inCpy)
18500			req.SetContext(ctx)
18501			req.ApplyOptions(opts...)
18502			return req, nil
18503		},
18504	}
18505
18506	for p.Next() {
18507		if !fn(p.Page().(*ListTopicRulesOutput), !p.HasNextPage()) {
18508			break
18509		}
18510	}
18511
18512	return p.Err()
18513}
18514
18515const opListV2LoggingLevels = "ListV2LoggingLevels"
18516
18517// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
18518// client's request for the ListV2LoggingLevels operation. The "output" return
18519// value will be populated with the request's response once the request completes
18520// successfully.
18521//
18522// Use "Send" method on the returned Request to send the API call to the service.
18523// the "output" return value is not valid until after Send returns without error.
18524//
18525// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
18526// API call, and error handling.
18527//
18528// This method is useful when you want to inject custom logic or configuration
18529// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18530//
18531//
18532//    // Example sending a request using the ListV2LoggingLevelsRequest method.
18533//    req, resp := client.ListV2LoggingLevelsRequest(params)
18534//
18535//    err := req.Send()
18536//    if err == nil { // resp is now filled
18537//        fmt.Println(resp)
18538//    }
18539func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
18540	op := &request.Operation{
18541		Name:       opListV2LoggingLevels,
18542		HTTPMethod: "GET",
18543		HTTPPath:   "/v2LoggingLevel",
18544		Paginator: &request.Paginator{
18545			InputTokens:     []string{"nextToken"},
18546			OutputTokens:    []string{"nextToken"},
18547			LimitToken:      "maxResults",
18548			TruncationToken: "",
18549		},
18550	}
18551
18552	if input == nil {
18553		input = &ListV2LoggingLevelsInput{}
18554	}
18555
18556	output = &ListV2LoggingLevelsOutput{}
18557	req = c.newRequest(op, input, output)
18558	return
18559}
18560
18561// ListV2LoggingLevels API operation for AWS IoT.
18562//
18563// Lists logging levels.
18564//
18565// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18566// with awserr.Error's Code and Message methods to get detailed information about
18567// the error.
18568//
18569// See the AWS API reference guide for AWS IoT's
18570// API operation ListV2LoggingLevels for usage and error information.
18571//
18572// Returned Error Types:
18573//   * InternalException
18574//   An unexpected error has occurred.
18575//
18576//   * NotConfiguredException
18577//   The resource is not configured.
18578//
18579//   * InvalidRequestException
18580//   The request is not valid.
18581//
18582//   * ServiceUnavailableException
18583//   The service is temporarily unavailable.
18584//
18585func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
18586	req, out := c.ListV2LoggingLevelsRequest(input)
18587	return out, req.Send()
18588}
18589
18590// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
18591// the ability to pass a context and additional request options.
18592//
18593// See ListV2LoggingLevels for details on how to use this API operation.
18594//
18595// The context must be non-nil and will be used for request cancellation. If
18596// the context is nil a panic will occur. In the future the SDK may create
18597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18598// for more information on using Contexts.
18599func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
18600	req, out := c.ListV2LoggingLevelsRequest(input)
18601	req.SetContext(ctx)
18602	req.ApplyOptions(opts...)
18603	return out, req.Send()
18604}
18605
18606// ListV2LoggingLevelsPages iterates over the pages of a ListV2LoggingLevels operation,
18607// calling the "fn" function with the response data for each page. To stop
18608// iterating, return false from the fn function.
18609//
18610// See ListV2LoggingLevels method for more information on how to use this operation.
18611//
18612// Note: This operation can generate multiple requests to a service.
18613//
18614//    // Example iterating over at most 3 pages of a ListV2LoggingLevels operation.
18615//    pageNum := 0
18616//    err := client.ListV2LoggingLevelsPages(params,
18617//        func(page *iot.ListV2LoggingLevelsOutput, lastPage bool) bool {
18618//            pageNum++
18619//            fmt.Println(page)
18620//            return pageNum <= 3
18621//        })
18622//
18623func (c *IoT) ListV2LoggingLevelsPages(input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool) error {
18624	return c.ListV2LoggingLevelsPagesWithContext(aws.BackgroundContext(), input, fn)
18625}
18626
18627// ListV2LoggingLevelsPagesWithContext same as ListV2LoggingLevelsPages except
18628// it takes a Context and allows setting request options on the pages.
18629//
18630// The context must be non-nil and will be used for request cancellation. If
18631// the context is nil a panic will occur. In the future the SDK may create
18632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18633// for more information on using Contexts.
18634func (c *IoT) ListV2LoggingLevelsPagesWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool, opts ...request.Option) error {
18635	p := request.Pagination{
18636		NewRequest: func() (*request.Request, error) {
18637			var inCpy *ListV2LoggingLevelsInput
18638			if input != nil {
18639				tmp := *input
18640				inCpy = &tmp
18641			}
18642			req, _ := c.ListV2LoggingLevelsRequest(inCpy)
18643			req.SetContext(ctx)
18644			req.ApplyOptions(opts...)
18645			return req, nil
18646		},
18647	}
18648
18649	for p.Next() {
18650		if !fn(p.Page().(*ListV2LoggingLevelsOutput), !p.HasNextPage()) {
18651			break
18652		}
18653	}
18654
18655	return p.Err()
18656}
18657
18658const opListViolationEvents = "ListViolationEvents"
18659
18660// ListViolationEventsRequest generates a "aws/request.Request" representing the
18661// client's request for the ListViolationEvents operation. The "output" return
18662// value will be populated with the request's response once the request completes
18663// successfully.
18664//
18665// Use "Send" method on the returned Request to send the API call to the service.
18666// the "output" return value is not valid until after Send returns without error.
18667//
18668// See ListViolationEvents for more information on using the ListViolationEvents
18669// API call, and error handling.
18670//
18671// This method is useful when you want to inject custom logic or configuration
18672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18673//
18674//
18675//    // Example sending a request using the ListViolationEventsRequest method.
18676//    req, resp := client.ListViolationEventsRequest(params)
18677//
18678//    err := req.Send()
18679//    if err == nil { // resp is now filled
18680//        fmt.Println(resp)
18681//    }
18682func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
18683	op := &request.Operation{
18684		Name:       opListViolationEvents,
18685		HTTPMethod: "GET",
18686		HTTPPath:   "/violation-events",
18687		Paginator: &request.Paginator{
18688			InputTokens:     []string{"nextToken"},
18689			OutputTokens:    []string{"nextToken"},
18690			LimitToken:      "maxResults",
18691			TruncationToken: "",
18692		},
18693	}
18694
18695	if input == nil {
18696		input = &ListViolationEventsInput{}
18697	}
18698
18699	output = &ListViolationEventsOutput{}
18700	req = c.newRequest(op, input, output)
18701	return
18702}
18703
18704// ListViolationEvents API operation for AWS IoT.
18705//
18706// Lists the Device Defender security profile violations discovered during the
18707// given time period. You can use filters to limit the results to those alerts
18708// issued for a particular security profile, behavior, or thing (device).
18709//
18710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18711// with awserr.Error's Code and Message methods to get detailed information about
18712// the error.
18713//
18714// See the AWS API reference guide for AWS IoT's
18715// API operation ListViolationEvents for usage and error information.
18716//
18717// Returned Error Types:
18718//   * InvalidRequestException
18719//   The request is not valid.
18720//
18721//   * ThrottlingException
18722//   The rate exceeds the limit.
18723//
18724//   * InternalFailureException
18725//   An unexpected error has occurred.
18726//
18727func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
18728	req, out := c.ListViolationEventsRequest(input)
18729	return out, req.Send()
18730}
18731
18732// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
18733// the ability to pass a context and additional request options.
18734//
18735// See ListViolationEvents for details on how to use this API operation.
18736//
18737// The context must be non-nil and will be used for request cancellation. If
18738// the context is nil a panic will occur. In the future the SDK may create
18739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18740// for more information on using Contexts.
18741func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
18742	req, out := c.ListViolationEventsRequest(input)
18743	req.SetContext(ctx)
18744	req.ApplyOptions(opts...)
18745	return out, req.Send()
18746}
18747
18748// ListViolationEventsPages iterates over the pages of a ListViolationEvents operation,
18749// calling the "fn" function with the response data for each page. To stop
18750// iterating, return false from the fn function.
18751//
18752// See ListViolationEvents method for more information on how to use this operation.
18753//
18754// Note: This operation can generate multiple requests to a service.
18755//
18756//    // Example iterating over at most 3 pages of a ListViolationEvents operation.
18757//    pageNum := 0
18758//    err := client.ListViolationEventsPages(params,
18759//        func(page *iot.ListViolationEventsOutput, lastPage bool) bool {
18760//            pageNum++
18761//            fmt.Println(page)
18762//            return pageNum <= 3
18763//        })
18764//
18765func (c *IoT) ListViolationEventsPages(input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool) error {
18766	return c.ListViolationEventsPagesWithContext(aws.BackgroundContext(), input, fn)
18767}
18768
18769// ListViolationEventsPagesWithContext same as ListViolationEventsPages except
18770// it takes a Context and allows setting request options on the pages.
18771//
18772// The context must be non-nil and will be used for request cancellation. If
18773// the context is nil a panic will occur. In the future the SDK may create
18774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18775// for more information on using Contexts.
18776func (c *IoT) ListViolationEventsPagesWithContext(ctx aws.Context, input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool, opts ...request.Option) error {
18777	p := request.Pagination{
18778		NewRequest: func() (*request.Request, error) {
18779			var inCpy *ListViolationEventsInput
18780			if input != nil {
18781				tmp := *input
18782				inCpy = &tmp
18783			}
18784			req, _ := c.ListViolationEventsRequest(inCpy)
18785			req.SetContext(ctx)
18786			req.ApplyOptions(opts...)
18787			return req, nil
18788		},
18789	}
18790
18791	for p.Next() {
18792		if !fn(p.Page().(*ListViolationEventsOutput), !p.HasNextPage()) {
18793			break
18794		}
18795	}
18796
18797	return p.Err()
18798}
18799
18800const opRegisterCACertificate = "RegisterCACertificate"
18801
18802// RegisterCACertificateRequest generates a "aws/request.Request" representing the
18803// client's request for the RegisterCACertificate operation. The "output" return
18804// value will be populated with the request's response once the request completes
18805// successfully.
18806//
18807// Use "Send" method on the returned Request to send the API call to the service.
18808// the "output" return value is not valid until after Send returns without error.
18809//
18810// See RegisterCACertificate for more information on using the RegisterCACertificate
18811// API call, and error handling.
18812//
18813// This method is useful when you want to inject custom logic or configuration
18814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18815//
18816//
18817//    // Example sending a request using the RegisterCACertificateRequest method.
18818//    req, resp := client.RegisterCACertificateRequest(params)
18819//
18820//    err := req.Send()
18821//    if err == nil { // resp is now filled
18822//        fmt.Println(resp)
18823//    }
18824func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
18825	op := &request.Operation{
18826		Name:       opRegisterCACertificate,
18827		HTTPMethod: "POST",
18828		HTTPPath:   "/cacertificate",
18829	}
18830
18831	if input == nil {
18832		input = &RegisterCACertificateInput{}
18833	}
18834
18835	output = &RegisterCACertificateOutput{}
18836	req = c.newRequest(op, input, output)
18837	return
18838}
18839
18840// RegisterCACertificate API operation for AWS IoT.
18841//
18842// Registers a CA certificate with AWS IoT. This CA certificate can then be
18843// used to sign device certificates, which can be then registered with AWS IoT.
18844// You can register up to 10 CA certificates per AWS account that have the same
18845// subject field. This enables you to have up to 10 certificate authorities
18846// sign your device certificates. If you have more than one CA certificate registered,
18847// make sure you pass the CA certificate when you register your device certificates
18848// with the RegisterCertificate API.
18849//
18850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18851// with awserr.Error's Code and Message methods to get detailed information about
18852// the error.
18853//
18854// See the AWS API reference guide for AWS IoT's
18855// API operation RegisterCACertificate for usage and error information.
18856//
18857// Returned Error Types:
18858//   * ResourceAlreadyExistsException
18859//   The resource already exists.
18860//
18861//   * RegistrationCodeValidationException
18862//   The registration code is invalid.
18863//
18864//   * InvalidRequestException
18865//   The request is not valid.
18866//
18867//   * CertificateValidationException
18868//   The certificate is invalid.
18869//
18870//   * ThrottlingException
18871//   The rate exceeds the limit.
18872//
18873//   * LimitExceededException
18874//   A limit has been exceeded.
18875//
18876//   * UnauthorizedException
18877//   You are not authorized to perform this operation.
18878//
18879//   * ServiceUnavailableException
18880//   The service is temporarily unavailable.
18881//
18882//   * InternalFailureException
18883//   An unexpected error has occurred.
18884//
18885func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
18886	req, out := c.RegisterCACertificateRequest(input)
18887	return out, req.Send()
18888}
18889
18890// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
18891// the ability to pass a context and additional request options.
18892//
18893// See RegisterCACertificate for details on how to use this API operation.
18894//
18895// The context must be non-nil and will be used for request cancellation. If
18896// the context is nil a panic will occur. In the future the SDK may create
18897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18898// for more information on using Contexts.
18899func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
18900	req, out := c.RegisterCACertificateRequest(input)
18901	req.SetContext(ctx)
18902	req.ApplyOptions(opts...)
18903	return out, req.Send()
18904}
18905
18906const opRegisterCertificate = "RegisterCertificate"
18907
18908// RegisterCertificateRequest generates a "aws/request.Request" representing the
18909// client's request for the RegisterCertificate operation. The "output" return
18910// value will be populated with the request's response once the request completes
18911// successfully.
18912//
18913// Use "Send" method on the returned Request to send the API call to the service.
18914// the "output" return value is not valid until after Send returns without error.
18915//
18916// See RegisterCertificate for more information on using the RegisterCertificate
18917// API call, and error handling.
18918//
18919// This method is useful when you want to inject custom logic or configuration
18920// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18921//
18922//
18923//    // Example sending a request using the RegisterCertificateRequest method.
18924//    req, resp := client.RegisterCertificateRequest(params)
18925//
18926//    err := req.Send()
18927//    if err == nil { // resp is now filled
18928//        fmt.Println(resp)
18929//    }
18930func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
18931	op := &request.Operation{
18932		Name:       opRegisterCertificate,
18933		HTTPMethod: "POST",
18934		HTTPPath:   "/certificate/register",
18935	}
18936
18937	if input == nil {
18938		input = &RegisterCertificateInput{}
18939	}
18940
18941	output = &RegisterCertificateOutput{}
18942	req = c.newRequest(op, input, output)
18943	return
18944}
18945
18946// RegisterCertificate API operation for AWS IoT.
18947//
18948// Registers a device certificate with AWS IoT. If you have more than one CA
18949// certificate that has the same subject field, you must specify the CA certificate
18950// that was used to sign the device certificate being registered.
18951//
18952// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18953// with awserr.Error's Code and Message methods to get detailed information about
18954// the error.
18955//
18956// See the AWS API reference guide for AWS IoT's
18957// API operation RegisterCertificate for usage and error information.
18958//
18959// Returned Error Types:
18960//   * ResourceAlreadyExistsException
18961//   The resource already exists.
18962//
18963//   * InvalidRequestException
18964//   The request is not valid.
18965//
18966//   * CertificateValidationException
18967//   The certificate is invalid.
18968//
18969//   * CertificateStateException
18970//   The certificate operation is not allowed.
18971//
18972//   * CertificateConflictException
18973//   Unable to verify the CA certificate used to sign the device certificate you
18974//   are attempting to register. This is happens when you have registered more
18975//   than one CA certificate that has the same subject field and public key.
18976//
18977//   * ThrottlingException
18978//   The rate exceeds the limit.
18979//
18980//   * UnauthorizedException
18981//   You are not authorized to perform this operation.
18982//
18983//   * ServiceUnavailableException
18984//   The service is temporarily unavailable.
18985//
18986//   * InternalFailureException
18987//   An unexpected error has occurred.
18988//
18989func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
18990	req, out := c.RegisterCertificateRequest(input)
18991	return out, req.Send()
18992}
18993
18994// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
18995// the ability to pass a context and additional request options.
18996//
18997// See RegisterCertificate for details on how to use this API operation.
18998//
18999// The context must be non-nil and will be used for request cancellation. If
19000// the context is nil a panic will occur. In the future the SDK may create
19001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19002// for more information on using Contexts.
19003func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
19004	req, out := c.RegisterCertificateRequest(input)
19005	req.SetContext(ctx)
19006	req.ApplyOptions(opts...)
19007	return out, req.Send()
19008}
19009
19010const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
19011
19012// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
19013// client's request for the RegisterCertificateWithoutCA operation. The "output" return
19014// value will be populated with the request's response once the request completes
19015// successfully.
19016//
19017// Use "Send" method on the returned Request to send the API call to the service.
19018// the "output" return value is not valid until after Send returns without error.
19019//
19020// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
19021// API call, and error handling.
19022//
19023// This method is useful when you want to inject custom logic or configuration
19024// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19025//
19026//
19027//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
19028//    req, resp := client.RegisterCertificateWithoutCARequest(params)
19029//
19030//    err := req.Send()
19031//    if err == nil { // resp is now filled
19032//        fmt.Println(resp)
19033//    }
19034func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
19035	op := &request.Operation{
19036		Name:       opRegisterCertificateWithoutCA,
19037		HTTPMethod: "POST",
19038		HTTPPath:   "/certificate/register-no-ca",
19039	}
19040
19041	if input == nil {
19042		input = &RegisterCertificateWithoutCAInput{}
19043	}
19044
19045	output = &RegisterCertificateWithoutCAOutput{}
19046	req = c.newRequest(op, input, output)
19047	return
19048}
19049
19050// RegisterCertificateWithoutCA API operation for AWS IoT.
19051//
19052// Register a certificate that does not have a certificate authority (CA).
19053//
19054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19055// with awserr.Error's Code and Message methods to get detailed information about
19056// the error.
19057//
19058// See the AWS API reference guide for AWS IoT's
19059// API operation RegisterCertificateWithoutCA for usage and error information.
19060//
19061// Returned Error Types:
19062//   * ResourceAlreadyExistsException
19063//   The resource already exists.
19064//
19065//   * InvalidRequestException
19066//   The request is not valid.
19067//
19068//   * CertificateStateException
19069//   The certificate operation is not allowed.
19070//
19071//   * CertificateValidationException
19072//   The certificate is invalid.
19073//
19074//   * ThrottlingException
19075//   The rate exceeds the limit.
19076//
19077//   * UnauthorizedException
19078//   You are not authorized to perform this operation.
19079//
19080//   * ServiceUnavailableException
19081//   The service is temporarily unavailable.
19082//
19083//   * InternalFailureException
19084//   An unexpected error has occurred.
19085//
19086func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
19087	req, out := c.RegisterCertificateWithoutCARequest(input)
19088	return out, req.Send()
19089}
19090
19091// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
19092// the ability to pass a context and additional request options.
19093//
19094// See RegisterCertificateWithoutCA for details on how to use this API operation.
19095//
19096// The context must be non-nil and will be used for request cancellation. If
19097// the context is nil a panic will occur. In the future the SDK may create
19098// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19099// for more information on using Contexts.
19100func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
19101	req, out := c.RegisterCertificateWithoutCARequest(input)
19102	req.SetContext(ctx)
19103	req.ApplyOptions(opts...)
19104	return out, req.Send()
19105}
19106
19107const opRegisterThing = "RegisterThing"
19108
19109// RegisterThingRequest generates a "aws/request.Request" representing the
19110// client's request for the RegisterThing operation. The "output" return
19111// value will be populated with the request's response once the request completes
19112// successfully.
19113//
19114// Use "Send" method on the returned Request to send the API call to the service.
19115// the "output" return value is not valid until after Send returns without error.
19116//
19117// See RegisterThing for more information on using the RegisterThing
19118// API call, and error handling.
19119//
19120// This method is useful when you want to inject custom logic or configuration
19121// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19122//
19123//
19124//    // Example sending a request using the RegisterThingRequest method.
19125//    req, resp := client.RegisterThingRequest(params)
19126//
19127//    err := req.Send()
19128//    if err == nil { // resp is now filled
19129//        fmt.Println(resp)
19130//    }
19131func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
19132	op := &request.Operation{
19133		Name:       opRegisterThing,
19134		HTTPMethod: "POST",
19135		HTTPPath:   "/things",
19136	}
19137
19138	if input == nil {
19139		input = &RegisterThingInput{}
19140	}
19141
19142	output = &RegisterThingOutput{}
19143	req = c.newRequest(op, input, output)
19144	return
19145}
19146
19147// RegisterThing API operation for AWS IoT.
19148//
19149// Provisions a thing in the device registry. RegisterThing calls other AWS
19150// IoT control plane APIs. These calls might exceed your account level AWS IoT
19151// Throttling Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
19152// and cause throttle errors. Please contact AWS Customer Support (https://console.aws.amazon.com/support/home)
19153// to raise your throttling limits if necessary.
19154//
19155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19156// with awserr.Error's Code and Message methods to get detailed information about
19157// the error.
19158//
19159// See the AWS API reference guide for AWS IoT's
19160// API operation RegisterThing for usage and error information.
19161//
19162// Returned Error Types:
19163//   * InternalFailureException
19164//   An unexpected error has occurred.
19165//
19166//   * ServiceUnavailableException
19167//   The service is temporarily unavailable.
19168//
19169//   * InvalidRequestException
19170//   The request is not valid.
19171//
19172//   * UnauthorizedException
19173//   You are not authorized to perform this operation.
19174//
19175//   * ThrottlingException
19176//   The rate exceeds the limit.
19177//
19178//   * ConflictingResourceUpdateException
19179//   A conflicting resource update exception. This exception is thrown when two
19180//   pending updates cause a conflict.
19181//
19182//   * ResourceRegistrationFailureException
19183//   The resource registration failed.
19184//
19185func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
19186	req, out := c.RegisterThingRequest(input)
19187	return out, req.Send()
19188}
19189
19190// RegisterThingWithContext is the same as RegisterThing with the addition of
19191// the ability to pass a context and additional request options.
19192//
19193// See RegisterThing for details on how to use this API operation.
19194//
19195// The context must be non-nil and will be used for request cancellation. If
19196// the context is nil a panic will occur. In the future the SDK may create
19197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19198// for more information on using Contexts.
19199func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
19200	req, out := c.RegisterThingRequest(input)
19201	req.SetContext(ctx)
19202	req.ApplyOptions(opts...)
19203	return out, req.Send()
19204}
19205
19206const opRejectCertificateTransfer = "RejectCertificateTransfer"
19207
19208// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
19209// client's request for the RejectCertificateTransfer operation. The "output" return
19210// value will be populated with the request's response once the request completes
19211// successfully.
19212//
19213// Use "Send" method on the returned Request to send the API call to the service.
19214// the "output" return value is not valid until after Send returns without error.
19215//
19216// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
19217// API call, and error handling.
19218//
19219// This method is useful when you want to inject custom logic or configuration
19220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19221//
19222//
19223//    // Example sending a request using the RejectCertificateTransferRequest method.
19224//    req, resp := client.RejectCertificateTransferRequest(params)
19225//
19226//    err := req.Send()
19227//    if err == nil { // resp is now filled
19228//        fmt.Println(resp)
19229//    }
19230func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
19231	op := &request.Operation{
19232		Name:       opRejectCertificateTransfer,
19233		HTTPMethod: "PATCH",
19234		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
19235	}
19236
19237	if input == nil {
19238		input = &RejectCertificateTransferInput{}
19239	}
19240
19241	output = &RejectCertificateTransferOutput{}
19242	req = c.newRequest(op, input, output)
19243	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19244	return
19245}
19246
19247// RejectCertificateTransfer API operation for AWS IoT.
19248//
19249// Rejects a pending certificate transfer. After AWS IoT rejects a certificate
19250// transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.
19251//
19252// To check for pending certificate transfers, call ListCertificates to enumerate
19253// your certificates.
19254//
19255// This operation can only be called by the transfer destination. After it is
19256// called, the certificate will be returned to the source's account in the INACTIVE
19257// state.
19258//
19259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19260// with awserr.Error's Code and Message methods to get detailed information about
19261// the error.
19262//
19263// See the AWS API reference guide for AWS IoT's
19264// API operation RejectCertificateTransfer for usage and error information.
19265//
19266// Returned Error Types:
19267//   * ResourceNotFoundException
19268//   The specified resource does not exist.
19269//
19270//   * TransferAlreadyCompletedException
19271//   You can't revert the certificate transfer because the transfer is already
19272//   complete.
19273//
19274//   * InvalidRequestException
19275//   The request is not valid.
19276//
19277//   * ThrottlingException
19278//   The rate exceeds the limit.
19279//
19280//   * UnauthorizedException
19281//   You are not authorized to perform this operation.
19282//
19283//   * ServiceUnavailableException
19284//   The service is temporarily unavailable.
19285//
19286//   * InternalFailureException
19287//   An unexpected error has occurred.
19288//
19289func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
19290	req, out := c.RejectCertificateTransferRequest(input)
19291	return out, req.Send()
19292}
19293
19294// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
19295// the ability to pass a context and additional request options.
19296//
19297// See RejectCertificateTransfer for details on how to use this API operation.
19298//
19299// The context must be non-nil and will be used for request cancellation. If
19300// the context is nil a panic will occur. In the future the SDK may create
19301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19302// for more information on using Contexts.
19303func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
19304	req, out := c.RejectCertificateTransferRequest(input)
19305	req.SetContext(ctx)
19306	req.ApplyOptions(opts...)
19307	return out, req.Send()
19308}
19309
19310const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
19311
19312// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
19313// client's request for the RemoveThingFromBillingGroup operation. The "output" return
19314// value will be populated with the request's response once the request completes
19315// successfully.
19316//
19317// Use "Send" method on the returned Request to send the API call to the service.
19318// the "output" return value is not valid until after Send returns without error.
19319//
19320// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
19321// API call, and error handling.
19322//
19323// This method is useful when you want to inject custom logic or configuration
19324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19325//
19326//
19327//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
19328//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
19329//
19330//    err := req.Send()
19331//    if err == nil { // resp is now filled
19332//        fmt.Println(resp)
19333//    }
19334func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
19335	op := &request.Operation{
19336		Name:       opRemoveThingFromBillingGroup,
19337		HTTPMethod: "PUT",
19338		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
19339	}
19340
19341	if input == nil {
19342		input = &RemoveThingFromBillingGroupInput{}
19343	}
19344
19345	output = &RemoveThingFromBillingGroupOutput{}
19346	req = c.newRequest(op, input, output)
19347	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19348	return
19349}
19350
19351// RemoveThingFromBillingGroup API operation for AWS IoT.
19352//
19353// Removes the given thing from the billing group.
19354//
19355// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19356// with awserr.Error's Code and Message methods to get detailed information about
19357// the error.
19358//
19359// See the AWS API reference guide for AWS IoT's
19360// API operation RemoveThingFromBillingGroup for usage and error information.
19361//
19362// Returned Error Types:
19363//   * InvalidRequestException
19364//   The request is not valid.
19365//
19366//   * ThrottlingException
19367//   The rate exceeds the limit.
19368//
19369//   * InternalFailureException
19370//   An unexpected error has occurred.
19371//
19372//   * ResourceNotFoundException
19373//   The specified resource does not exist.
19374//
19375func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
19376	req, out := c.RemoveThingFromBillingGroupRequest(input)
19377	return out, req.Send()
19378}
19379
19380// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
19381// the ability to pass a context and additional request options.
19382//
19383// See RemoveThingFromBillingGroup for details on how to use this API operation.
19384//
19385// The context must be non-nil and will be used for request cancellation. If
19386// the context is nil a panic will occur. In the future the SDK may create
19387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19388// for more information on using Contexts.
19389func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
19390	req, out := c.RemoveThingFromBillingGroupRequest(input)
19391	req.SetContext(ctx)
19392	req.ApplyOptions(opts...)
19393	return out, req.Send()
19394}
19395
19396const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
19397
19398// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
19399// client's request for the RemoveThingFromThingGroup operation. The "output" return
19400// value will be populated with the request's response once the request completes
19401// successfully.
19402//
19403// Use "Send" method on the returned Request to send the API call to the service.
19404// the "output" return value is not valid until after Send returns without error.
19405//
19406// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
19407// API call, and error handling.
19408//
19409// This method is useful when you want to inject custom logic or configuration
19410// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19411//
19412//
19413//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
19414//    req, resp := client.RemoveThingFromThingGroupRequest(params)
19415//
19416//    err := req.Send()
19417//    if err == nil { // resp is now filled
19418//        fmt.Println(resp)
19419//    }
19420func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
19421	op := &request.Operation{
19422		Name:       opRemoveThingFromThingGroup,
19423		HTTPMethod: "PUT",
19424		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
19425	}
19426
19427	if input == nil {
19428		input = &RemoveThingFromThingGroupInput{}
19429	}
19430
19431	output = &RemoveThingFromThingGroupOutput{}
19432	req = c.newRequest(op, input, output)
19433	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19434	return
19435}
19436
19437// RemoveThingFromThingGroup API operation for AWS IoT.
19438//
19439// Remove the specified thing from the specified group.
19440//
19441// You must specify either a thingGroupArn or a thingGroupName to identify the
19442// thing group and either a thingArn or a thingName to identify the thing to
19443// remove from the thing group.
19444//
19445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19446// with awserr.Error's Code and Message methods to get detailed information about
19447// the error.
19448//
19449// See the AWS API reference guide for AWS IoT's
19450// API operation RemoveThingFromThingGroup for usage and error information.
19451//
19452// Returned Error Types:
19453//   * InvalidRequestException
19454//   The request is not valid.
19455//
19456//   * ThrottlingException
19457//   The rate exceeds the limit.
19458//
19459//   * InternalFailureException
19460//   An unexpected error has occurred.
19461//
19462//   * ResourceNotFoundException
19463//   The specified resource does not exist.
19464//
19465func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
19466	req, out := c.RemoveThingFromThingGroupRequest(input)
19467	return out, req.Send()
19468}
19469
19470// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
19471// the ability to pass a context and additional request options.
19472//
19473// See RemoveThingFromThingGroup for details on how to use this API operation.
19474//
19475// The context must be non-nil and will be used for request cancellation. If
19476// the context is nil a panic will occur. In the future the SDK may create
19477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19478// for more information on using Contexts.
19479func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
19480	req, out := c.RemoveThingFromThingGroupRequest(input)
19481	req.SetContext(ctx)
19482	req.ApplyOptions(opts...)
19483	return out, req.Send()
19484}
19485
19486const opReplaceTopicRule = "ReplaceTopicRule"
19487
19488// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
19489// client's request for the ReplaceTopicRule operation. The "output" return
19490// value will be populated with the request's response once the request completes
19491// successfully.
19492//
19493// Use "Send" method on the returned Request to send the API call to the service.
19494// the "output" return value is not valid until after Send returns without error.
19495//
19496// See ReplaceTopicRule for more information on using the ReplaceTopicRule
19497// API call, and error handling.
19498//
19499// This method is useful when you want to inject custom logic or configuration
19500// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19501//
19502//
19503//    // Example sending a request using the ReplaceTopicRuleRequest method.
19504//    req, resp := client.ReplaceTopicRuleRequest(params)
19505//
19506//    err := req.Send()
19507//    if err == nil { // resp is now filled
19508//        fmt.Println(resp)
19509//    }
19510func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
19511	op := &request.Operation{
19512		Name:       opReplaceTopicRule,
19513		HTTPMethod: "PATCH",
19514		HTTPPath:   "/rules/{ruleName}",
19515	}
19516
19517	if input == nil {
19518		input = &ReplaceTopicRuleInput{}
19519	}
19520
19521	output = &ReplaceTopicRuleOutput{}
19522	req = c.newRequest(op, input, output)
19523	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19524	return
19525}
19526
19527// ReplaceTopicRule API operation for AWS IoT.
19528//
19529// Replaces the rule. You must specify all parameters for the new rule. Creating
19530// rules is an administrator-level action. Any user who has permission to create
19531// rules will be able to access data processed by the rule.
19532//
19533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19534// with awserr.Error's Code and Message methods to get detailed information about
19535// the error.
19536//
19537// See the AWS API reference guide for AWS IoT's
19538// API operation ReplaceTopicRule for usage and error information.
19539//
19540// Returned Error Types:
19541//   * SqlParseException
19542//   The Rule-SQL expression can't be parsed correctly.
19543//
19544//   * InternalException
19545//   An unexpected error has occurred.
19546//
19547//   * InvalidRequestException
19548//   The request is not valid.
19549//
19550//   * ServiceUnavailableException
19551//   The service is temporarily unavailable.
19552//
19553//   * UnauthorizedException
19554//   You are not authorized to perform this operation.
19555//
19556//   * ConflictingResourceUpdateException
19557//   A conflicting resource update exception. This exception is thrown when two
19558//   pending updates cause a conflict.
19559//
19560func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
19561	req, out := c.ReplaceTopicRuleRequest(input)
19562	return out, req.Send()
19563}
19564
19565// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
19566// the ability to pass a context and additional request options.
19567//
19568// See ReplaceTopicRule for details on how to use this API operation.
19569//
19570// The context must be non-nil and will be used for request cancellation. If
19571// the context is nil a panic will occur. In the future the SDK may create
19572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19573// for more information on using Contexts.
19574func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
19575	req, out := c.ReplaceTopicRuleRequest(input)
19576	req.SetContext(ctx)
19577	req.ApplyOptions(opts...)
19578	return out, req.Send()
19579}
19580
19581const opSearchIndex = "SearchIndex"
19582
19583// SearchIndexRequest generates a "aws/request.Request" representing the
19584// client's request for the SearchIndex operation. The "output" return
19585// value will be populated with the request's response once the request completes
19586// successfully.
19587//
19588// Use "Send" method on the returned Request to send the API call to the service.
19589// the "output" return value is not valid until after Send returns without error.
19590//
19591// See SearchIndex for more information on using the SearchIndex
19592// API call, and error handling.
19593//
19594// This method is useful when you want to inject custom logic or configuration
19595// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19596//
19597//
19598//    // Example sending a request using the SearchIndexRequest method.
19599//    req, resp := client.SearchIndexRequest(params)
19600//
19601//    err := req.Send()
19602//    if err == nil { // resp is now filled
19603//        fmt.Println(resp)
19604//    }
19605func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
19606	op := &request.Operation{
19607		Name:       opSearchIndex,
19608		HTTPMethod: "POST",
19609		HTTPPath:   "/indices/search",
19610	}
19611
19612	if input == nil {
19613		input = &SearchIndexInput{}
19614	}
19615
19616	output = &SearchIndexOutput{}
19617	req = c.newRequest(op, input, output)
19618	return
19619}
19620
19621// SearchIndex API operation for AWS IoT.
19622//
19623// The query search index.
19624//
19625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19626// with awserr.Error's Code and Message methods to get detailed information about
19627// the error.
19628//
19629// See the AWS API reference guide for AWS IoT's
19630// API operation SearchIndex for usage and error information.
19631//
19632// Returned Error Types:
19633//   * InvalidRequestException
19634//   The request is not valid.
19635//
19636//   * ThrottlingException
19637//   The rate exceeds the limit.
19638//
19639//   * UnauthorizedException
19640//   You are not authorized to perform this operation.
19641//
19642//   * ServiceUnavailableException
19643//   The service is temporarily unavailable.
19644//
19645//   * InternalFailureException
19646//   An unexpected error has occurred.
19647//
19648//   * ResourceNotFoundException
19649//   The specified resource does not exist.
19650//
19651//   * InvalidQueryException
19652//   The query is invalid.
19653//
19654//   * IndexNotReadyException
19655//   The index is not ready.
19656//
19657func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
19658	req, out := c.SearchIndexRequest(input)
19659	return out, req.Send()
19660}
19661
19662// SearchIndexWithContext is the same as SearchIndex with the addition of
19663// the ability to pass a context and additional request options.
19664//
19665// See SearchIndex for details on how to use this API operation.
19666//
19667// The context must be non-nil and will be used for request cancellation. If
19668// the context is nil a panic will occur. In the future the SDK may create
19669// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19670// for more information on using Contexts.
19671func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
19672	req, out := c.SearchIndexRequest(input)
19673	req.SetContext(ctx)
19674	req.ApplyOptions(opts...)
19675	return out, req.Send()
19676}
19677
19678const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
19679
19680// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
19681// client's request for the SetDefaultAuthorizer operation. The "output" return
19682// value will be populated with the request's response once the request completes
19683// successfully.
19684//
19685// Use "Send" method on the returned Request to send the API call to the service.
19686// the "output" return value is not valid until after Send returns without error.
19687//
19688// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
19689// API call, and error handling.
19690//
19691// This method is useful when you want to inject custom logic or configuration
19692// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19693//
19694//
19695//    // Example sending a request using the SetDefaultAuthorizerRequest method.
19696//    req, resp := client.SetDefaultAuthorizerRequest(params)
19697//
19698//    err := req.Send()
19699//    if err == nil { // resp is now filled
19700//        fmt.Println(resp)
19701//    }
19702func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
19703	op := &request.Operation{
19704		Name:       opSetDefaultAuthorizer,
19705		HTTPMethod: "POST",
19706		HTTPPath:   "/default-authorizer",
19707	}
19708
19709	if input == nil {
19710		input = &SetDefaultAuthorizerInput{}
19711	}
19712
19713	output = &SetDefaultAuthorizerOutput{}
19714	req = c.newRequest(op, input, output)
19715	return
19716}
19717
19718// SetDefaultAuthorizer API operation for AWS IoT.
19719//
19720// Sets the default authorizer. This will be used if a websocket connection
19721// is made without specifying an authorizer.
19722//
19723// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19724// with awserr.Error's Code and Message methods to get detailed information about
19725// the error.
19726//
19727// See the AWS API reference guide for AWS IoT's
19728// API operation SetDefaultAuthorizer for usage and error information.
19729//
19730// Returned Error Types:
19731//   * ResourceNotFoundException
19732//   The specified resource does not exist.
19733//
19734//   * InvalidRequestException
19735//   The request is not valid.
19736//
19737//   * ThrottlingException
19738//   The rate exceeds the limit.
19739//
19740//   * UnauthorizedException
19741//   You are not authorized to perform this operation.
19742//
19743//   * ServiceUnavailableException
19744//   The service is temporarily unavailable.
19745//
19746//   * InternalFailureException
19747//   An unexpected error has occurred.
19748//
19749//   * ResourceAlreadyExistsException
19750//   The resource already exists.
19751//
19752func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
19753	req, out := c.SetDefaultAuthorizerRequest(input)
19754	return out, req.Send()
19755}
19756
19757// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
19758// the ability to pass a context and additional request options.
19759//
19760// See SetDefaultAuthorizer for details on how to use this API operation.
19761//
19762// The context must be non-nil and will be used for request cancellation. If
19763// the context is nil a panic will occur. In the future the SDK may create
19764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19765// for more information on using Contexts.
19766func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
19767	req, out := c.SetDefaultAuthorizerRequest(input)
19768	req.SetContext(ctx)
19769	req.ApplyOptions(opts...)
19770	return out, req.Send()
19771}
19772
19773const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
19774
19775// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
19776// client's request for the SetDefaultPolicyVersion operation. The "output" return
19777// value will be populated with the request's response once the request completes
19778// successfully.
19779//
19780// Use "Send" method on the returned Request to send the API call to the service.
19781// the "output" return value is not valid until after Send returns without error.
19782//
19783// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
19784// API call, and error handling.
19785//
19786// This method is useful when you want to inject custom logic or configuration
19787// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19788//
19789//
19790//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
19791//    req, resp := client.SetDefaultPolicyVersionRequest(params)
19792//
19793//    err := req.Send()
19794//    if err == nil { // resp is now filled
19795//        fmt.Println(resp)
19796//    }
19797func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
19798	op := &request.Operation{
19799		Name:       opSetDefaultPolicyVersion,
19800		HTTPMethod: "PATCH",
19801		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
19802	}
19803
19804	if input == nil {
19805		input = &SetDefaultPolicyVersionInput{}
19806	}
19807
19808	output = &SetDefaultPolicyVersionOutput{}
19809	req = c.newRequest(op, input, output)
19810	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19811	return
19812}
19813
19814// SetDefaultPolicyVersion API operation for AWS IoT.
19815//
19816// Sets the specified version of the specified policy as the policy's default
19817// (operative) version. This action affects all certificates to which the policy
19818// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy
19819// API.
19820//
19821// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19822// with awserr.Error's Code and Message methods to get detailed information about
19823// the error.
19824//
19825// See the AWS API reference guide for AWS IoT's
19826// API operation SetDefaultPolicyVersion for usage and error information.
19827//
19828// Returned Error Types:
19829//   * ResourceNotFoundException
19830//   The specified resource does not exist.
19831//
19832//   * InvalidRequestException
19833//   The request is not valid.
19834//
19835//   * ThrottlingException
19836//   The rate exceeds the limit.
19837//
19838//   * UnauthorizedException
19839//   You are not authorized to perform this operation.
19840//
19841//   * ServiceUnavailableException
19842//   The service is temporarily unavailable.
19843//
19844//   * InternalFailureException
19845//   An unexpected error has occurred.
19846//
19847func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
19848	req, out := c.SetDefaultPolicyVersionRequest(input)
19849	return out, req.Send()
19850}
19851
19852// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
19853// the ability to pass a context and additional request options.
19854//
19855// See SetDefaultPolicyVersion for details on how to use this API operation.
19856//
19857// The context must be non-nil and will be used for request cancellation. If
19858// the context is nil a panic will occur. In the future the SDK may create
19859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19860// for more information on using Contexts.
19861func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
19862	req, out := c.SetDefaultPolicyVersionRequest(input)
19863	req.SetContext(ctx)
19864	req.ApplyOptions(opts...)
19865	return out, req.Send()
19866}
19867
19868const opSetLoggingOptions = "SetLoggingOptions"
19869
19870// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
19871// client's request for the SetLoggingOptions operation. The "output" return
19872// value will be populated with the request's response once the request completes
19873// successfully.
19874//
19875// Use "Send" method on the returned Request to send the API call to the service.
19876// the "output" return value is not valid until after Send returns without error.
19877//
19878// See SetLoggingOptions for more information on using the SetLoggingOptions
19879// API call, and error handling.
19880//
19881// This method is useful when you want to inject custom logic or configuration
19882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19883//
19884//
19885//    // Example sending a request using the SetLoggingOptionsRequest method.
19886//    req, resp := client.SetLoggingOptionsRequest(params)
19887//
19888//    err := req.Send()
19889//    if err == nil { // resp is now filled
19890//        fmt.Println(resp)
19891//    }
19892func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
19893	op := &request.Operation{
19894		Name:       opSetLoggingOptions,
19895		HTTPMethod: "POST",
19896		HTTPPath:   "/loggingOptions",
19897	}
19898
19899	if input == nil {
19900		input = &SetLoggingOptionsInput{}
19901	}
19902
19903	output = &SetLoggingOptionsOutput{}
19904	req = c.newRequest(op, input, output)
19905	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19906	return
19907}
19908
19909// SetLoggingOptions API operation for AWS IoT.
19910//
19911// Sets the logging options.
19912//
19913// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
19914//
19915// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19916// with awserr.Error's Code and Message methods to get detailed information about
19917// the error.
19918//
19919// See the AWS API reference guide for AWS IoT's
19920// API operation SetLoggingOptions for usage and error information.
19921//
19922// Returned Error Types:
19923//   * InternalException
19924//   An unexpected error has occurred.
19925//
19926//   * InvalidRequestException
19927//   The request is not valid.
19928//
19929//   * ServiceUnavailableException
19930//   The service is temporarily unavailable.
19931//
19932func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
19933	req, out := c.SetLoggingOptionsRequest(input)
19934	return out, req.Send()
19935}
19936
19937// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
19938// the ability to pass a context and additional request options.
19939//
19940// See SetLoggingOptions for details on how to use this API operation.
19941//
19942// The context must be non-nil and will be used for request cancellation. If
19943// the context is nil a panic will occur. In the future the SDK may create
19944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19945// for more information on using Contexts.
19946func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
19947	req, out := c.SetLoggingOptionsRequest(input)
19948	req.SetContext(ctx)
19949	req.ApplyOptions(opts...)
19950	return out, req.Send()
19951}
19952
19953const opSetV2LoggingLevel = "SetV2LoggingLevel"
19954
19955// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
19956// client's request for the SetV2LoggingLevel operation. The "output" return
19957// value will be populated with the request's response once the request completes
19958// successfully.
19959//
19960// Use "Send" method on the returned Request to send the API call to the service.
19961// the "output" return value is not valid until after Send returns without error.
19962//
19963// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
19964// API call, and error handling.
19965//
19966// This method is useful when you want to inject custom logic or configuration
19967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19968//
19969//
19970//    // Example sending a request using the SetV2LoggingLevelRequest method.
19971//    req, resp := client.SetV2LoggingLevelRequest(params)
19972//
19973//    err := req.Send()
19974//    if err == nil { // resp is now filled
19975//        fmt.Println(resp)
19976//    }
19977func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
19978	op := &request.Operation{
19979		Name:       opSetV2LoggingLevel,
19980		HTTPMethod: "POST",
19981		HTTPPath:   "/v2LoggingLevel",
19982	}
19983
19984	if input == nil {
19985		input = &SetV2LoggingLevelInput{}
19986	}
19987
19988	output = &SetV2LoggingLevelOutput{}
19989	req = c.newRequest(op, input, output)
19990	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19991	return
19992}
19993
19994// SetV2LoggingLevel API operation for AWS IoT.
19995//
19996// Sets the logging level.
19997//
19998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19999// with awserr.Error's Code and Message methods to get detailed information about
20000// the error.
20001//
20002// See the AWS API reference guide for AWS IoT's
20003// API operation SetV2LoggingLevel for usage and error information.
20004//
20005// Returned Error Types:
20006//   * InternalException
20007//   An unexpected error has occurred.
20008//
20009//   * NotConfiguredException
20010//   The resource is not configured.
20011//
20012//   * InvalidRequestException
20013//   The request is not valid.
20014//
20015//   * ServiceUnavailableException
20016//   The service is temporarily unavailable.
20017//
20018//   * LimitExceededException
20019//   A limit has been exceeded.
20020//
20021func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
20022	req, out := c.SetV2LoggingLevelRequest(input)
20023	return out, req.Send()
20024}
20025
20026// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
20027// the ability to pass a context and additional request options.
20028//
20029// See SetV2LoggingLevel for details on how to use this API operation.
20030//
20031// The context must be non-nil and will be used for request cancellation. If
20032// the context is nil a panic will occur. In the future the SDK may create
20033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20034// for more information on using Contexts.
20035func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
20036	req, out := c.SetV2LoggingLevelRequest(input)
20037	req.SetContext(ctx)
20038	req.ApplyOptions(opts...)
20039	return out, req.Send()
20040}
20041
20042const opSetV2LoggingOptions = "SetV2LoggingOptions"
20043
20044// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
20045// client's request for the SetV2LoggingOptions operation. The "output" return
20046// value will be populated with the request's response once the request completes
20047// successfully.
20048//
20049// Use "Send" method on the returned Request to send the API call to the service.
20050// the "output" return value is not valid until after Send returns without error.
20051//
20052// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
20053// API call, and error handling.
20054//
20055// This method is useful when you want to inject custom logic or configuration
20056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20057//
20058//
20059//    // Example sending a request using the SetV2LoggingOptionsRequest method.
20060//    req, resp := client.SetV2LoggingOptionsRequest(params)
20061//
20062//    err := req.Send()
20063//    if err == nil { // resp is now filled
20064//        fmt.Println(resp)
20065//    }
20066func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
20067	op := &request.Operation{
20068		Name:       opSetV2LoggingOptions,
20069		HTTPMethod: "POST",
20070		HTTPPath:   "/v2LoggingOptions",
20071	}
20072
20073	if input == nil {
20074		input = &SetV2LoggingOptionsInput{}
20075	}
20076
20077	output = &SetV2LoggingOptionsOutput{}
20078	req = c.newRequest(op, input, output)
20079	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20080	return
20081}
20082
20083// SetV2LoggingOptions API operation for AWS IoT.
20084//
20085// Sets the logging options for the V2 logging service.
20086//
20087// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20088// with awserr.Error's Code and Message methods to get detailed information about
20089// the error.
20090//
20091// See the AWS API reference guide for AWS IoT's
20092// API operation SetV2LoggingOptions for usage and error information.
20093//
20094// Returned Error Types:
20095//   * InternalException
20096//   An unexpected error has occurred.
20097//
20098//   * InvalidRequestException
20099//   The request is not valid.
20100//
20101//   * ServiceUnavailableException
20102//   The service is temporarily unavailable.
20103//
20104func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
20105	req, out := c.SetV2LoggingOptionsRequest(input)
20106	return out, req.Send()
20107}
20108
20109// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
20110// the ability to pass a context and additional request options.
20111//
20112// See SetV2LoggingOptions for details on how to use this API operation.
20113//
20114// The context must be non-nil and will be used for request cancellation. If
20115// the context is nil a panic will occur. In the future the SDK may create
20116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20117// for more information on using Contexts.
20118func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
20119	req, out := c.SetV2LoggingOptionsRequest(input)
20120	req.SetContext(ctx)
20121	req.ApplyOptions(opts...)
20122	return out, req.Send()
20123}
20124
20125const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
20126
20127// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20128// client's request for the StartAuditMitigationActionsTask operation. The "output" return
20129// value will be populated with the request's response once the request completes
20130// successfully.
20131//
20132// Use "Send" method on the returned Request to send the API call to the service.
20133// the "output" return value is not valid until after Send returns without error.
20134//
20135// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
20136// API call, and error handling.
20137//
20138// This method is useful when you want to inject custom logic or configuration
20139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20140//
20141//
20142//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
20143//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
20144//
20145//    err := req.Send()
20146//    if err == nil { // resp is now filled
20147//        fmt.Println(resp)
20148//    }
20149func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
20150	op := &request.Operation{
20151		Name:       opStartAuditMitigationActionsTask,
20152		HTTPMethod: "POST",
20153		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
20154	}
20155
20156	if input == nil {
20157		input = &StartAuditMitigationActionsTaskInput{}
20158	}
20159
20160	output = &StartAuditMitigationActionsTaskOutput{}
20161	req = c.newRequest(op, input, output)
20162	return
20163}
20164
20165// StartAuditMitigationActionsTask API operation for AWS IoT.
20166//
20167// Starts a task that applies a set of mitigation actions to the specified target.
20168//
20169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20170// with awserr.Error's Code and Message methods to get detailed information about
20171// the error.
20172//
20173// See the AWS API reference guide for AWS IoT's
20174// API operation StartAuditMitigationActionsTask for usage and error information.
20175//
20176// Returned Error Types:
20177//   * InvalidRequestException
20178//   The request is not valid.
20179//
20180//   * TaskAlreadyExistsException
20181//   This exception occurs if you attempt to start a task with the same task-id
20182//   as an existing task but with a different clientRequestToken.
20183//
20184//   * LimitExceededException
20185//   A limit has been exceeded.
20186//
20187//   * ThrottlingException
20188//   The rate exceeds the limit.
20189//
20190//   * InternalFailureException
20191//   An unexpected error has occurred.
20192//
20193func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
20194	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20195	return out, req.Send()
20196}
20197
20198// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
20199// the ability to pass a context and additional request options.
20200//
20201// See StartAuditMitigationActionsTask for details on how to use this API operation.
20202//
20203// The context must be non-nil and will be used for request cancellation. If
20204// the context is nil a panic will occur. In the future the SDK may create
20205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20206// for more information on using Contexts.
20207func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
20208	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20209	req.SetContext(ctx)
20210	req.ApplyOptions(opts...)
20211	return out, req.Send()
20212}
20213
20214const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
20215
20216// StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20217// client's request for the StartDetectMitigationActionsTask operation. The "output" return
20218// value will be populated with the request's response once the request completes
20219// successfully.
20220//
20221// Use "Send" method on the returned Request to send the API call to the service.
20222// the "output" return value is not valid until after Send returns without error.
20223//
20224// See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
20225// API call, and error handling.
20226//
20227// This method is useful when you want to inject custom logic or configuration
20228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20229//
20230//
20231//    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
20232//    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
20233//
20234//    err := req.Send()
20235//    if err == nil { // resp is now filled
20236//        fmt.Println(resp)
20237//    }
20238func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
20239	op := &request.Operation{
20240		Name:       opStartDetectMitigationActionsTask,
20241		HTTPMethod: "PUT",
20242		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
20243	}
20244
20245	if input == nil {
20246		input = &StartDetectMitigationActionsTaskInput{}
20247	}
20248
20249	output = &StartDetectMitigationActionsTaskOutput{}
20250	req = c.newRequest(op, input, output)
20251	return
20252}
20253
20254// StartDetectMitigationActionsTask API operation for AWS IoT.
20255//
20256// Starts a Device Defender ML Detect mitigation actions task.
20257//
20258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20259// with awserr.Error's Code and Message methods to get detailed information about
20260// the error.
20261//
20262// See the AWS API reference guide for AWS IoT's
20263// API operation StartDetectMitigationActionsTask for usage and error information.
20264//
20265// Returned Error Types:
20266//   * InvalidRequestException
20267//   The request is not valid.
20268//
20269//   * TaskAlreadyExistsException
20270//   This exception occurs if you attempt to start a task with the same task-id
20271//   as an existing task but with a different clientRequestToken.
20272//
20273//   * LimitExceededException
20274//   A limit has been exceeded.
20275//
20276//   * ThrottlingException
20277//   The rate exceeds the limit.
20278//
20279//   * InternalFailureException
20280//   An unexpected error has occurred.
20281//
20282func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
20283	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20284	return out, req.Send()
20285}
20286
20287// StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
20288// the ability to pass a context and additional request options.
20289//
20290// See StartDetectMitigationActionsTask for details on how to use this API operation.
20291//
20292// The context must be non-nil and will be used for request cancellation. If
20293// the context is nil a panic will occur. In the future the SDK may create
20294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20295// for more information on using Contexts.
20296func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
20297	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20298	req.SetContext(ctx)
20299	req.ApplyOptions(opts...)
20300	return out, req.Send()
20301}
20302
20303const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
20304
20305// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
20306// client's request for the StartOnDemandAuditTask operation. The "output" return
20307// value will be populated with the request's response once the request completes
20308// successfully.
20309//
20310// Use "Send" method on the returned Request to send the API call to the service.
20311// the "output" return value is not valid until after Send returns without error.
20312//
20313// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
20314// API call, and error handling.
20315//
20316// This method is useful when you want to inject custom logic or configuration
20317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20318//
20319//
20320//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
20321//    req, resp := client.StartOnDemandAuditTaskRequest(params)
20322//
20323//    err := req.Send()
20324//    if err == nil { // resp is now filled
20325//        fmt.Println(resp)
20326//    }
20327func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
20328	op := &request.Operation{
20329		Name:       opStartOnDemandAuditTask,
20330		HTTPMethod: "POST",
20331		HTTPPath:   "/audit/tasks",
20332	}
20333
20334	if input == nil {
20335		input = &StartOnDemandAuditTaskInput{}
20336	}
20337
20338	output = &StartOnDemandAuditTaskOutput{}
20339	req = c.newRequest(op, input, output)
20340	return
20341}
20342
20343// StartOnDemandAuditTask API operation for AWS IoT.
20344//
20345// Starts an on-demand Device Defender audit.
20346//
20347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20348// with awserr.Error's Code and Message methods to get detailed information about
20349// the error.
20350//
20351// See the AWS API reference guide for AWS IoT's
20352// API operation StartOnDemandAuditTask for usage and error information.
20353//
20354// Returned Error Types:
20355//   * InvalidRequestException
20356//   The request is not valid.
20357//
20358//   * ThrottlingException
20359//   The rate exceeds the limit.
20360//
20361//   * InternalFailureException
20362//   An unexpected error has occurred.
20363//
20364//   * LimitExceededException
20365//   A limit has been exceeded.
20366//
20367func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
20368	req, out := c.StartOnDemandAuditTaskRequest(input)
20369	return out, req.Send()
20370}
20371
20372// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
20373// the ability to pass a context and additional request options.
20374//
20375// See StartOnDemandAuditTask for details on how to use this API operation.
20376//
20377// The context must be non-nil and will be used for request cancellation. If
20378// the context is nil a panic will occur. In the future the SDK may create
20379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20380// for more information on using Contexts.
20381func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
20382	req, out := c.StartOnDemandAuditTaskRequest(input)
20383	req.SetContext(ctx)
20384	req.ApplyOptions(opts...)
20385	return out, req.Send()
20386}
20387
20388const opStartThingRegistrationTask = "StartThingRegistrationTask"
20389
20390// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20391// client's request for the StartThingRegistrationTask operation. The "output" return
20392// value will be populated with the request's response once the request completes
20393// successfully.
20394//
20395// Use "Send" method on the returned Request to send the API call to the service.
20396// the "output" return value is not valid until after Send returns without error.
20397//
20398// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
20399// API call, and error handling.
20400//
20401// This method is useful when you want to inject custom logic or configuration
20402// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20403//
20404//
20405//    // Example sending a request using the StartThingRegistrationTaskRequest method.
20406//    req, resp := client.StartThingRegistrationTaskRequest(params)
20407//
20408//    err := req.Send()
20409//    if err == nil { // resp is now filled
20410//        fmt.Println(resp)
20411//    }
20412func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
20413	op := &request.Operation{
20414		Name:       opStartThingRegistrationTask,
20415		HTTPMethod: "POST",
20416		HTTPPath:   "/thing-registration-tasks",
20417	}
20418
20419	if input == nil {
20420		input = &StartThingRegistrationTaskInput{}
20421	}
20422
20423	output = &StartThingRegistrationTaskOutput{}
20424	req = c.newRequest(op, input, output)
20425	return
20426}
20427
20428// StartThingRegistrationTask API operation for AWS IoT.
20429//
20430// Creates a bulk thing provisioning task.
20431//
20432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20433// with awserr.Error's Code and Message methods to get detailed information about
20434// the error.
20435//
20436// See the AWS API reference guide for AWS IoT's
20437// API operation StartThingRegistrationTask for usage and error information.
20438//
20439// Returned Error Types:
20440//   * InvalidRequestException
20441//   The request is not valid.
20442//
20443//   * ThrottlingException
20444//   The rate exceeds the limit.
20445//
20446//   * UnauthorizedException
20447//   You are not authorized to perform this operation.
20448//
20449//   * InternalFailureException
20450//   An unexpected error has occurred.
20451//
20452func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
20453	req, out := c.StartThingRegistrationTaskRequest(input)
20454	return out, req.Send()
20455}
20456
20457// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
20458// the ability to pass a context and additional request options.
20459//
20460// See StartThingRegistrationTask for details on how to use this API operation.
20461//
20462// The context must be non-nil and will be used for request cancellation. If
20463// the context is nil a panic will occur. In the future the SDK may create
20464// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20465// for more information on using Contexts.
20466func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
20467	req, out := c.StartThingRegistrationTaskRequest(input)
20468	req.SetContext(ctx)
20469	req.ApplyOptions(opts...)
20470	return out, req.Send()
20471}
20472
20473const opStopThingRegistrationTask = "StopThingRegistrationTask"
20474
20475// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20476// client's request for the StopThingRegistrationTask operation. The "output" return
20477// value will be populated with the request's response once the request completes
20478// successfully.
20479//
20480// Use "Send" method on the returned Request to send the API call to the service.
20481// the "output" return value is not valid until after Send returns without error.
20482//
20483// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
20484// API call, and error handling.
20485//
20486// This method is useful when you want to inject custom logic or configuration
20487// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20488//
20489//
20490//    // Example sending a request using the StopThingRegistrationTaskRequest method.
20491//    req, resp := client.StopThingRegistrationTaskRequest(params)
20492//
20493//    err := req.Send()
20494//    if err == nil { // resp is now filled
20495//        fmt.Println(resp)
20496//    }
20497func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
20498	op := &request.Operation{
20499		Name:       opStopThingRegistrationTask,
20500		HTTPMethod: "PUT",
20501		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
20502	}
20503
20504	if input == nil {
20505		input = &StopThingRegistrationTaskInput{}
20506	}
20507
20508	output = &StopThingRegistrationTaskOutput{}
20509	req = c.newRequest(op, input, output)
20510	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20511	return
20512}
20513
20514// StopThingRegistrationTask API operation for AWS IoT.
20515//
20516// Cancels a bulk thing provisioning task.
20517//
20518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20519// with awserr.Error's Code and Message methods to get detailed information about
20520// the error.
20521//
20522// See the AWS API reference guide for AWS IoT's
20523// API operation StopThingRegistrationTask for usage and error information.
20524//
20525// Returned Error Types:
20526//   * InvalidRequestException
20527//   The request is not valid.
20528//
20529//   * ThrottlingException
20530//   The rate exceeds the limit.
20531//
20532//   * UnauthorizedException
20533//   You are not authorized to perform this operation.
20534//
20535//   * InternalFailureException
20536//   An unexpected error has occurred.
20537//
20538//   * ResourceNotFoundException
20539//   The specified resource does not exist.
20540//
20541func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
20542	req, out := c.StopThingRegistrationTaskRequest(input)
20543	return out, req.Send()
20544}
20545
20546// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
20547// the ability to pass a context and additional request options.
20548//
20549// See StopThingRegistrationTask for details on how to use this API operation.
20550//
20551// The context must be non-nil and will be used for request cancellation. If
20552// the context is nil a panic will occur. In the future the SDK may create
20553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20554// for more information on using Contexts.
20555func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
20556	req, out := c.StopThingRegistrationTaskRequest(input)
20557	req.SetContext(ctx)
20558	req.ApplyOptions(opts...)
20559	return out, req.Send()
20560}
20561
20562const opTagResource = "TagResource"
20563
20564// TagResourceRequest generates a "aws/request.Request" representing the
20565// client's request for the TagResource operation. The "output" return
20566// value will be populated with the request's response once the request completes
20567// successfully.
20568//
20569// Use "Send" method on the returned Request to send the API call to the service.
20570// the "output" return value is not valid until after Send returns without error.
20571//
20572// See TagResource for more information on using the TagResource
20573// API call, and error handling.
20574//
20575// This method is useful when you want to inject custom logic or configuration
20576// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20577//
20578//
20579//    // Example sending a request using the TagResourceRequest method.
20580//    req, resp := client.TagResourceRequest(params)
20581//
20582//    err := req.Send()
20583//    if err == nil { // resp is now filled
20584//        fmt.Println(resp)
20585//    }
20586func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
20587	op := &request.Operation{
20588		Name:       opTagResource,
20589		HTTPMethod: "POST",
20590		HTTPPath:   "/tags",
20591	}
20592
20593	if input == nil {
20594		input = &TagResourceInput{}
20595	}
20596
20597	output = &TagResourceOutput{}
20598	req = c.newRequest(op, input, output)
20599	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20600	return
20601}
20602
20603// TagResource API operation for AWS IoT.
20604//
20605// Adds to or modifies the tags of the given resource. Tags are metadata which
20606// can be used to manage a resource.
20607//
20608// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20609// with awserr.Error's Code and Message methods to get detailed information about
20610// the error.
20611//
20612// See the AWS API reference guide for AWS IoT's
20613// API operation TagResource for usage and error information.
20614//
20615// Returned Error Types:
20616//   * InvalidRequestException
20617//   The request is not valid.
20618//
20619//   * InternalFailureException
20620//   An unexpected error has occurred.
20621//
20622//   * ResourceNotFoundException
20623//   The specified resource does not exist.
20624//
20625//   * ThrottlingException
20626//   The rate exceeds the limit.
20627//
20628//   * LimitExceededException
20629//   A limit has been exceeded.
20630//
20631func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
20632	req, out := c.TagResourceRequest(input)
20633	return out, req.Send()
20634}
20635
20636// TagResourceWithContext is the same as TagResource with the addition of
20637// the ability to pass a context and additional request options.
20638//
20639// See TagResource for details on how to use this API operation.
20640//
20641// The context must be non-nil and will be used for request cancellation. If
20642// the context is nil a panic will occur. In the future the SDK may create
20643// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20644// for more information on using Contexts.
20645func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
20646	req, out := c.TagResourceRequest(input)
20647	req.SetContext(ctx)
20648	req.ApplyOptions(opts...)
20649	return out, req.Send()
20650}
20651
20652const opTestAuthorization = "TestAuthorization"
20653
20654// TestAuthorizationRequest generates a "aws/request.Request" representing the
20655// client's request for the TestAuthorization operation. The "output" return
20656// value will be populated with the request's response once the request completes
20657// successfully.
20658//
20659// Use "Send" method on the returned Request to send the API call to the service.
20660// the "output" return value is not valid until after Send returns without error.
20661//
20662// See TestAuthorization for more information on using the TestAuthorization
20663// API call, and error handling.
20664//
20665// This method is useful when you want to inject custom logic or configuration
20666// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20667//
20668//
20669//    // Example sending a request using the TestAuthorizationRequest method.
20670//    req, resp := client.TestAuthorizationRequest(params)
20671//
20672//    err := req.Send()
20673//    if err == nil { // resp is now filled
20674//        fmt.Println(resp)
20675//    }
20676func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
20677	op := &request.Operation{
20678		Name:       opTestAuthorization,
20679		HTTPMethod: "POST",
20680		HTTPPath:   "/test-authorization",
20681	}
20682
20683	if input == nil {
20684		input = &TestAuthorizationInput{}
20685	}
20686
20687	output = &TestAuthorizationOutput{}
20688	req = c.newRequest(op, input, output)
20689	return
20690}
20691
20692// TestAuthorization API operation for AWS IoT.
20693//
20694// Tests if a specified principal is authorized to perform an AWS IoT action
20695// on a specified resource. Use this to test and debug the authorization behavior
20696// of devices that connect to the AWS IoT device gateway.
20697//
20698// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20699// with awserr.Error's Code and Message methods to get detailed information about
20700// the error.
20701//
20702// See the AWS API reference guide for AWS IoT's
20703// API operation TestAuthorization for usage and error information.
20704//
20705// Returned Error Types:
20706//   * ResourceNotFoundException
20707//   The specified resource does not exist.
20708//
20709//   * InvalidRequestException
20710//   The request is not valid.
20711//
20712//   * ThrottlingException
20713//   The rate exceeds the limit.
20714//
20715//   * UnauthorizedException
20716//   You are not authorized to perform this operation.
20717//
20718//   * ServiceUnavailableException
20719//   The service is temporarily unavailable.
20720//
20721//   * InternalFailureException
20722//   An unexpected error has occurred.
20723//
20724//   * LimitExceededException
20725//   A limit has been exceeded.
20726//
20727func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
20728	req, out := c.TestAuthorizationRequest(input)
20729	return out, req.Send()
20730}
20731
20732// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
20733// the ability to pass a context and additional request options.
20734//
20735// See TestAuthorization for details on how to use this API operation.
20736//
20737// The context must be non-nil and will be used for request cancellation. If
20738// the context is nil a panic will occur. In the future the SDK may create
20739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20740// for more information on using Contexts.
20741func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
20742	req, out := c.TestAuthorizationRequest(input)
20743	req.SetContext(ctx)
20744	req.ApplyOptions(opts...)
20745	return out, req.Send()
20746}
20747
20748const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
20749
20750// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
20751// client's request for the TestInvokeAuthorizer operation. The "output" return
20752// value will be populated with the request's response once the request completes
20753// successfully.
20754//
20755// Use "Send" method on the returned Request to send the API call to the service.
20756// the "output" return value is not valid until after Send returns without error.
20757//
20758// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
20759// API call, and error handling.
20760//
20761// This method is useful when you want to inject custom logic or configuration
20762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20763//
20764//
20765//    // Example sending a request using the TestInvokeAuthorizerRequest method.
20766//    req, resp := client.TestInvokeAuthorizerRequest(params)
20767//
20768//    err := req.Send()
20769//    if err == nil { // resp is now filled
20770//        fmt.Println(resp)
20771//    }
20772func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
20773	op := &request.Operation{
20774		Name:       opTestInvokeAuthorizer,
20775		HTTPMethod: "POST",
20776		HTTPPath:   "/authorizer/{authorizerName}/test",
20777	}
20778
20779	if input == nil {
20780		input = &TestInvokeAuthorizerInput{}
20781	}
20782
20783	output = &TestInvokeAuthorizerOutput{}
20784	req = c.newRequest(op, input, output)
20785	return
20786}
20787
20788// TestInvokeAuthorizer API operation for AWS IoT.
20789//
20790// Tests a custom authorization behavior by invoking a specified custom authorizer.
20791// Use this to test and debug the custom authorization behavior of devices that
20792// connect to the AWS IoT device gateway.
20793//
20794// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20795// with awserr.Error's Code and Message methods to get detailed information about
20796// the error.
20797//
20798// See the AWS API reference guide for AWS IoT's
20799// API operation TestInvokeAuthorizer for usage and error information.
20800//
20801// Returned Error Types:
20802//   * ResourceNotFoundException
20803//   The specified resource does not exist.
20804//
20805//   * InvalidRequestException
20806//   The request is not valid.
20807//
20808//   * ThrottlingException
20809//   The rate exceeds the limit.
20810//
20811//   * UnauthorizedException
20812//   You are not authorized to perform this operation.
20813//
20814//   * ServiceUnavailableException
20815//   The service is temporarily unavailable.
20816//
20817//   * InternalFailureException
20818//   An unexpected error has occurred.
20819//
20820//   * InvalidResponseException
20821//   The response is invalid.
20822//
20823func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
20824	req, out := c.TestInvokeAuthorizerRequest(input)
20825	return out, req.Send()
20826}
20827
20828// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
20829// the ability to pass a context and additional request options.
20830//
20831// See TestInvokeAuthorizer for details on how to use this API operation.
20832//
20833// The context must be non-nil and will be used for request cancellation. If
20834// the context is nil a panic will occur. In the future the SDK may create
20835// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20836// for more information on using Contexts.
20837func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
20838	req, out := c.TestInvokeAuthorizerRequest(input)
20839	req.SetContext(ctx)
20840	req.ApplyOptions(opts...)
20841	return out, req.Send()
20842}
20843
20844const opTransferCertificate = "TransferCertificate"
20845
20846// TransferCertificateRequest generates a "aws/request.Request" representing the
20847// client's request for the TransferCertificate operation. The "output" return
20848// value will be populated with the request's response once the request completes
20849// successfully.
20850//
20851// Use "Send" method on the returned Request to send the API call to the service.
20852// the "output" return value is not valid until after Send returns without error.
20853//
20854// See TransferCertificate for more information on using the TransferCertificate
20855// API call, and error handling.
20856//
20857// This method is useful when you want to inject custom logic or configuration
20858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20859//
20860//
20861//    // Example sending a request using the TransferCertificateRequest method.
20862//    req, resp := client.TransferCertificateRequest(params)
20863//
20864//    err := req.Send()
20865//    if err == nil { // resp is now filled
20866//        fmt.Println(resp)
20867//    }
20868func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
20869	op := &request.Operation{
20870		Name:       opTransferCertificate,
20871		HTTPMethod: "PATCH",
20872		HTTPPath:   "/transfer-certificate/{certificateId}",
20873	}
20874
20875	if input == nil {
20876		input = &TransferCertificateInput{}
20877	}
20878
20879	output = &TransferCertificateOutput{}
20880	req = c.newRequest(op, input, output)
20881	return
20882}
20883
20884// TransferCertificate API operation for AWS IoT.
20885//
20886// Transfers the specified certificate to the specified AWS account.
20887//
20888// You can cancel the transfer until it is acknowledged by the recipient.
20889//
20890// No notification is sent to the transfer destination's account. It is up to
20891// the caller to notify the transfer target.
20892//
20893// The certificate being transferred must not be in the ACTIVE state. You can
20894// use the UpdateCertificate API to deactivate it.
20895//
20896// The certificate must not have any policies attached to it. You can use the
20897// DetachPrincipalPolicy API to detach them.
20898//
20899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20900// with awserr.Error's Code and Message methods to get detailed information about
20901// the error.
20902//
20903// See the AWS API reference guide for AWS IoT's
20904// API operation TransferCertificate for usage and error information.
20905//
20906// Returned Error Types:
20907//   * InvalidRequestException
20908//   The request is not valid.
20909//
20910//   * ResourceNotFoundException
20911//   The specified resource does not exist.
20912//
20913//   * CertificateStateException
20914//   The certificate operation is not allowed.
20915//
20916//   * TransferConflictException
20917//   You can't transfer the certificate because authorization policies are still
20918//   attached.
20919//
20920//   * ThrottlingException
20921//   The rate exceeds the limit.
20922//
20923//   * UnauthorizedException
20924//   You are not authorized to perform this operation.
20925//
20926//   * ServiceUnavailableException
20927//   The service is temporarily unavailable.
20928//
20929//   * InternalFailureException
20930//   An unexpected error has occurred.
20931//
20932func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
20933	req, out := c.TransferCertificateRequest(input)
20934	return out, req.Send()
20935}
20936
20937// TransferCertificateWithContext is the same as TransferCertificate with the addition of
20938// the ability to pass a context and additional request options.
20939//
20940// See TransferCertificate for details on how to use this API operation.
20941//
20942// The context must be non-nil and will be used for request cancellation. If
20943// the context is nil a panic will occur. In the future the SDK may create
20944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20945// for more information on using Contexts.
20946func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
20947	req, out := c.TransferCertificateRequest(input)
20948	req.SetContext(ctx)
20949	req.ApplyOptions(opts...)
20950	return out, req.Send()
20951}
20952
20953const opUntagResource = "UntagResource"
20954
20955// UntagResourceRequest generates a "aws/request.Request" representing the
20956// client's request for the UntagResource operation. The "output" return
20957// value will be populated with the request's response once the request completes
20958// successfully.
20959//
20960// Use "Send" method on the returned Request to send the API call to the service.
20961// the "output" return value is not valid until after Send returns without error.
20962//
20963// See UntagResource for more information on using the UntagResource
20964// API call, and error handling.
20965//
20966// This method is useful when you want to inject custom logic or configuration
20967// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20968//
20969//
20970//    // Example sending a request using the UntagResourceRequest method.
20971//    req, resp := client.UntagResourceRequest(params)
20972//
20973//    err := req.Send()
20974//    if err == nil { // resp is now filled
20975//        fmt.Println(resp)
20976//    }
20977func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
20978	op := &request.Operation{
20979		Name:       opUntagResource,
20980		HTTPMethod: "POST",
20981		HTTPPath:   "/untag",
20982	}
20983
20984	if input == nil {
20985		input = &UntagResourceInput{}
20986	}
20987
20988	output = &UntagResourceOutput{}
20989	req = c.newRequest(op, input, output)
20990	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20991	return
20992}
20993
20994// UntagResource API operation for AWS IoT.
20995//
20996// Removes the given tags (metadata) from the resource.
20997//
20998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20999// with awserr.Error's Code and Message methods to get detailed information about
21000// the error.
21001//
21002// See the AWS API reference guide for AWS IoT's
21003// API operation UntagResource for usage and error information.
21004//
21005// Returned Error Types:
21006//   * InvalidRequestException
21007//   The request is not valid.
21008//
21009//   * InternalFailureException
21010//   An unexpected error has occurred.
21011//
21012//   * ResourceNotFoundException
21013//   The specified resource does not exist.
21014//
21015//   * ThrottlingException
21016//   The rate exceeds the limit.
21017//
21018func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
21019	req, out := c.UntagResourceRequest(input)
21020	return out, req.Send()
21021}
21022
21023// UntagResourceWithContext is the same as UntagResource with the addition of
21024// the ability to pass a context and additional request options.
21025//
21026// See UntagResource for details on how to use this API operation.
21027//
21028// The context must be non-nil and will be used for request cancellation. If
21029// the context is nil a panic will occur. In the future the SDK may create
21030// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21031// for more information on using Contexts.
21032func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
21033	req, out := c.UntagResourceRequest(input)
21034	req.SetContext(ctx)
21035	req.ApplyOptions(opts...)
21036	return out, req.Send()
21037}
21038
21039const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
21040
21041// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
21042// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
21043// value will be populated with the request's response once the request completes
21044// successfully.
21045//
21046// Use "Send" method on the returned Request to send the API call to the service.
21047// the "output" return value is not valid until after Send returns without error.
21048//
21049// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
21050// API call, and error handling.
21051//
21052// This method is useful when you want to inject custom logic or configuration
21053// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21054//
21055//
21056//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
21057//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
21058//
21059//    err := req.Send()
21060//    if err == nil { // resp is now filled
21061//        fmt.Println(resp)
21062//    }
21063func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
21064	op := &request.Operation{
21065		Name:       opUpdateAccountAuditConfiguration,
21066		HTTPMethod: "PATCH",
21067		HTTPPath:   "/audit/configuration",
21068	}
21069
21070	if input == nil {
21071		input = &UpdateAccountAuditConfigurationInput{}
21072	}
21073
21074	output = &UpdateAccountAuditConfigurationOutput{}
21075	req = c.newRequest(op, input, output)
21076	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21077	return
21078}
21079
21080// UpdateAccountAuditConfiguration API operation for AWS IoT.
21081//
21082// Configures or reconfigures the Device Defender audit settings for this account.
21083// Settings include how audit notifications are sent and which audit checks
21084// are enabled or disabled.
21085//
21086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21087// with awserr.Error's Code and Message methods to get detailed information about
21088// the error.
21089//
21090// See the AWS API reference guide for AWS IoT's
21091// API operation UpdateAccountAuditConfiguration for usage and error information.
21092//
21093// Returned Error Types:
21094//   * InvalidRequestException
21095//   The request is not valid.
21096//
21097//   * ThrottlingException
21098//   The rate exceeds the limit.
21099//
21100//   * InternalFailureException
21101//   An unexpected error has occurred.
21102//
21103func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
21104	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21105	return out, req.Send()
21106}
21107
21108// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
21109// the ability to pass a context and additional request options.
21110//
21111// See UpdateAccountAuditConfiguration for details on how to use this API operation.
21112//
21113// The context must be non-nil and will be used for request cancellation. If
21114// the context is nil a panic will occur. In the future the SDK may create
21115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21116// for more information on using Contexts.
21117func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
21118	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21119	req.SetContext(ctx)
21120	req.ApplyOptions(opts...)
21121	return out, req.Send()
21122}
21123
21124const opUpdateAuditSuppression = "UpdateAuditSuppression"
21125
21126// UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
21127// client's request for the UpdateAuditSuppression operation. The "output" return
21128// value will be populated with the request's response once the request completes
21129// successfully.
21130//
21131// Use "Send" method on the returned Request to send the API call to the service.
21132// the "output" return value is not valid until after Send returns without error.
21133//
21134// See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
21135// API call, and error handling.
21136//
21137// This method is useful when you want to inject custom logic or configuration
21138// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21139//
21140//
21141//    // Example sending a request using the UpdateAuditSuppressionRequest method.
21142//    req, resp := client.UpdateAuditSuppressionRequest(params)
21143//
21144//    err := req.Send()
21145//    if err == nil { // resp is now filled
21146//        fmt.Println(resp)
21147//    }
21148func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
21149	op := &request.Operation{
21150		Name:       opUpdateAuditSuppression,
21151		HTTPMethod: "PATCH",
21152		HTTPPath:   "/audit/suppressions/update",
21153	}
21154
21155	if input == nil {
21156		input = &UpdateAuditSuppressionInput{}
21157	}
21158
21159	output = &UpdateAuditSuppressionOutput{}
21160	req = c.newRequest(op, input, output)
21161	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21162	return
21163}
21164
21165// UpdateAuditSuppression API operation for AWS IoT.
21166//
21167// Updates a Device Defender audit suppression.
21168//
21169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21170// with awserr.Error's Code and Message methods to get detailed information about
21171// the error.
21172//
21173// See the AWS API reference guide for AWS IoT's
21174// API operation UpdateAuditSuppression for usage and error information.
21175//
21176// Returned Error Types:
21177//   * InvalidRequestException
21178//   The request is not valid.
21179//
21180//   * ResourceNotFoundException
21181//   The specified resource does not exist.
21182//
21183//   * ThrottlingException
21184//   The rate exceeds the limit.
21185//
21186//   * InternalFailureException
21187//   An unexpected error has occurred.
21188//
21189func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
21190	req, out := c.UpdateAuditSuppressionRequest(input)
21191	return out, req.Send()
21192}
21193
21194// UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
21195// the ability to pass a context and additional request options.
21196//
21197// See UpdateAuditSuppression for details on how to use this API operation.
21198//
21199// The context must be non-nil and will be used for request cancellation. If
21200// the context is nil a panic will occur. In the future the SDK may create
21201// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21202// for more information on using Contexts.
21203func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
21204	req, out := c.UpdateAuditSuppressionRequest(input)
21205	req.SetContext(ctx)
21206	req.ApplyOptions(opts...)
21207	return out, req.Send()
21208}
21209
21210const opUpdateAuthorizer = "UpdateAuthorizer"
21211
21212// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
21213// client's request for the UpdateAuthorizer operation. The "output" return
21214// value will be populated with the request's response once the request completes
21215// successfully.
21216//
21217// Use "Send" method on the returned Request to send the API call to the service.
21218// the "output" return value is not valid until after Send returns without error.
21219//
21220// See UpdateAuthorizer for more information on using the UpdateAuthorizer
21221// API call, and error handling.
21222//
21223// This method is useful when you want to inject custom logic or configuration
21224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21225//
21226//
21227//    // Example sending a request using the UpdateAuthorizerRequest method.
21228//    req, resp := client.UpdateAuthorizerRequest(params)
21229//
21230//    err := req.Send()
21231//    if err == nil { // resp is now filled
21232//        fmt.Println(resp)
21233//    }
21234func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
21235	op := &request.Operation{
21236		Name:       opUpdateAuthorizer,
21237		HTTPMethod: "PUT",
21238		HTTPPath:   "/authorizer/{authorizerName}",
21239	}
21240
21241	if input == nil {
21242		input = &UpdateAuthorizerInput{}
21243	}
21244
21245	output = &UpdateAuthorizerOutput{}
21246	req = c.newRequest(op, input, output)
21247	return
21248}
21249
21250// UpdateAuthorizer API operation for AWS IoT.
21251//
21252// Updates an authorizer.
21253//
21254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21255// with awserr.Error's Code and Message methods to get detailed information about
21256// the error.
21257//
21258// See the AWS API reference guide for AWS IoT's
21259// API operation UpdateAuthorizer for usage and error information.
21260//
21261// Returned Error Types:
21262//   * ResourceNotFoundException
21263//   The specified resource does not exist.
21264//
21265//   * InvalidRequestException
21266//   The request is not valid.
21267//
21268//   * LimitExceededException
21269//   A limit has been exceeded.
21270//
21271//   * ThrottlingException
21272//   The rate exceeds the limit.
21273//
21274//   * UnauthorizedException
21275//   You are not authorized to perform this operation.
21276//
21277//   * ServiceUnavailableException
21278//   The service is temporarily unavailable.
21279//
21280//   * InternalFailureException
21281//   An unexpected error has occurred.
21282//
21283func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
21284	req, out := c.UpdateAuthorizerRequest(input)
21285	return out, req.Send()
21286}
21287
21288// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
21289// the ability to pass a context and additional request options.
21290//
21291// See UpdateAuthorizer for details on how to use this API operation.
21292//
21293// The context must be non-nil and will be used for request cancellation. If
21294// the context is nil a panic will occur. In the future the SDK may create
21295// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21296// for more information on using Contexts.
21297func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
21298	req, out := c.UpdateAuthorizerRequest(input)
21299	req.SetContext(ctx)
21300	req.ApplyOptions(opts...)
21301	return out, req.Send()
21302}
21303
21304const opUpdateBillingGroup = "UpdateBillingGroup"
21305
21306// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
21307// client's request for the UpdateBillingGroup operation. The "output" return
21308// value will be populated with the request's response once the request completes
21309// successfully.
21310//
21311// Use "Send" method on the returned Request to send the API call to the service.
21312// the "output" return value is not valid until after Send returns without error.
21313//
21314// See UpdateBillingGroup for more information on using the UpdateBillingGroup
21315// API call, and error handling.
21316//
21317// This method is useful when you want to inject custom logic or configuration
21318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21319//
21320//
21321//    // Example sending a request using the UpdateBillingGroupRequest method.
21322//    req, resp := client.UpdateBillingGroupRequest(params)
21323//
21324//    err := req.Send()
21325//    if err == nil { // resp is now filled
21326//        fmt.Println(resp)
21327//    }
21328func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
21329	op := &request.Operation{
21330		Name:       opUpdateBillingGroup,
21331		HTTPMethod: "PATCH",
21332		HTTPPath:   "/billing-groups/{billingGroupName}",
21333	}
21334
21335	if input == nil {
21336		input = &UpdateBillingGroupInput{}
21337	}
21338
21339	output = &UpdateBillingGroupOutput{}
21340	req = c.newRequest(op, input, output)
21341	return
21342}
21343
21344// UpdateBillingGroup API operation for AWS IoT.
21345//
21346// Updates information about the billing group.
21347//
21348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21349// with awserr.Error's Code and Message methods to get detailed information about
21350// the error.
21351//
21352// See the AWS API reference guide for AWS IoT's
21353// API operation UpdateBillingGroup for usage and error information.
21354//
21355// Returned Error Types:
21356//   * InvalidRequestException
21357//   The request is not valid.
21358//
21359//   * VersionConflictException
21360//   An exception thrown when the version of an entity specified with the expectedVersion
21361//   parameter does not match the latest version in the system.
21362//
21363//   * ThrottlingException
21364//   The rate exceeds the limit.
21365//
21366//   * InternalFailureException
21367//   An unexpected error has occurred.
21368//
21369//   * ResourceNotFoundException
21370//   The specified resource does not exist.
21371//
21372func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
21373	req, out := c.UpdateBillingGroupRequest(input)
21374	return out, req.Send()
21375}
21376
21377// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
21378// the ability to pass a context and additional request options.
21379//
21380// See UpdateBillingGroup for details on how to use this API operation.
21381//
21382// The context must be non-nil and will be used for request cancellation. If
21383// the context is nil a panic will occur. In the future the SDK may create
21384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21385// for more information on using Contexts.
21386func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
21387	req, out := c.UpdateBillingGroupRequest(input)
21388	req.SetContext(ctx)
21389	req.ApplyOptions(opts...)
21390	return out, req.Send()
21391}
21392
21393const opUpdateCACertificate = "UpdateCACertificate"
21394
21395// UpdateCACertificateRequest generates a "aws/request.Request" representing the
21396// client's request for the UpdateCACertificate operation. The "output" return
21397// value will be populated with the request's response once the request completes
21398// successfully.
21399//
21400// Use "Send" method on the returned Request to send the API call to the service.
21401// the "output" return value is not valid until after Send returns without error.
21402//
21403// See UpdateCACertificate for more information on using the UpdateCACertificate
21404// API call, and error handling.
21405//
21406// This method is useful when you want to inject custom logic or configuration
21407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21408//
21409//
21410//    // Example sending a request using the UpdateCACertificateRequest method.
21411//    req, resp := client.UpdateCACertificateRequest(params)
21412//
21413//    err := req.Send()
21414//    if err == nil { // resp is now filled
21415//        fmt.Println(resp)
21416//    }
21417func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
21418	op := &request.Operation{
21419		Name:       opUpdateCACertificate,
21420		HTTPMethod: "PUT",
21421		HTTPPath:   "/cacertificate/{caCertificateId}",
21422	}
21423
21424	if input == nil {
21425		input = &UpdateCACertificateInput{}
21426	}
21427
21428	output = &UpdateCACertificateOutput{}
21429	req = c.newRequest(op, input, output)
21430	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21431	return
21432}
21433
21434// UpdateCACertificate API operation for AWS IoT.
21435//
21436// Updates a registered CA certificate.
21437//
21438// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21439// with awserr.Error's Code and Message methods to get detailed information about
21440// the error.
21441//
21442// See the AWS API reference guide for AWS IoT's
21443// API operation UpdateCACertificate for usage and error information.
21444//
21445// Returned Error Types:
21446//   * ResourceNotFoundException
21447//   The specified resource does not exist.
21448//
21449//   * InvalidRequestException
21450//   The request is not valid.
21451//
21452//   * ThrottlingException
21453//   The rate exceeds the limit.
21454//
21455//   * UnauthorizedException
21456//   You are not authorized to perform this operation.
21457//
21458//   * ServiceUnavailableException
21459//   The service is temporarily unavailable.
21460//
21461//   * InternalFailureException
21462//   An unexpected error has occurred.
21463//
21464func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
21465	req, out := c.UpdateCACertificateRequest(input)
21466	return out, req.Send()
21467}
21468
21469// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
21470// the ability to pass a context and additional request options.
21471//
21472// See UpdateCACertificate for details on how to use this API operation.
21473//
21474// The context must be non-nil and will be used for request cancellation. If
21475// the context is nil a panic will occur. In the future the SDK may create
21476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21477// for more information on using Contexts.
21478func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
21479	req, out := c.UpdateCACertificateRequest(input)
21480	req.SetContext(ctx)
21481	req.ApplyOptions(opts...)
21482	return out, req.Send()
21483}
21484
21485const opUpdateCertificate = "UpdateCertificate"
21486
21487// UpdateCertificateRequest generates a "aws/request.Request" representing the
21488// client's request for the UpdateCertificate operation. The "output" return
21489// value will be populated with the request's response once the request completes
21490// successfully.
21491//
21492// Use "Send" method on the returned Request to send the API call to the service.
21493// the "output" return value is not valid until after Send returns without error.
21494//
21495// See UpdateCertificate for more information on using the UpdateCertificate
21496// API call, and error handling.
21497//
21498// This method is useful when you want to inject custom logic or configuration
21499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21500//
21501//
21502//    // Example sending a request using the UpdateCertificateRequest method.
21503//    req, resp := client.UpdateCertificateRequest(params)
21504//
21505//    err := req.Send()
21506//    if err == nil { // resp is now filled
21507//        fmt.Println(resp)
21508//    }
21509func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
21510	op := &request.Operation{
21511		Name:       opUpdateCertificate,
21512		HTTPMethod: "PUT",
21513		HTTPPath:   "/certificates/{certificateId}",
21514	}
21515
21516	if input == nil {
21517		input = &UpdateCertificateInput{}
21518	}
21519
21520	output = &UpdateCertificateOutput{}
21521	req = c.newRequest(op, input, output)
21522	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21523	return
21524}
21525
21526// UpdateCertificate API operation for AWS IoT.
21527//
21528// Updates the status of the specified certificate. This operation is idempotent.
21529//
21530// Certificates must be in the ACTIVE state to authenticate devices that use
21531// a certificate to connect to AWS IoT.
21532//
21533// Within a few minutes of updating a certificate from the ACTIVE state to any
21534// other state, AWS IoT disconnects all devices that used that certificate to
21535// connect. Devices cannot use a certificate that is not in the ACTIVE state
21536// to reconnect.
21537//
21538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21539// with awserr.Error's Code and Message methods to get detailed information about
21540// the error.
21541//
21542// See the AWS API reference guide for AWS IoT's
21543// API operation UpdateCertificate for usage and error information.
21544//
21545// Returned Error Types:
21546//   * ResourceNotFoundException
21547//   The specified resource does not exist.
21548//
21549//   * CertificateStateException
21550//   The certificate operation is not allowed.
21551//
21552//   * InvalidRequestException
21553//   The request is not valid.
21554//
21555//   * ThrottlingException
21556//   The rate exceeds the limit.
21557//
21558//   * UnauthorizedException
21559//   You are not authorized to perform this operation.
21560//
21561//   * ServiceUnavailableException
21562//   The service is temporarily unavailable.
21563//
21564//   * InternalFailureException
21565//   An unexpected error has occurred.
21566//
21567func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
21568	req, out := c.UpdateCertificateRequest(input)
21569	return out, req.Send()
21570}
21571
21572// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
21573// the ability to pass a context and additional request options.
21574//
21575// See UpdateCertificate for details on how to use this API operation.
21576//
21577// The context must be non-nil and will be used for request cancellation. If
21578// the context is nil a panic will occur. In the future the SDK may create
21579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21580// for more information on using Contexts.
21581func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
21582	req, out := c.UpdateCertificateRequest(input)
21583	req.SetContext(ctx)
21584	req.ApplyOptions(opts...)
21585	return out, req.Send()
21586}
21587
21588const opUpdateCustomMetric = "UpdateCustomMetric"
21589
21590// UpdateCustomMetricRequest generates a "aws/request.Request" representing the
21591// client's request for the UpdateCustomMetric operation. The "output" return
21592// value will be populated with the request's response once the request completes
21593// successfully.
21594//
21595// Use "Send" method on the returned Request to send the API call to the service.
21596// the "output" return value is not valid until after Send returns without error.
21597//
21598// See UpdateCustomMetric for more information on using the UpdateCustomMetric
21599// API call, and error handling.
21600//
21601// This method is useful when you want to inject custom logic or configuration
21602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21603//
21604//
21605//    // Example sending a request using the UpdateCustomMetricRequest method.
21606//    req, resp := client.UpdateCustomMetricRequest(params)
21607//
21608//    err := req.Send()
21609//    if err == nil { // resp is now filled
21610//        fmt.Println(resp)
21611//    }
21612func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
21613	op := &request.Operation{
21614		Name:       opUpdateCustomMetric,
21615		HTTPMethod: "PATCH",
21616		HTTPPath:   "/custom-metric/{metricName}",
21617	}
21618
21619	if input == nil {
21620		input = &UpdateCustomMetricInput{}
21621	}
21622
21623	output = &UpdateCustomMetricOutput{}
21624	req = c.newRequest(op, input, output)
21625	return
21626}
21627
21628// UpdateCustomMetric API operation for AWS IoT.
21629//
21630// Updates a Device Defender detect custom metric.
21631//
21632// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21633// with awserr.Error's Code and Message methods to get detailed information about
21634// the error.
21635//
21636// See the AWS API reference guide for AWS IoT's
21637// API operation UpdateCustomMetric for usage and error information.
21638//
21639// Returned Error Types:
21640//   * InvalidRequestException
21641//   The request is not valid.
21642//
21643//   * ResourceNotFoundException
21644//   The specified resource does not exist.
21645//
21646//   * ThrottlingException
21647//   The rate exceeds the limit.
21648//
21649//   * InternalFailureException
21650//   An unexpected error has occurred.
21651//
21652func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
21653	req, out := c.UpdateCustomMetricRequest(input)
21654	return out, req.Send()
21655}
21656
21657// UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
21658// the ability to pass a context and additional request options.
21659//
21660// See UpdateCustomMetric for details on how to use this API operation.
21661//
21662// The context must be non-nil and will be used for request cancellation. If
21663// the context is nil a panic will occur. In the future the SDK may create
21664// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21665// for more information on using Contexts.
21666func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
21667	req, out := c.UpdateCustomMetricRequest(input)
21668	req.SetContext(ctx)
21669	req.ApplyOptions(opts...)
21670	return out, req.Send()
21671}
21672
21673const opUpdateDimension = "UpdateDimension"
21674
21675// UpdateDimensionRequest generates a "aws/request.Request" representing the
21676// client's request for the UpdateDimension operation. The "output" return
21677// value will be populated with the request's response once the request completes
21678// successfully.
21679//
21680// Use "Send" method on the returned Request to send the API call to the service.
21681// the "output" return value is not valid until after Send returns without error.
21682//
21683// See UpdateDimension for more information on using the UpdateDimension
21684// API call, and error handling.
21685//
21686// This method is useful when you want to inject custom logic or configuration
21687// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21688//
21689//
21690//    // Example sending a request using the UpdateDimensionRequest method.
21691//    req, resp := client.UpdateDimensionRequest(params)
21692//
21693//    err := req.Send()
21694//    if err == nil { // resp is now filled
21695//        fmt.Println(resp)
21696//    }
21697func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
21698	op := &request.Operation{
21699		Name:       opUpdateDimension,
21700		HTTPMethod: "PATCH",
21701		HTTPPath:   "/dimensions/{name}",
21702	}
21703
21704	if input == nil {
21705		input = &UpdateDimensionInput{}
21706	}
21707
21708	output = &UpdateDimensionOutput{}
21709	req = c.newRequest(op, input, output)
21710	return
21711}
21712
21713// UpdateDimension API operation for AWS IoT.
21714//
21715// Updates the definition for a dimension. You cannot change the type of a dimension
21716// after it is created (you can delete it and recreate it).
21717//
21718// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21719// with awserr.Error's Code and Message methods to get detailed information about
21720// the error.
21721//
21722// See the AWS API reference guide for AWS IoT's
21723// API operation UpdateDimension for usage and error information.
21724//
21725// Returned Error Types:
21726//   * InternalFailureException
21727//   An unexpected error has occurred.
21728//
21729//   * InvalidRequestException
21730//   The request is not valid.
21731//
21732//   * ResourceNotFoundException
21733//   The specified resource does not exist.
21734//
21735//   * ThrottlingException
21736//   The rate exceeds the limit.
21737//
21738func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
21739	req, out := c.UpdateDimensionRequest(input)
21740	return out, req.Send()
21741}
21742
21743// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
21744// the ability to pass a context and additional request options.
21745//
21746// See UpdateDimension for details on how to use this API operation.
21747//
21748// The context must be non-nil and will be used for request cancellation. If
21749// the context is nil a panic will occur. In the future the SDK may create
21750// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21751// for more information on using Contexts.
21752func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
21753	req, out := c.UpdateDimensionRequest(input)
21754	req.SetContext(ctx)
21755	req.ApplyOptions(opts...)
21756	return out, req.Send()
21757}
21758
21759const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
21760
21761// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
21762// client's request for the UpdateDomainConfiguration operation. The "output" return
21763// value will be populated with the request's response once the request completes
21764// successfully.
21765//
21766// Use "Send" method on the returned Request to send the API call to the service.
21767// the "output" return value is not valid until after Send returns without error.
21768//
21769// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
21770// API call, and error handling.
21771//
21772// This method is useful when you want to inject custom logic or configuration
21773// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21774//
21775//
21776//    // Example sending a request using the UpdateDomainConfigurationRequest method.
21777//    req, resp := client.UpdateDomainConfigurationRequest(params)
21778//
21779//    err := req.Send()
21780//    if err == nil { // resp is now filled
21781//        fmt.Println(resp)
21782//    }
21783func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
21784	op := &request.Operation{
21785		Name:       opUpdateDomainConfiguration,
21786		HTTPMethod: "PUT",
21787		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
21788	}
21789
21790	if input == nil {
21791		input = &UpdateDomainConfigurationInput{}
21792	}
21793
21794	output = &UpdateDomainConfigurationOutput{}
21795	req = c.newRequest(op, input, output)
21796	return
21797}
21798
21799// UpdateDomainConfiguration API operation for AWS IoT.
21800//
21801// Updates values stored in the domain configuration. Domain configurations
21802// for default endpoints can't be updated.
21803//
21804// The domain configuration feature is in public preview and is subject to change.
21805//
21806// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21807// with awserr.Error's Code and Message methods to get detailed information about
21808// the error.
21809//
21810// See the AWS API reference guide for AWS IoT's
21811// API operation UpdateDomainConfiguration for usage and error information.
21812//
21813// Returned Error Types:
21814//   * ResourceNotFoundException
21815//   The specified resource does not exist.
21816//
21817//   * CertificateValidationException
21818//   The certificate is invalid.
21819//
21820//   * InvalidRequestException
21821//   The request is not valid.
21822//
21823//   * ThrottlingException
21824//   The rate exceeds the limit.
21825//
21826//   * UnauthorizedException
21827//   You are not authorized to perform this operation.
21828//
21829//   * ServiceUnavailableException
21830//   The service is temporarily unavailable.
21831//
21832//   * InternalFailureException
21833//   An unexpected error has occurred.
21834//
21835func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
21836	req, out := c.UpdateDomainConfigurationRequest(input)
21837	return out, req.Send()
21838}
21839
21840// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
21841// the ability to pass a context and additional request options.
21842//
21843// See UpdateDomainConfiguration for details on how to use this API operation.
21844//
21845// The context must be non-nil and will be used for request cancellation. If
21846// the context is nil a panic will occur. In the future the SDK may create
21847// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21848// for more information on using Contexts.
21849func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
21850	req, out := c.UpdateDomainConfigurationRequest(input)
21851	req.SetContext(ctx)
21852	req.ApplyOptions(opts...)
21853	return out, req.Send()
21854}
21855
21856const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
21857
21858// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
21859// client's request for the UpdateDynamicThingGroup operation. The "output" return
21860// value will be populated with the request's response once the request completes
21861// successfully.
21862//
21863// Use "Send" method on the returned Request to send the API call to the service.
21864// the "output" return value is not valid until after Send returns without error.
21865//
21866// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
21867// API call, and error handling.
21868//
21869// This method is useful when you want to inject custom logic or configuration
21870// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21871//
21872//
21873//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
21874//    req, resp := client.UpdateDynamicThingGroupRequest(params)
21875//
21876//    err := req.Send()
21877//    if err == nil { // resp is now filled
21878//        fmt.Println(resp)
21879//    }
21880func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
21881	op := &request.Operation{
21882		Name:       opUpdateDynamicThingGroup,
21883		HTTPMethod: "PATCH",
21884		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
21885	}
21886
21887	if input == nil {
21888		input = &UpdateDynamicThingGroupInput{}
21889	}
21890
21891	output = &UpdateDynamicThingGroupOutput{}
21892	req = c.newRequest(op, input, output)
21893	return
21894}
21895
21896// UpdateDynamicThingGroup API operation for AWS IoT.
21897//
21898// Updates a dynamic thing group.
21899//
21900// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21901// with awserr.Error's Code and Message methods to get detailed information about
21902// the error.
21903//
21904// See the AWS API reference guide for AWS IoT's
21905// API operation UpdateDynamicThingGroup for usage and error information.
21906//
21907// Returned Error Types:
21908//   * InvalidRequestException
21909//   The request is not valid.
21910//
21911//   * VersionConflictException
21912//   An exception thrown when the version of an entity specified with the expectedVersion
21913//   parameter does not match the latest version in the system.
21914//
21915//   * ThrottlingException
21916//   The rate exceeds the limit.
21917//
21918//   * InternalFailureException
21919//   An unexpected error has occurred.
21920//
21921//   * ResourceNotFoundException
21922//   The specified resource does not exist.
21923//
21924//   * InvalidQueryException
21925//   The query is invalid.
21926//
21927func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
21928	req, out := c.UpdateDynamicThingGroupRequest(input)
21929	return out, req.Send()
21930}
21931
21932// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
21933// the ability to pass a context and additional request options.
21934//
21935// See UpdateDynamicThingGroup for details on how to use this API operation.
21936//
21937// The context must be non-nil and will be used for request cancellation. If
21938// the context is nil a panic will occur. In the future the SDK may create
21939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21940// for more information on using Contexts.
21941func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
21942	req, out := c.UpdateDynamicThingGroupRequest(input)
21943	req.SetContext(ctx)
21944	req.ApplyOptions(opts...)
21945	return out, req.Send()
21946}
21947
21948const opUpdateEventConfigurations = "UpdateEventConfigurations"
21949
21950// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
21951// client's request for the UpdateEventConfigurations operation. The "output" return
21952// value will be populated with the request's response once the request completes
21953// successfully.
21954//
21955// Use "Send" method on the returned Request to send the API call to the service.
21956// the "output" return value is not valid until after Send returns without error.
21957//
21958// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
21959// API call, and error handling.
21960//
21961// This method is useful when you want to inject custom logic or configuration
21962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21963//
21964//
21965//    // Example sending a request using the UpdateEventConfigurationsRequest method.
21966//    req, resp := client.UpdateEventConfigurationsRequest(params)
21967//
21968//    err := req.Send()
21969//    if err == nil { // resp is now filled
21970//        fmt.Println(resp)
21971//    }
21972func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
21973	op := &request.Operation{
21974		Name:       opUpdateEventConfigurations,
21975		HTTPMethod: "PATCH",
21976		HTTPPath:   "/event-configurations",
21977	}
21978
21979	if input == nil {
21980		input = &UpdateEventConfigurationsInput{}
21981	}
21982
21983	output = &UpdateEventConfigurationsOutput{}
21984	req = c.newRequest(op, input, output)
21985	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21986	return
21987}
21988
21989// UpdateEventConfigurations API operation for AWS IoT.
21990//
21991// Updates the event configurations.
21992//
21993// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21994// with awserr.Error's Code and Message methods to get detailed information about
21995// the error.
21996//
21997// See the AWS API reference guide for AWS IoT's
21998// API operation UpdateEventConfigurations for usage and error information.
21999//
22000// Returned Error Types:
22001//   * InvalidRequestException
22002//   The request is not valid.
22003//
22004//   * InternalFailureException
22005//   An unexpected error has occurred.
22006//
22007//   * ThrottlingException
22008//   The rate exceeds the limit.
22009//
22010func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
22011	req, out := c.UpdateEventConfigurationsRequest(input)
22012	return out, req.Send()
22013}
22014
22015// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
22016// the ability to pass a context and additional request options.
22017//
22018// See UpdateEventConfigurations for details on how to use this API operation.
22019//
22020// The context must be non-nil and will be used for request cancellation. If
22021// the context is nil a panic will occur. In the future the SDK may create
22022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22023// for more information on using Contexts.
22024func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
22025	req, out := c.UpdateEventConfigurationsRequest(input)
22026	req.SetContext(ctx)
22027	req.ApplyOptions(opts...)
22028	return out, req.Send()
22029}
22030
22031const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
22032
22033// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
22034// client's request for the UpdateIndexingConfiguration operation. The "output" return
22035// value will be populated with the request's response once the request completes
22036// successfully.
22037//
22038// Use "Send" method on the returned Request to send the API call to the service.
22039// the "output" return value is not valid until after Send returns without error.
22040//
22041// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
22042// API call, and error handling.
22043//
22044// This method is useful when you want to inject custom logic or configuration
22045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22046//
22047//
22048//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
22049//    req, resp := client.UpdateIndexingConfigurationRequest(params)
22050//
22051//    err := req.Send()
22052//    if err == nil { // resp is now filled
22053//        fmt.Println(resp)
22054//    }
22055func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
22056	op := &request.Operation{
22057		Name:       opUpdateIndexingConfiguration,
22058		HTTPMethod: "POST",
22059		HTTPPath:   "/indexing/config",
22060	}
22061
22062	if input == nil {
22063		input = &UpdateIndexingConfigurationInput{}
22064	}
22065
22066	output = &UpdateIndexingConfigurationOutput{}
22067	req = c.newRequest(op, input, output)
22068	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22069	return
22070}
22071
22072// UpdateIndexingConfiguration API operation for AWS IoT.
22073//
22074// Updates the search configuration.
22075//
22076// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22077// with awserr.Error's Code and Message methods to get detailed information about
22078// the error.
22079//
22080// See the AWS API reference guide for AWS IoT's
22081// API operation UpdateIndexingConfiguration for usage and error information.
22082//
22083// Returned Error Types:
22084//   * InvalidRequestException
22085//   The request is not valid.
22086//
22087//   * ThrottlingException
22088//   The rate exceeds the limit.
22089//
22090//   * UnauthorizedException
22091//   You are not authorized to perform this operation.
22092//
22093//   * ServiceUnavailableException
22094//   The service is temporarily unavailable.
22095//
22096//   * InternalFailureException
22097//   An unexpected error has occurred.
22098//
22099func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
22100	req, out := c.UpdateIndexingConfigurationRequest(input)
22101	return out, req.Send()
22102}
22103
22104// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
22105// the ability to pass a context and additional request options.
22106//
22107// See UpdateIndexingConfiguration for details on how to use this API operation.
22108//
22109// The context must be non-nil and will be used for request cancellation. If
22110// the context is nil a panic will occur. In the future the SDK may create
22111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22112// for more information on using Contexts.
22113func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
22114	req, out := c.UpdateIndexingConfigurationRequest(input)
22115	req.SetContext(ctx)
22116	req.ApplyOptions(opts...)
22117	return out, req.Send()
22118}
22119
22120const opUpdateJob = "UpdateJob"
22121
22122// UpdateJobRequest generates a "aws/request.Request" representing the
22123// client's request for the UpdateJob operation. The "output" return
22124// value will be populated with the request's response once the request completes
22125// successfully.
22126//
22127// Use "Send" method on the returned Request to send the API call to the service.
22128// the "output" return value is not valid until after Send returns without error.
22129//
22130// See UpdateJob for more information on using the UpdateJob
22131// API call, and error handling.
22132//
22133// This method is useful when you want to inject custom logic or configuration
22134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22135//
22136//
22137//    // Example sending a request using the UpdateJobRequest method.
22138//    req, resp := client.UpdateJobRequest(params)
22139//
22140//    err := req.Send()
22141//    if err == nil { // resp is now filled
22142//        fmt.Println(resp)
22143//    }
22144func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
22145	op := &request.Operation{
22146		Name:       opUpdateJob,
22147		HTTPMethod: "PATCH",
22148		HTTPPath:   "/jobs/{jobId}",
22149	}
22150
22151	if input == nil {
22152		input = &UpdateJobInput{}
22153	}
22154
22155	output = &UpdateJobOutput{}
22156	req = c.newRequest(op, input, output)
22157	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22158	return
22159}
22160
22161// UpdateJob API operation for AWS IoT.
22162//
22163// Updates supported fields of the specified job.
22164//
22165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22166// with awserr.Error's Code and Message methods to get detailed information about
22167// the error.
22168//
22169// See the AWS API reference guide for AWS IoT's
22170// API operation UpdateJob for usage and error information.
22171//
22172// Returned Error Types:
22173//   * InvalidRequestException
22174//   The request is not valid.
22175//
22176//   * ResourceNotFoundException
22177//   The specified resource does not exist.
22178//
22179//   * ThrottlingException
22180//   The rate exceeds the limit.
22181//
22182//   * ServiceUnavailableException
22183//   The service is temporarily unavailable.
22184//
22185func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
22186	req, out := c.UpdateJobRequest(input)
22187	return out, req.Send()
22188}
22189
22190// UpdateJobWithContext is the same as UpdateJob with the addition of
22191// the ability to pass a context and additional request options.
22192//
22193// See UpdateJob for details on how to use this API operation.
22194//
22195// The context must be non-nil and will be used for request cancellation. If
22196// the context is nil a panic will occur. In the future the SDK may create
22197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22198// for more information on using Contexts.
22199func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
22200	req, out := c.UpdateJobRequest(input)
22201	req.SetContext(ctx)
22202	req.ApplyOptions(opts...)
22203	return out, req.Send()
22204}
22205
22206const opUpdateMitigationAction = "UpdateMitigationAction"
22207
22208// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
22209// client's request for the UpdateMitigationAction operation. The "output" return
22210// value will be populated with the request's response once the request completes
22211// successfully.
22212//
22213// Use "Send" method on the returned Request to send the API call to the service.
22214// the "output" return value is not valid until after Send returns without error.
22215//
22216// See UpdateMitigationAction for more information on using the UpdateMitigationAction
22217// API call, and error handling.
22218//
22219// This method is useful when you want to inject custom logic or configuration
22220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22221//
22222//
22223//    // Example sending a request using the UpdateMitigationActionRequest method.
22224//    req, resp := client.UpdateMitigationActionRequest(params)
22225//
22226//    err := req.Send()
22227//    if err == nil { // resp is now filled
22228//        fmt.Println(resp)
22229//    }
22230func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
22231	op := &request.Operation{
22232		Name:       opUpdateMitigationAction,
22233		HTTPMethod: "PATCH",
22234		HTTPPath:   "/mitigationactions/actions/{actionName}",
22235	}
22236
22237	if input == nil {
22238		input = &UpdateMitigationActionInput{}
22239	}
22240
22241	output = &UpdateMitigationActionOutput{}
22242	req = c.newRequest(op, input, output)
22243	return
22244}
22245
22246// UpdateMitigationAction API operation for AWS IoT.
22247//
22248// Updates the definition for the specified mitigation action.
22249//
22250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22251// with awserr.Error's Code and Message methods to get detailed information about
22252// the error.
22253//
22254// See the AWS API reference guide for AWS IoT's
22255// API operation UpdateMitigationAction for usage and error information.
22256//
22257// Returned Error Types:
22258//   * InvalidRequestException
22259//   The request is not valid.
22260//
22261//   * ResourceNotFoundException
22262//   The specified resource does not exist.
22263//
22264//   * ThrottlingException
22265//   The rate exceeds the limit.
22266//
22267//   * InternalFailureException
22268//   An unexpected error has occurred.
22269//
22270func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
22271	req, out := c.UpdateMitigationActionRequest(input)
22272	return out, req.Send()
22273}
22274
22275// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
22276// the ability to pass a context and additional request options.
22277//
22278// See UpdateMitigationAction for details on how to use this API operation.
22279//
22280// The context must be non-nil and will be used for request cancellation. If
22281// the context is nil a panic will occur. In the future the SDK may create
22282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22283// for more information on using Contexts.
22284func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
22285	req, out := c.UpdateMitigationActionRequest(input)
22286	req.SetContext(ctx)
22287	req.ApplyOptions(opts...)
22288	return out, req.Send()
22289}
22290
22291const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
22292
22293// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
22294// client's request for the UpdateProvisioningTemplate operation. The "output" return
22295// value will be populated with the request's response once the request completes
22296// successfully.
22297//
22298// Use "Send" method on the returned Request to send the API call to the service.
22299// the "output" return value is not valid until after Send returns without error.
22300//
22301// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
22302// API call, and error handling.
22303//
22304// This method is useful when you want to inject custom logic or configuration
22305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22306//
22307//
22308//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
22309//    req, resp := client.UpdateProvisioningTemplateRequest(params)
22310//
22311//    err := req.Send()
22312//    if err == nil { // resp is now filled
22313//        fmt.Println(resp)
22314//    }
22315func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
22316	op := &request.Operation{
22317		Name:       opUpdateProvisioningTemplate,
22318		HTTPMethod: "PATCH",
22319		HTTPPath:   "/provisioning-templates/{templateName}",
22320	}
22321
22322	if input == nil {
22323		input = &UpdateProvisioningTemplateInput{}
22324	}
22325
22326	output = &UpdateProvisioningTemplateOutput{}
22327	req = c.newRequest(op, input, output)
22328	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22329	return
22330}
22331
22332// UpdateProvisioningTemplate API operation for AWS IoT.
22333//
22334// Updates a fleet provisioning template.
22335//
22336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22337// with awserr.Error's Code and Message methods to get detailed information about
22338// the error.
22339//
22340// See the AWS API reference guide for AWS IoT's
22341// API operation UpdateProvisioningTemplate for usage and error information.
22342//
22343// Returned Error Types:
22344//   * InternalFailureException
22345//   An unexpected error has occurred.
22346//
22347//   * InvalidRequestException
22348//   The request is not valid.
22349//
22350//   * ResourceNotFoundException
22351//   The specified resource does not exist.
22352//
22353//   * UnauthorizedException
22354//   You are not authorized to perform this operation.
22355//
22356//   * ConflictingResourceUpdateException
22357//   A conflicting resource update exception. This exception is thrown when two
22358//   pending updates cause a conflict.
22359//
22360func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
22361	req, out := c.UpdateProvisioningTemplateRequest(input)
22362	return out, req.Send()
22363}
22364
22365// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
22366// the ability to pass a context and additional request options.
22367//
22368// See UpdateProvisioningTemplate for details on how to use this API operation.
22369//
22370// The context must be non-nil and will be used for request cancellation. If
22371// the context is nil a panic will occur. In the future the SDK may create
22372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22373// for more information on using Contexts.
22374func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
22375	req, out := c.UpdateProvisioningTemplateRequest(input)
22376	req.SetContext(ctx)
22377	req.ApplyOptions(opts...)
22378	return out, req.Send()
22379}
22380
22381const opUpdateRoleAlias = "UpdateRoleAlias"
22382
22383// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
22384// client's request for the UpdateRoleAlias operation. The "output" return
22385// value will be populated with the request's response once the request completes
22386// successfully.
22387//
22388// Use "Send" method on the returned Request to send the API call to the service.
22389// the "output" return value is not valid until after Send returns without error.
22390//
22391// See UpdateRoleAlias for more information on using the UpdateRoleAlias
22392// API call, and error handling.
22393//
22394// This method is useful when you want to inject custom logic or configuration
22395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22396//
22397//
22398//    // Example sending a request using the UpdateRoleAliasRequest method.
22399//    req, resp := client.UpdateRoleAliasRequest(params)
22400//
22401//    err := req.Send()
22402//    if err == nil { // resp is now filled
22403//        fmt.Println(resp)
22404//    }
22405func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
22406	op := &request.Operation{
22407		Name:       opUpdateRoleAlias,
22408		HTTPMethod: "PUT",
22409		HTTPPath:   "/role-aliases/{roleAlias}",
22410	}
22411
22412	if input == nil {
22413		input = &UpdateRoleAliasInput{}
22414	}
22415
22416	output = &UpdateRoleAliasOutput{}
22417	req = c.newRequest(op, input, output)
22418	return
22419}
22420
22421// UpdateRoleAlias API operation for AWS IoT.
22422//
22423// Updates a role alias.
22424//
22425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22426// with awserr.Error's Code and Message methods to get detailed information about
22427// the error.
22428//
22429// See the AWS API reference guide for AWS IoT's
22430// API operation UpdateRoleAlias for usage and error information.
22431//
22432// Returned Error Types:
22433//   * ResourceNotFoundException
22434//   The specified resource does not exist.
22435//
22436//   * InvalidRequestException
22437//   The request is not valid.
22438//
22439//   * ThrottlingException
22440//   The rate exceeds the limit.
22441//
22442//   * UnauthorizedException
22443//   You are not authorized to perform this operation.
22444//
22445//   * ServiceUnavailableException
22446//   The service is temporarily unavailable.
22447//
22448//   * InternalFailureException
22449//   An unexpected error has occurred.
22450//
22451func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
22452	req, out := c.UpdateRoleAliasRequest(input)
22453	return out, req.Send()
22454}
22455
22456// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
22457// the ability to pass a context and additional request options.
22458//
22459// See UpdateRoleAlias for details on how to use this API operation.
22460//
22461// The context must be non-nil and will be used for request cancellation. If
22462// the context is nil a panic will occur. In the future the SDK may create
22463// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22464// for more information on using Contexts.
22465func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
22466	req, out := c.UpdateRoleAliasRequest(input)
22467	req.SetContext(ctx)
22468	req.ApplyOptions(opts...)
22469	return out, req.Send()
22470}
22471
22472const opUpdateScheduledAudit = "UpdateScheduledAudit"
22473
22474// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
22475// client's request for the UpdateScheduledAudit operation. The "output" return
22476// value will be populated with the request's response once the request completes
22477// successfully.
22478//
22479// Use "Send" method on the returned Request to send the API call to the service.
22480// the "output" return value is not valid until after Send returns without error.
22481//
22482// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
22483// API call, and error handling.
22484//
22485// This method is useful when you want to inject custom logic or configuration
22486// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22487//
22488//
22489//    // Example sending a request using the UpdateScheduledAuditRequest method.
22490//    req, resp := client.UpdateScheduledAuditRequest(params)
22491//
22492//    err := req.Send()
22493//    if err == nil { // resp is now filled
22494//        fmt.Println(resp)
22495//    }
22496func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
22497	op := &request.Operation{
22498		Name:       opUpdateScheduledAudit,
22499		HTTPMethod: "PATCH",
22500		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
22501	}
22502
22503	if input == nil {
22504		input = &UpdateScheduledAuditInput{}
22505	}
22506
22507	output = &UpdateScheduledAuditOutput{}
22508	req = c.newRequest(op, input, output)
22509	return
22510}
22511
22512// UpdateScheduledAudit API operation for AWS IoT.
22513//
22514// Updates a scheduled audit, including which checks are performed and how often
22515// the audit takes place.
22516//
22517// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22518// with awserr.Error's Code and Message methods to get detailed information about
22519// the error.
22520//
22521// See the AWS API reference guide for AWS IoT's
22522// API operation UpdateScheduledAudit for usage and error information.
22523//
22524// Returned Error Types:
22525//   * InvalidRequestException
22526//   The request is not valid.
22527//
22528//   * ResourceNotFoundException
22529//   The specified resource does not exist.
22530//
22531//   * ThrottlingException
22532//   The rate exceeds the limit.
22533//
22534//   * InternalFailureException
22535//   An unexpected error has occurred.
22536//
22537func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
22538	req, out := c.UpdateScheduledAuditRequest(input)
22539	return out, req.Send()
22540}
22541
22542// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
22543// the ability to pass a context and additional request options.
22544//
22545// See UpdateScheduledAudit for details on how to use this API operation.
22546//
22547// The context must be non-nil and will be used for request cancellation. If
22548// the context is nil a panic will occur. In the future the SDK may create
22549// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22550// for more information on using Contexts.
22551func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
22552	req, out := c.UpdateScheduledAuditRequest(input)
22553	req.SetContext(ctx)
22554	req.ApplyOptions(opts...)
22555	return out, req.Send()
22556}
22557
22558const opUpdateSecurityProfile = "UpdateSecurityProfile"
22559
22560// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
22561// client's request for the UpdateSecurityProfile operation. The "output" return
22562// value will be populated with the request's response once the request completes
22563// successfully.
22564//
22565// Use "Send" method on the returned Request to send the API call to the service.
22566// the "output" return value is not valid until after Send returns without error.
22567//
22568// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
22569// API call, and error handling.
22570//
22571// This method is useful when you want to inject custom logic or configuration
22572// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22573//
22574//
22575//    // Example sending a request using the UpdateSecurityProfileRequest method.
22576//    req, resp := client.UpdateSecurityProfileRequest(params)
22577//
22578//    err := req.Send()
22579//    if err == nil { // resp is now filled
22580//        fmt.Println(resp)
22581//    }
22582func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
22583	op := &request.Operation{
22584		Name:       opUpdateSecurityProfile,
22585		HTTPMethod: "PATCH",
22586		HTTPPath:   "/security-profiles/{securityProfileName}",
22587	}
22588
22589	if input == nil {
22590		input = &UpdateSecurityProfileInput{}
22591	}
22592
22593	output = &UpdateSecurityProfileOutput{}
22594	req = c.newRequest(op, input, output)
22595	return
22596}
22597
22598// UpdateSecurityProfile API operation for AWS IoT.
22599//
22600// Updates a Device Defender security profile.
22601//
22602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22603// with awserr.Error's Code and Message methods to get detailed information about
22604// the error.
22605//
22606// See the AWS API reference guide for AWS IoT's
22607// API operation UpdateSecurityProfile for usage and error information.
22608//
22609// Returned Error Types:
22610//   * InvalidRequestException
22611//   The request is not valid.
22612//
22613//   * ResourceNotFoundException
22614//   The specified resource does not exist.
22615//
22616//   * VersionConflictException
22617//   An exception thrown when the version of an entity specified with the expectedVersion
22618//   parameter does not match the latest version in the system.
22619//
22620//   * ThrottlingException
22621//   The rate exceeds the limit.
22622//
22623//   * InternalFailureException
22624//   An unexpected error has occurred.
22625//
22626func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
22627	req, out := c.UpdateSecurityProfileRequest(input)
22628	return out, req.Send()
22629}
22630
22631// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
22632// the ability to pass a context and additional request options.
22633//
22634// See UpdateSecurityProfile for details on how to use this API operation.
22635//
22636// The context must be non-nil and will be used for request cancellation. If
22637// the context is nil a panic will occur. In the future the SDK may create
22638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22639// for more information on using Contexts.
22640func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
22641	req, out := c.UpdateSecurityProfileRequest(input)
22642	req.SetContext(ctx)
22643	req.ApplyOptions(opts...)
22644	return out, req.Send()
22645}
22646
22647const opUpdateStream = "UpdateStream"
22648
22649// UpdateStreamRequest generates a "aws/request.Request" representing the
22650// client's request for the UpdateStream operation. The "output" return
22651// value will be populated with the request's response once the request completes
22652// successfully.
22653//
22654// Use "Send" method on the returned Request to send the API call to the service.
22655// the "output" return value is not valid until after Send returns without error.
22656//
22657// See UpdateStream for more information on using the UpdateStream
22658// API call, and error handling.
22659//
22660// This method is useful when you want to inject custom logic or configuration
22661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22662//
22663//
22664//    // Example sending a request using the UpdateStreamRequest method.
22665//    req, resp := client.UpdateStreamRequest(params)
22666//
22667//    err := req.Send()
22668//    if err == nil { // resp is now filled
22669//        fmt.Println(resp)
22670//    }
22671func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
22672	op := &request.Operation{
22673		Name:       opUpdateStream,
22674		HTTPMethod: "PUT",
22675		HTTPPath:   "/streams/{streamId}",
22676	}
22677
22678	if input == nil {
22679		input = &UpdateStreamInput{}
22680	}
22681
22682	output = &UpdateStreamOutput{}
22683	req = c.newRequest(op, input, output)
22684	return
22685}
22686
22687// UpdateStream API operation for AWS IoT.
22688//
22689// Updates an existing stream. The stream version will be incremented by one.
22690//
22691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22692// with awserr.Error's Code and Message methods to get detailed information about
22693// the error.
22694//
22695// See the AWS API reference guide for AWS IoT's
22696// API operation UpdateStream for usage and error information.
22697//
22698// Returned Error Types:
22699//   * InvalidRequestException
22700//   The request is not valid.
22701//
22702//   * ResourceNotFoundException
22703//   The specified resource does not exist.
22704//
22705//   * ThrottlingException
22706//   The rate exceeds the limit.
22707//
22708//   * UnauthorizedException
22709//   You are not authorized to perform this operation.
22710//
22711//   * ServiceUnavailableException
22712//   The service is temporarily unavailable.
22713//
22714//   * InternalFailureException
22715//   An unexpected error has occurred.
22716//
22717func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
22718	req, out := c.UpdateStreamRequest(input)
22719	return out, req.Send()
22720}
22721
22722// UpdateStreamWithContext is the same as UpdateStream with the addition of
22723// the ability to pass a context and additional request options.
22724//
22725// See UpdateStream for details on how to use this API operation.
22726//
22727// The context must be non-nil and will be used for request cancellation. If
22728// the context is nil a panic will occur. In the future the SDK may create
22729// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22730// for more information on using Contexts.
22731func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
22732	req, out := c.UpdateStreamRequest(input)
22733	req.SetContext(ctx)
22734	req.ApplyOptions(opts...)
22735	return out, req.Send()
22736}
22737
22738const opUpdateThing = "UpdateThing"
22739
22740// UpdateThingRequest generates a "aws/request.Request" representing the
22741// client's request for the UpdateThing operation. The "output" return
22742// value will be populated with the request's response once the request completes
22743// successfully.
22744//
22745// Use "Send" method on the returned Request to send the API call to the service.
22746// the "output" return value is not valid until after Send returns without error.
22747//
22748// See UpdateThing for more information on using the UpdateThing
22749// API call, and error handling.
22750//
22751// This method is useful when you want to inject custom logic or configuration
22752// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22753//
22754//
22755//    // Example sending a request using the UpdateThingRequest method.
22756//    req, resp := client.UpdateThingRequest(params)
22757//
22758//    err := req.Send()
22759//    if err == nil { // resp is now filled
22760//        fmt.Println(resp)
22761//    }
22762func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
22763	op := &request.Operation{
22764		Name:       opUpdateThing,
22765		HTTPMethod: "PATCH",
22766		HTTPPath:   "/things/{thingName}",
22767	}
22768
22769	if input == nil {
22770		input = &UpdateThingInput{}
22771	}
22772
22773	output = &UpdateThingOutput{}
22774	req = c.newRequest(op, input, output)
22775	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22776	return
22777}
22778
22779// UpdateThing API operation for AWS IoT.
22780//
22781// Updates the data for a thing.
22782//
22783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22784// with awserr.Error's Code and Message methods to get detailed information about
22785// the error.
22786//
22787// See the AWS API reference guide for AWS IoT's
22788// API operation UpdateThing for usage and error information.
22789//
22790// Returned Error Types:
22791//   * InvalidRequestException
22792//   The request is not valid.
22793//
22794//   * VersionConflictException
22795//   An exception thrown when the version of an entity specified with the expectedVersion
22796//   parameter does not match the latest version in the system.
22797//
22798//   * ThrottlingException
22799//   The rate exceeds the limit.
22800//
22801//   * UnauthorizedException
22802//   You are not authorized to perform this operation.
22803//
22804//   * ServiceUnavailableException
22805//   The service is temporarily unavailable.
22806//
22807//   * InternalFailureException
22808//   An unexpected error has occurred.
22809//
22810//   * ResourceNotFoundException
22811//   The specified resource does not exist.
22812//
22813func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
22814	req, out := c.UpdateThingRequest(input)
22815	return out, req.Send()
22816}
22817
22818// UpdateThingWithContext is the same as UpdateThing with the addition of
22819// the ability to pass a context and additional request options.
22820//
22821// See UpdateThing for details on how to use this API operation.
22822//
22823// The context must be non-nil and will be used for request cancellation. If
22824// the context is nil a panic will occur. In the future the SDK may create
22825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22826// for more information on using Contexts.
22827func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
22828	req, out := c.UpdateThingRequest(input)
22829	req.SetContext(ctx)
22830	req.ApplyOptions(opts...)
22831	return out, req.Send()
22832}
22833
22834const opUpdateThingGroup = "UpdateThingGroup"
22835
22836// UpdateThingGroupRequest generates a "aws/request.Request" representing the
22837// client's request for the UpdateThingGroup operation. The "output" return
22838// value will be populated with the request's response once the request completes
22839// successfully.
22840//
22841// Use "Send" method on the returned Request to send the API call to the service.
22842// the "output" return value is not valid until after Send returns without error.
22843//
22844// See UpdateThingGroup for more information on using the UpdateThingGroup
22845// API call, and error handling.
22846//
22847// This method is useful when you want to inject custom logic or configuration
22848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22849//
22850//
22851//    // Example sending a request using the UpdateThingGroupRequest method.
22852//    req, resp := client.UpdateThingGroupRequest(params)
22853//
22854//    err := req.Send()
22855//    if err == nil { // resp is now filled
22856//        fmt.Println(resp)
22857//    }
22858func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
22859	op := &request.Operation{
22860		Name:       opUpdateThingGroup,
22861		HTTPMethod: "PATCH",
22862		HTTPPath:   "/thing-groups/{thingGroupName}",
22863	}
22864
22865	if input == nil {
22866		input = &UpdateThingGroupInput{}
22867	}
22868
22869	output = &UpdateThingGroupOutput{}
22870	req = c.newRequest(op, input, output)
22871	return
22872}
22873
22874// UpdateThingGroup API operation for AWS IoT.
22875//
22876// Update a thing group.
22877//
22878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22879// with awserr.Error's Code and Message methods to get detailed information about
22880// the error.
22881//
22882// See the AWS API reference guide for AWS IoT's
22883// API operation UpdateThingGroup for usage and error information.
22884//
22885// Returned Error Types:
22886//   * InvalidRequestException
22887//   The request is not valid.
22888//
22889//   * VersionConflictException
22890//   An exception thrown when the version of an entity specified with the expectedVersion
22891//   parameter does not match the latest version in the system.
22892//
22893//   * ThrottlingException
22894//   The rate exceeds the limit.
22895//
22896//   * InternalFailureException
22897//   An unexpected error has occurred.
22898//
22899//   * ResourceNotFoundException
22900//   The specified resource does not exist.
22901//
22902func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
22903	req, out := c.UpdateThingGroupRequest(input)
22904	return out, req.Send()
22905}
22906
22907// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
22908// the ability to pass a context and additional request options.
22909//
22910// See UpdateThingGroup for details on how to use this API operation.
22911//
22912// The context must be non-nil and will be used for request cancellation. If
22913// the context is nil a panic will occur. In the future the SDK may create
22914// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22915// for more information on using Contexts.
22916func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
22917	req, out := c.UpdateThingGroupRequest(input)
22918	req.SetContext(ctx)
22919	req.ApplyOptions(opts...)
22920	return out, req.Send()
22921}
22922
22923const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
22924
22925// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
22926// client's request for the UpdateThingGroupsForThing operation. The "output" return
22927// value will be populated with the request's response once the request completes
22928// successfully.
22929//
22930// Use "Send" method on the returned Request to send the API call to the service.
22931// the "output" return value is not valid until after Send returns without error.
22932//
22933// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
22934// API call, and error handling.
22935//
22936// This method is useful when you want to inject custom logic or configuration
22937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22938//
22939//
22940//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
22941//    req, resp := client.UpdateThingGroupsForThingRequest(params)
22942//
22943//    err := req.Send()
22944//    if err == nil { // resp is now filled
22945//        fmt.Println(resp)
22946//    }
22947func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
22948	op := &request.Operation{
22949		Name:       opUpdateThingGroupsForThing,
22950		HTTPMethod: "PUT",
22951		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
22952	}
22953
22954	if input == nil {
22955		input = &UpdateThingGroupsForThingInput{}
22956	}
22957
22958	output = &UpdateThingGroupsForThingOutput{}
22959	req = c.newRequest(op, input, output)
22960	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22961	return
22962}
22963
22964// UpdateThingGroupsForThing API operation for AWS IoT.
22965//
22966// Updates the groups to which the thing belongs.
22967//
22968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22969// with awserr.Error's Code and Message methods to get detailed information about
22970// the error.
22971//
22972// See the AWS API reference guide for AWS IoT's
22973// API operation UpdateThingGroupsForThing for usage and error information.
22974//
22975// Returned Error Types:
22976//   * InvalidRequestException
22977//   The request is not valid.
22978//
22979//   * ThrottlingException
22980//   The rate exceeds the limit.
22981//
22982//   * InternalFailureException
22983//   An unexpected error has occurred.
22984//
22985//   * ResourceNotFoundException
22986//   The specified resource does not exist.
22987//
22988func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
22989	req, out := c.UpdateThingGroupsForThingRequest(input)
22990	return out, req.Send()
22991}
22992
22993// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
22994// the ability to pass a context and additional request options.
22995//
22996// See UpdateThingGroupsForThing for details on how to use this API operation.
22997//
22998// The context must be non-nil and will be used for request cancellation. If
22999// the context is nil a panic will occur. In the future the SDK may create
23000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23001// for more information on using Contexts.
23002func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
23003	req, out := c.UpdateThingGroupsForThingRequest(input)
23004	req.SetContext(ctx)
23005	req.ApplyOptions(opts...)
23006	return out, req.Send()
23007}
23008
23009const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
23010
23011// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
23012// client's request for the UpdateTopicRuleDestination operation. The "output" return
23013// value will be populated with the request's response once the request completes
23014// successfully.
23015//
23016// Use "Send" method on the returned Request to send the API call to the service.
23017// the "output" return value is not valid until after Send returns without error.
23018//
23019// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
23020// API call, and error handling.
23021//
23022// This method is useful when you want to inject custom logic or configuration
23023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23024//
23025//
23026//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
23027//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
23028//
23029//    err := req.Send()
23030//    if err == nil { // resp is now filled
23031//        fmt.Println(resp)
23032//    }
23033func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
23034	op := &request.Operation{
23035		Name:       opUpdateTopicRuleDestination,
23036		HTTPMethod: "PATCH",
23037		HTTPPath:   "/destinations",
23038	}
23039
23040	if input == nil {
23041		input = &UpdateTopicRuleDestinationInput{}
23042	}
23043
23044	output = &UpdateTopicRuleDestinationOutput{}
23045	req = c.newRequest(op, input, output)
23046	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23047	return
23048}
23049
23050// UpdateTopicRuleDestination API operation for AWS IoT.
23051//
23052// Updates a topic rule destination. You use this to change the status, endpoint
23053// URL, or confirmation URL of the destination.
23054//
23055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23056// with awserr.Error's Code and Message methods to get detailed information about
23057// the error.
23058//
23059// See the AWS API reference guide for AWS IoT's
23060// API operation UpdateTopicRuleDestination for usage and error information.
23061//
23062// Returned Error Types:
23063//   * InternalException
23064//   An unexpected error has occurred.
23065//
23066//   * InvalidRequestException
23067//   The request is not valid.
23068//
23069//   * ServiceUnavailableException
23070//   The service is temporarily unavailable.
23071//
23072//   * UnauthorizedException
23073//   You are not authorized to perform this operation.
23074//
23075//   * ConflictingResourceUpdateException
23076//   A conflicting resource update exception. This exception is thrown when two
23077//   pending updates cause a conflict.
23078//
23079func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
23080	req, out := c.UpdateTopicRuleDestinationRequest(input)
23081	return out, req.Send()
23082}
23083
23084// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
23085// the ability to pass a context and additional request options.
23086//
23087// See UpdateTopicRuleDestination for details on how to use this API operation.
23088//
23089// The context must be non-nil and will be used for request cancellation. If
23090// the context is nil a panic will occur. In the future the SDK may create
23091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23092// for more information on using Contexts.
23093func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
23094	req, out := c.UpdateTopicRuleDestinationRequest(input)
23095	req.SetContext(ctx)
23096	req.ApplyOptions(opts...)
23097	return out, req.Send()
23098}
23099
23100const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
23101
23102// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
23103// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
23104// value will be populated with the request's response once the request completes
23105// successfully.
23106//
23107// Use "Send" method on the returned Request to send the API call to the service.
23108// the "output" return value is not valid until after Send returns without error.
23109//
23110// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
23111// API call, and error handling.
23112//
23113// This method is useful when you want to inject custom logic or configuration
23114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23115//
23116//
23117//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
23118//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
23119//
23120//    err := req.Send()
23121//    if err == nil { // resp is now filled
23122//        fmt.Println(resp)
23123//    }
23124func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
23125	op := &request.Operation{
23126		Name:       opValidateSecurityProfileBehaviors,
23127		HTTPMethod: "POST",
23128		HTTPPath:   "/security-profile-behaviors/validate",
23129	}
23130
23131	if input == nil {
23132		input = &ValidateSecurityProfileBehaviorsInput{}
23133	}
23134
23135	output = &ValidateSecurityProfileBehaviorsOutput{}
23136	req = c.newRequest(op, input, output)
23137	return
23138}
23139
23140// ValidateSecurityProfileBehaviors API operation for AWS IoT.
23141//
23142// Validates a Device Defender security profile behaviors specification.
23143//
23144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23145// with awserr.Error's Code and Message methods to get detailed information about
23146// the error.
23147//
23148// See the AWS API reference guide for AWS IoT's
23149// API operation ValidateSecurityProfileBehaviors for usage and error information.
23150//
23151// Returned Error Types:
23152//   * InvalidRequestException
23153//   The request is not valid.
23154//
23155//   * ThrottlingException
23156//   The rate exceeds the limit.
23157//
23158//   * InternalFailureException
23159//   An unexpected error has occurred.
23160//
23161func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
23162	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23163	return out, req.Send()
23164}
23165
23166// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
23167// the ability to pass a context and additional request options.
23168//
23169// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
23170//
23171// The context must be non-nil and will be used for request cancellation. If
23172// the context is nil a panic will occur. In the future the SDK may create
23173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23174// for more information on using Contexts.
23175func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
23176	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23177	req.SetContext(ctx)
23178	req.ApplyOptions(opts...)
23179	return out, req.Send()
23180}
23181
23182// The criteria that determine when and how a job abort takes place.
23183type AbortConfig struct {
23184	_ struct{} `type:"structure"`
23185
23186	// The list of criteria that determine when and how to abort the job.
23187	//
23188	// CriteriaList is a required field
23189	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
23190}
23191
23192// String returns the string representation
23193func (s AbortConfig) String() string {
23194	return awsutil.Prettify(s)
23195}
23196
23197// GoString returns the string representation
23198func (s AbortConfig) GoString() string {
23199	return s.String()
23200}
23201
23202// Validate inspects the fields of the type to determine if they are valid.
23203func (s *AbortConfig) Validate() error {
23204	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
23205	if s.CriteriaList == nil {
23206		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
23207	}
23208	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
23209		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
23210	}
23211	if s.CriteriaList != nil {
23212		for i, v := range s.CriteriaList {
23213			if v == nil {
23214				continue
23215			}
23216			if err := v.Validate(); err != nil {
23217				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
23218			}
23219		}
23220	}
23221
23222	if invalidParams.Len() > 0 {
23223		return invalidParams
23224	}
23225	return nil
23226}
23227
23228// SetCriteriaList sets the CriteriaList field's value.
23229func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
23230	s.CriteriaList = v
23231	return s
23232}
23233
23234// The criteria that determine when and how a job abort takes place.
23235type AbortCriteria struct {
23236	_ struct{} `type:"structure"`
23237
23238	// The type of job action to take to initiate the job abort.
23239	//
23240	// Action is a required field
23241	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
23242
23243	// The type of job execution failures that can initiate a job abort.
23244	//
23245	// FailureType is a required field
23246	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
23247
23248	// The minimum number of things which must receive job execution notifications
23249	// before the job can be aborted.
23250	//
23251	// MinNumberOfExecutedThings is a required field
23252	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
23253
23254	// The minimum percentage of job execution failures that must occur to initiate
23255	// the job abort.
23256	//
23257	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
23258	// 10.99, but not 10.999).
23259	//
23260	// ThresholdPercentage is a required field
23261	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
23262}
23263
23264// String returns the string representation
23265func (s AbortCriteria) String() string {
23266	return awsutil.Prettify(s)
23267}
23268
23269// GoString returns the string representation
23270func (s AbortCriteria) GoString() string {
23271	return s.String()
23272}
23273
23274// Validate inspects the fields of the type to determine if they are valid.
23275func (s *AbortCriteria) Validate() error {
23276	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
23277	if s.Action == nil {
23278		invalidParams.Add(request.NewErrParamRequired("Action"))
23279	}
23280	if s.FailureType == nil {
23281		invalidParams.Add(request.NewErrParamRequired("FailureType"))
23282	}
23283	if s.MinNumberOfExecutedThings == nil {
23284		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
23285	}
23286	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
23287		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
23288	}
23289	if s.ThresholdPercentage == nil {
23290		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
23291	}
23292
23293	if invalidParams.Len() > 0 {
23294		return invalidParams
23295	}
23296	return nil
23297}
23298
23299// SetAction sets the Action field's value.
23300func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
23301	s.Action = &v
23302	return s
23303}
23304
23305// SetFailureType sets the FailureType field's value.
23306func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
23307	s.FailureType = &v
23308	return s
23309}
23310
23311// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
23312func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
23313	s.MinNumberOfExecutedThings = &v
23314	return s
23315}
23316
23317// SetThresholdPercentage sets the ThresholdPercentage field's value.
23318func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
23319	s.ThresholdPercentage = &v
23320	return s
23321}
23322
23323// The input for the AcceptCertificateTransfer operation.
23324type AcceptCertificateTransferInput struct {
23325	_ struct{} `type:"structure"`
23326
23327	// The ID of the certificate. (The last part of the certificate ARN contains
23328	// the certificate ID.)
23329	//
23330	// CertificateId is a required field
23331	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
23332
23333	// Specifies whether the certificate is active.
23334	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
23335}
23336
23337// String returns the string representation
23338func (s AcceptCertificateTransferInput) String() string {
23339	return awsutil.Prettify(s)
23340}
23341
23342// GoString returns the string representation
23343func (s AcceptCertificateTransferInput) GoString() string {
23344	return s.String()
23345}
23346
23347// Validate inspects the fields of the type to determine if they are valid.
23348func (s *AcceptCertificateTransferInput) Validate() error {
23349	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
23350	if s.CertificateId == nil {
23351		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
23352	}
23353	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
23354		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
23355	}
23356
23357	if invalidParams.Len() > 0 {
23358		return invalidParams
23359	}
23360	return nil
23361}
23362
23363// SetCertificateId sets the CertificateId field's value.
23364func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
23365	s.CertificateId = &v
23366	return s
23367}
23368
23369// SetSetAsActive sets the SetAsActive field's value.
23370func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
23371	s.SetAsActive = &v
23372	return s
23373}
23374
23375type AcceptCertificateTransferOutput struct {
23376	_ struct{} `type:"structure"`
23377}
23378
23379// String returns the string representation
23380func (s AcceptCertificateTransferOutput) String() string {
23381	return awsutil.Prettify(s)
23382}
23383
23384// GoString returns the string representation
23385func (s AcceptCertificateTransferOutput) GoString() string {
23386	return s.String()
23387}
23388
23389// Describes the actions associated with a rule.
23390type Action struct {
23391	_ struct{} `type:"structure"`
23392
23393	// Change the state of a CloudWatch alarm.
23394	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
23395
23396	// Send data to CloudWatch Logs.
23397	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
23398
23399	// Capture a CloudWatch metric.
23400	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
23401
23402	// Write to a DynamoDB table.
23403	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
23404
23405	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
23406	// It allows you to write each attribute in an MQTT message payload into a separate
23407	// DynamoDB column.
23408	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
23409
23410	// Write data to an Amazon Elasticsearch Service domain.
23411	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
23412
23413	// Write to an Amazon Kinesis Firehose stream.
23414	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
23415
23416	// Send data to an HTTPS endpoint.
23417	Http *HttpAction `locationName:"http" type:"structure"`
23418
23419	// Sends message data to an AWS IoT Analytics channel.
23420	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
23421
23422	// Sends an input to an AWS IoT Events detector.
23423	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
23424
23425	// Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise
23426	// asset properties.
23427	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
23428
23429	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
23430	// or self-managed Apache Kafka cluster.
23431	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
23432
23433	// Write data to an Amazon Kinesis stream.
23434	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
23435
23436	// Invoke a Lambda function.
23437	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
23438
23439	// Publish to another MQTT topic.
23440	Republish *RepublishAction `locationName:"republish" type:"structure"`
23441
23442	// Write to an Amazon S3 bucket.
23443	S3 *S3Action `locationName:"s3" type:"structure"`
23444
23445	// Send a message to a Salesforce IoT Cloud Input Stream.
23446	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
23447
23448	// Publish to an Amazon SNS topic.
23449	Sns *SnsAction `locationName:"sns" type:"structure"`
23450
23451	// Publish to an Amazon SQS queue.
23452	Sqs *SqsAction `locationName:"sqs" type:"structure"`
23453
23454	// Starts execution of a Step Functions state machine.
23455	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
23456
23457	// The Timestream rule action writes attributes (measures) from an MQTT message
23458	// into an Amazon Timestream table. For more information, see the Timestream
23459	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
23460	// topic rule action documentation.
23461	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
23462}
23463
23464// String returns the string representation
23465func (s Action) String() string {
23466	return awsutil.Prettify(s)
23467}
23468
23469// GoString returns the string representation
23470func (s Action) GoString() string {
23471	return s.String()
23472}
23473
23474// Validate inspects the fields of the type to determine if they are valid.
23475func (s *Action) Validate() error {
23476	invalidParams := request.ErrInvalidParams{Context: "Action"}
23477	if s.CloudwatchAlarm != nil {
23478		if err := s.CloudwatchAlarm.Validate(); err != nil {
23479			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
23480		}
23481	}
23482	if s.CloudwatchLogs != nil {
23483		if err := s.CloudwatchLogs.Validate(); err != nil {
23484			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
23485		}
23486	}
23487	if s.CloudwatchMetric != nil {
23488		if err := s.CloudwatchMetric.Validate(); err != nil {
23489			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
23490		}
23491	}
23492	if s.DynamoDB != nil {
23493		if err := s.DynamoDB.Validate(); err != nil {
23494			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
23495		}
23496	}
23497	if s.DynamoDBv2 != nil {
23498		if err := s.DynamoDBv2.Validate(); err != nil {
23499			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
23500		}
23501	}
23502	if s.Elasticsearch != nil {
23503		if err := s.Elasticsearch.Validate(); err != nil {
23504			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
23505		}
23506	}
23507	if s.Firehose != nil {
23508		if err := s.Firehose.Validate(); err != nil {
23509			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
23510		}
23511	}
23512	if s.Http != nil {
23513		if err := s.Http.Validate(); err != nil {
23514			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
23515		}
23516	}
23517	if s.IotEvents != nil {
23518		if err := s.IotEvents.Validate(); err != nil {
23519			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
23520		}
23521	}
23522	if s.IotSiteWise != nil {
23523		if err := s.IotSiteWise.Validate(); err != nil {
23524			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
23525		}
23526	}
23527	if s.Kafka != nil {
23528		if err := s.Kafka.Validate(); err != nil {
23529			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
23530		}
23531	}
23532	if s.Kinesis != nil {
23533		if err := s.Kinesis.Validate(); err != nil {
23534			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
23535		}
23536	}
23537	if s.Lambda != nil {
23538		if err := s.Lambda.Validate(); err != nil {
23539			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
23540		}
23541	}
23542	if s.Republish != nil {
23543		if err := s.Republish.Validate(); err != nil {
23544			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
23545		}
23546	}
23547	if s.S3 != nil {
23548		if err := s.S3.Validate(); err != nil {
23549			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
23550		}
23551	}
23552	if s.Salesforce != nil {
23553		if err := s.Salesforce.Validate(); err != nil {
23554			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
23555		}
23556	}
23557	if s.Sns != nil {
23558		if err := s.Sns.Validate(); err != nil {
23559			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
23560		}
23561	}
23562	if s.Sqs != nil {
23563		if err := s.Sqs.Validate(); err != nil {
23564			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
23565		}
23566	}
23567	if s.StepFunctions != nil {
23568		if err := s.StepFunctions.Validate(); err != nil {
23569			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
23570		}
23571	}
23572	if s.Timestream != nil {
23573		if err := s.Timestream.Validate(); err != nil {
23574			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
23575		}
23576	}
23577
23578	if invalidParams.Len() > 0 {
23579		return invalidParams
23580	}
23581	return nil
23582}
23583
23584// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
23585func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
23586	s.CloudwatchAlarm = v
23587	return s
23588}
23589
23590// SetCloudwatchLogs sets the CloudwatchLogs field's value.
23591func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
23592	s.CloudwatchLogs = v
23593	return s
23594}
23595
23596// SetCloudwatchMetric sets the CloudwatchMetric field's value.
23597func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
23598	s.CloudwatchMetric = v
23599	return s
23600}
23601
23602// SetDynamoDB sets the DynamoDB field's value.
23603func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
23604	s.DynamoDB = v
23605	return s
23606}
23607
23608// SetDynamoDBv2 sets the DynamoDBv2 field's value.
23609func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
23610	s.DynamoDBv2 = v
23611	return s
23612}
23613
23614// SetElasticsearch sets the Elasticsearch field's value.
23615func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
23616	s.Elasticsearch = v
23617	return s
23618}
23619
23620// SetFirehose sets the Firehose field's value.
23621func (s *Action) SetFirehose(v *FirehoseAction) *Action {
23622	s.Firehose = v
23623	return s
23624}
23625
23626// SetHttp sets the Http field's value.
23627func (s *Action) SetHttp(v *HttpAction) *Action {
23628	s.Http = v
23629	return s
23630}
23631
23632// SetIotAnalytics sets the IotAnalytics field's value.
23633func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
23634	s.IotAnalytics = v
23635	return s
23636}
23637
23638// SetIotEvents sets the IotEvents field's value.
23639func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
23640	s.IotEvents = v
23641	return s
23642}
23643
23644// SetIotSiteWise sets the IotSiteWise field's value.
23645func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
23646	s.IotSiteWise = v
23647	return s
23648}
23649
23650// SetKafka sets the Kafka field's value.
23651func (s *Action) SetKafka(v *KafkaAction) *Action {
23652	s.Kafka = v
23653	return s
23654}
23655
23656// SetKinesis sets the Kinesis field's value.
23657func (s *Action) SetKinesis(v *KinesisAction) *Action {
23658	s.Kinesis = v
23659	return s
23660}
23661
23662// SetLambda sets the Lambda field's value.
23663func (s *Action) SetLambda(v *LambdaAction) *Action {
23664	s.Lambda = v
23665	return s
23666}
23667
23668// SetRepublish sets the Republish field's value.
23669func (s *Action) SetRepublish(v *RepublishAction) *Action {
23670	s.Republish = v
23671	return s
23672}
23673
23674// SetS3 sets the S3 field's value.
23675func (s *Action) SetS3(v *S3Action) *Action {
23676	s.S3 = v
23677	return s
23678}
23679
23680// SetSalesforce sets the Salesforce field's value.
23681func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
23682	s.Salesforce = v
23683	return s
23684}
23685
23686// SetSns sets the Sns field's value.
23687func (s *Action) SetSns(v *SnsAction) *Action {
23688	s.Sns = v
23689	return s
23690}
23691
23692// SetSqs sets the Sqs field's value.
23693func (s *Action) SetSqs(v *SqsAction) *Action {
23694	s.Sqs = v
23695	return s
23696}
23697
23698// SetStepFunctions sets the StepFunctions field's value.
23699func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
23700	s.StepFunctions = v
23701	return s
23702}
23703
23704// SetTimestream sets the Timestream field's value.
23705func (s *Action) SetTimestream(v *TimestreamAction) *Action {
23706	s.Timestream = v
23707	return s
23708}
23709
23710// Information about an active Device Defender security profile behavior violation.
23711type ActiveViolation struct {
23712	_ struct{} `type:"structure"`
23713
23714	// The behavior that is being violated.
23715	Behavior *Behavior `locationName:"behavior" type:"structure"`
23716
23717	// The time the most recent violation occurred.
23718	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
23719
23720	// The value of the metric (the measurement) that caused the most recent violation.
23721	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
23722
23723	// The security profile with the behavior is in violation.
23724	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
23725
23726	// The name of the thing responsible for the active violation.
23727	ThingName *string `locationName:"thingName" min:"1" type:"string"`
23728
23729	// The details of a violation event.
23730	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
23731
23732	// The ID of the active violation.
23733	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
23734
23735	// The time the violation started.
23736	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
23737}
23738
23739// String returns the string representation
23740func (s ActiveViolation) String() string {
23741	return awsutil.Prettify(s)
23742}
23743
23744// GoString returns the string representation
23745func (s ActiveViolation) GoString() string {
23746	return s.String()
23747}
23748
23749// SetBehavior sets the Behavior field's value.
23750func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
23751	s.Behavior = v
23752	return s
23753}
23754
23755// SetLastViolationTime sets the LastViolationTime field's value.
23756func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
23757	s.LastViolationTime = &v
23758	return s
23759}
23760
23761// SetLastViolationValue sets the LastViolationValue field's value.
23762func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
23763	s.LastViolationValue = v
23764	return s
23765}
23766
23767// SetSecurityProfileName sets the SecurityProfileName field's value.
23768func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
23769	s.SecurityProfileName = &v
23770	return s
23771}
23772
23773// SetThingName sets the ThingName field's value.
23774func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
23775	s.ThingName = &v
23776	return s
23777}
23778
23779// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
23780func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
23781	s.ViolationEventAdditionalInfo = v
23782	return s
23783}
23784
23785// SetViolationId sets the ViolationId field's value.
23786func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
23787	s.ViolationId = &v
23788	return s
23789}
23790
23791// SetViolationStartTime sets the ViolationStartTime field's value.
23792func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
23793	s.ViolationStartTime = &v
23794	return s
23795}
23796
23797type AddThingToBillingGroupInput struct {
23798	_ struct{} `type:"structure"`
23799
23800	// The ARN of the billing group.
23801	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
23802
23803	// The name of the billing group.
23804	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
23805
23806	// The ARN of the thing to be added to the billing group.
23807	ThingArn *string `locationName:"thingArn" type:"string"`
23808
23809	// The name of the thing to be added to the billing group.
23810	ThingName *string `locationName:"thingName" min:"1" type:"string"`
23811}
23812
23813// String returns the string representation
23814func (s AddThingToBillingGroupInput) String() string {
23815	return awsutil.Prettify(s)
23816}
23817
23818// GoString returns the string representation
23819func (s AddThingToBillingGroupInput) GoString() string {
23820	return s.String()
23821}
23822
23823// Validate inspects the fields of the type to determine if they are valid.
23824func (s *AddThingToBillingGroupInput) Validate() error {
23825	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
23826	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
23827		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
23828	}
23829	if s.ThingName != nil && len(*s.ThingName) < 1 {
23830		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
23831	}
23832
23833	if invalidParams.Len() > 0 {
23834		return invalidParams
23835	}
23836	return nil
23837}
23838
23839// SetBillingGroupArn sets the BillingGroupArn field's value.
23840func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
23841	s.BillingGroupArn = &v
23842	return s
23843}
23844
23845// SetBillingGroupName sets the BillingGroupName field's value.
23846func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
23847	s.BillingGroupName = &v
23848	return s
23849}
23850
23851// SetThingArn sets the ThingArn field's value.
23852func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
23853	s.ThingArn = &v
23854	return s
23855}
23856
23857// SetThingName sets the ThingName field's value.
23858func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
23859	s.ThingName = &v
23860	return s
23861}
23862
23863type AddThingToBillingGroupOutput struct {
23864	_ struct{} `type:"structure"`
23865}
23866
23867// String returns the string representation
23868func (s AddThingToBillingGroupOutput) String() string {
23869	return awsutil.Prettify(s)
23870}
23871
23872// GoString returns the string representation
23873func (s AddThingToBillingGroupOutput) GoString() string {
23874	return s.String()
23875}
23876
23877type AddThingToThingGroupInput struct {
23878	_ struct{} `type:"structure"`
23879
23880	// Override dynamic thing groups with static thing groups when 10-group limit
23881	// is reached. If a thing belongs to 10 thing groups, and one or more of those
23882	// groups are dynamic thing groups, adding a thing to a static group removes
23883	// the thing from the last dynamic group.
23884	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
23885
23886	// The ARN of the thing to add to a group.
23887	ThingArn *string `locationName:"thingArn" type:"string"`
23888
23889	// The ARN of the group to which you are adding a thing.
23890	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
23891
23892	// The name of the group to which you are adding a thing.
23893	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
23894
23895	// The name of the thing to add to a group.
23896	ThingName *string `locationName:"thingName" min:"1" type:"string"`
23897}
23898
23899// String returns the string representation
23900func (s AddThingToThingGroupInput) String() string {
23901	return awsutil.Prettify(s)
23902}
23903
23904// GoString returns the string representation
23905func (s AddThingToThingGroupInput) GoString() string {
23906	return s.String()
23907}
23908
23909// Validate inspects the fields of the type to determine if they are valid.
23910func (s *AddThingToThingGroupInput) Validate() error {
23911	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
23912	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
23913		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
23914	}
23915	if s.ThingName != nil && len(*s.ThingName) < 1 {
23916		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
23917	}
23918
23919	if invalidParams.Len() > 0 {
23920		return invalidParams
23921	}
23922	return nil
23923}
23924
23925// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
23926func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
23927	s.OverrideDynamicGroups = &v
23928	return s
23929}
23930
23931// SetThingArn sets the ThingArn field's value.
23932func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
23933	s.ThingArn = &v
23934	return s
23935}
23936
23937// SetThingGroupArn sets the ThingGroupArn field's value.
23938func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
23939	s.ThingGroupArn = &v
23940	return s
23941}
23942
23943// SetThingGroupName sets the ThingGroupName field's value.
23944func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
23945	s.ThingGroupName = &v
23946	return s
23947}
23948
23949// SetThingName sets the ThingName field's value.
23950func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
23951	s.ThingName = &v
23952	return s
23953}
23954
23955type AddThingToThingGroupOutput struct {
23956	_ struct{} `type:"structure"`
23957}
23958
23959// String returns the string representation
23960func (s AddThingToThingGroupOutput) String() string {
23961	return awsutil.Prettify(s)
23962}
23963
23964// GoString returns the string representation
23965func (s AddThingToThingGroupOutput) GoString() string {
23966	return s.String()
23967}
23968
23969// Parameters used when defining a mitigation action that move a set of things
23970// to a thing group.
23971type AddThingsToThingGroupParams struct {
23972	_ struct{} `type:"structure"`
23973
23974	// Specifies if this mitigation action can move the things that triggered the
23975	// mitigation action even if they are part of one or more dynamic thing groups.
23976	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
23977
23978	// The list of groups to which you want to add the things that triggered the
23979	// mitigation action. You can add a thing to a maximum of 10 groups, but you
23980	// can't add a thing to more than one group in the same hierarchy.
23981	//
23982	// ThingGroupNames is a required field
23983	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
23984}
23985
23986// String returns the string representation
23987func (s AddThingsToThingGroupParams) String() string {
23988	return awsutil.Prettify(s)
23989}
23990
23991// GoString returns the string representation
23992func (s AddThingsToThingGroupParams) GoString() string {
23993	return s.String()
23994}
23995
23996// Validate inspects the fields of the type to determine if they are valid.
23997func (s *AddThingsToThingGroupParams) Validate() error {
23998	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
23999	if s.ThingGroupNames == nil {
24000		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
24001	}
24002	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
24003		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
24004	}
24005
24006	if invalidParams.Len() > 0 {
24007		return invalidParams
24008	}
24009	return nil
24010}
24011
24012// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
24013func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
24014	s.OverrideDynamicGroups = &v
24015	return s
24016}
24017
24018// SetThingGroupNames sets the ThingGroupNames field's value.
24019func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
24020	s.ThingGroupNames = v
24021	return s
24022}
24023
24024// A structure containing the alert target ARN and the role ARN.
24025type AlertTarget struct {
24026	_ struct{} `type:"structure"`
24027
24028	// The Amazon Resource Name (ARN) of the notification target to which alerts
24029	// are sent.
24030	//
24031	// AlertTargetArn is a required field
24032	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
24033
24034	// The ARN of the role that grants permission to send alerts to the notification
24035	// target.
24036	//
24037	// RoleArn is a required field
24038	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
24039}
24040
24041// String returns the string representation
24042func (s AlertTarget) String() string {
24043	return awsutil.Prettify(s)
24044}
24045
24046// GoString returns the string representation
24047func (s AlertTarget) GoString() string {
24048	return s.String()
24049}
24050
24051// Validate inspects the fields of the type to determine if they are valid.
24052func (s *AlertTarget) Validate() error {
24053	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
24054	if s.AlertTargetArn == nil {
24055		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
24056	}
24057	if s.RoleArn == nil {
24058		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
24059	}
24060	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
24061		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
24062	}
24063
24064	if invalidParams.Len() > 0 {
24065		return invalidParams
24066	}
24067	return nil
24068}
24069
24070// SetAlertTargetArn sets the AlertTargetArn field's value.
24071func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
24072	s.AlertTargetArn = &v
24073	return s
24074}
24075
24076// SetRoleArn sets the RoleArn field's value.
24077func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
24078	s.RoleArn = &v
24079	return s
24080}
24081
24082// Contains information that allowed the authorization.
24083type Allowed struct {
24084	_ struct{} `type:"structure"`
24085
24086	// A list of policies that allowed the authentication.
24087	Policies []*Policy `locationName:"policies" type:"list"`
24088}
24089
24090// String returns the string representation
24091func (s Allowed) String() string {
24092	return awsutil.Prettify(s)
24093}
24094
24095// GoString returns the string representation
24096func (s Allowed) GoString() string {
24097	return s.String()
24098}
24099
24100// SetPolicies sets the Policies field's value.
24101func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
24102	s.Policies = v
24103	return s
24104}
24105
24106// An asset property timestamp entry containing the following information.
24107type AssetPropertyTimestamp struct {
24108	_ struct{} `type:"structure"`
24109
24110	// Optional. A string that contains the nanosecond time offset. Accepts substitution
24111	// templates.
24112	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
24113
24114	// A string that contains the time in seconds since epoch. Accepts substitution
24115	// templates.
24116	//
24117	// TimeInSeconds is a required field
24118	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
24119}
24120
24121// String returns the string representation
24122func (s AssetPropertyTimestamp) String() string {
24123	return awsutil.Prettify(s)
24124}
24125
24126// GoString returns the string representation
24127func (s AssetPropertyTimestamp) GoString() string {
24128	return s.String()
24129}
24130
24131// Validate inspects the fields of the type to determine if they are valid.
24132func (s *AssetPropertyTimestamp) Validate() error {
24133	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
24134	if s.TimeInSeconds == nil {
24135		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
24136	}
24137
24138	if invalidParams.Len() > 0 {
24139		return invalidParams
24140	}
24141	return nil
24142}
24143
24144// SetOffsetInNanos sets the OffsetInNanos field's value.
24145func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
24146	s.OffsetInNanos = &v
24147	return s
24148}
24149
24150// SetTimeInSeconds sets the TimeInSeconds field's value.
24151func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
24152	s.TimeInSeconds = &v
24153	return s
24154}
24155
24156// An asset property value entry containing the following information.
24157type AssetPropertyValue struct {
24158	_ struct{} `type:"structure"`
24159
24160	// Optional. A string that describes the quality of the value. Accepts substitution
24161	// templates. Must be GOOD, BAD, or UNCERTAIN.
24162	Quality *string `locationName:"quality" type:"string"`
24163
24164	// The asset property value timestamp.
24165	//
24166	// Timestamp is a required field
24167	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
24168
24169	// The value of the asset property.
24170	//
24171	// Value is a required field
24172	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
24173}
24174
24175// String returns the string representation
24176func (s AssetPropertyValue) String() string {
24177	return awsutil.Prettify(s)
24178}
24179
24180// GoString returns the string representation
24181func (s AssetPropertyValue) GoString() string {
24182	return s.String()
24183}
24184
24185// Validate inspects the fields of the type to determine if they are valid.
24186func (s *AssetPropertyValue) Validate() error {
24187	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
24188	if s.Timestamp == nil {
24189		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
24190	}
24191	if s.Value == nil {
24192		invalidParams.Add(request.NewErrParamRequired("Value"))
24193	}
24194	if s.Timestamp != nil {
24195		if err := s.Timestamp.Validate(); err != nil {
24196			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
24197		}
24198	}
24199	if s.Value != nil {
24200		if err := s.Value.Validate(); err != nil {
24201			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
24202		}
24203	}
24204
24205	if invalidParams.Len() > 0 {
24206		return invalidParams
24207	}
24208	return nil
24209}
24210
24211// SetQuality sets the Quality field's value.
24212func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
24213	s.Quality = &v
24214	return s
24215}
24216
24217// SetTimestamp sets the Timestamp field's value.
24218func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
24219	s.Timestamp = v
24220	return s
24221}
24222
24223// SetValue sets the Value field's value.
24224func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
24225	s.Value = v
24226	return s
24227}
24228
24229// Contains an asset property value (of a single type).
24230type AssetPropertyVariant struct {
24231	_ struct{} `type:"structure"`
24232
24233	// Optional. A string that contains the boolean value (true or false) of the
24234	// value entry. Accepts substitution templates.
24235	BooleanValue *string `locationName:"booleanValue" type:"string"`
24236
24237	// Optional. A string that contains the double value of the value entry. Accepts
24238	// substitution templates.
24239	DoubleValue *string `locationName:"doubleValue" type:"string"`
24240
24241	// Optional. A string that contains the integer value of the value entry. Accepts
24242	// substitution templates.
24243	IntegerValue *string `locationName:"integerValue" type:"string"`
24244
24245	// Optional. The string value of the value entry. Accepts substitution templates.
24246	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
24247}
24248
24249// String returns the string representation
24250func (s AssetPropertyVariant) String() string {
24251	return awsutil.Prettify(s)
24252}
24253
24254// GoString returns the string representation
24255func (s AssetPropertyVariant) GoString() string {
24256	return s.String()
24257}
24258
24259// Validate inspects the fields of the type to determine if they are valid.
24260func (s *AssetPropertyVariant) Validate() error {
24261	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
24262	if s.StringValue != nil && len(*s.StringValue) < 1 {
24263		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
24264	}
24265
24266	if invalidParams.Len() > 0 {
24267		return invalidParams
24268	}
24269	return nil
24270}
24271
24272// SetBooleanValue sets the BooleanValue field's value.
24273func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
24274	s.BooleanValue = &v
24275	return s
24276}
24277
24278// SetDoubleValue sets the DoubleValue field's value.
24279func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
24280	s.DoubleValue = &v
24281	return s
24282}
24283
24284// SetIntegerValue sets the IntegerValue field's value.
24285func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
24286	s.IntegerValue = &v
24287	return s
24288}
24289
24290// SetStringValue sets the StringValue field's value.
24291func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
24292	s.StringValue = &v
24293	return s
24294}
24295
24296type AssociateTargetsWithJobInput struct {
24297	_ struct{} `type:"structure"`
24298
24299	// An optional comment string describing why the job was associated with the
24300	// targets.
24301	Comment *string `locationName:"comment" type:"string"`
24302
24303	// The unique identifier you assigned to this job when it was created.
24304	//
24305	// JobId is a required field
24306	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
24307
24308	// The namespace used to indicate that a job is a customer-managed job.
24309	//
24310	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
24311	// to MQTT topics that contain the value in the following format.
24312	//
24313	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
24314	//
24315	// The namespaceId feature is in public preview.
24316	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
24317
24318	// A list of thing group ARNs that define the targets of the job.
24319	//
24320	// Targets is a required field
24321	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
24322}
24323
24324// String returns the string representation
24325func (s AssociateTargetsWithJobInput) String() string {
24326	return awsutil.Prettify(s)
24327}
24328
24329// GoString returns the string representation
24330func (s AssociateTargetsWithJobInput) GoString() string {
24331	return s.String()
24332}
24333
24334// Validate inspects the fields of the type to determine if they are valid.
24335func (s *AssociateTargetsWithJobInput) Validate() error {
24336	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
24337	if s.JobId == nil {
24338		invalidParams.Add(request.NewErrParamRequired("JobId"))
24339	}
24340	if s.JobId != nil && len(*s.JobId) < 1 {
24341		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
24342	}
24343	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
24344		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
24345	}
24346	if s.Targets == nil {
24347		invalidParams.Add(request.NewErrParamRequired("Targets"))
24348	}
24349	if s.Targets != nil && len(s.Targets) < 1 {
24350		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
24351	}
24352
24353	if invalidParams.Len() > 0 {
24354		return invalidParams
24355	}
24356	return nil
24357}
24358
24359// SetComment sets the Comment field's value.
24360func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
24361	s.Comment = &v
24362	return s
24363}
24364
24365// SetJobId sets the JobId field's value.
24366func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
24367	s.JobId = &v
24368	return s
24369}
24370
24371// SetNamespaceId sets the NamespaceId field's value.
24372func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
24373	s.NamespaceId = &v
24374	return s
24375}
24376
24377// SetTargets sets the Targets field's value.
24378func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
24379	s.Targets = v
24380	return s
24381}
24382
24383type AssociateTargetsWithJobOutput struct {
24384	_ struct{} `type:"structure"`
24385
24386	// A short text description of the job.
24387	Description *string `locationName:"description" type:"string"`
24388
24389	// An ARN identifying the job.
24390	JobArn *string `locationName:"jobArn" type:"string"`
24391
24392	// The unique identifier you assigned to this job when it was created.
24393	JobId *string `locationName:"jobId" min:"1" type:"string"`
24394}
24395
24396// String returns the string representation
24397func (s AssociateTargetsWithJobOutput) String() string {
24398	return awsutil.Prettify(s)
24399}
24400
24401// GoString returns the string representation
24402func (s AssociateTargetsWithJobOutput) GoString() string {
24403	return s.String()
24404}
24405
24406// SetDescription sets the Description field's value.
24407func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
24408	s.Description = &v
24409	return s
24410}
24411
24412// SetJobArn sets the JobArn field's value.
24413func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
24414	s.JobArn = &v
24415	return s
24416}
24417
24418// SetJobId sets the JobId field's value.
24419func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
24420	s.JobId = &v
24421	return s
24422}
24423
24424type AttachPolicyInput struct {
24425	_ struct{} `type:"structure"`
24426
24427	// The name of the policy to attach.
24428	//
24429	// PolicyName is a required field
24430	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24431
24432	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
24433	// to which the policy is attached.
24434	//
24435	// Target is a required field
24436	Target *string `locationName:"target" type:"string" required:"true"`
24437}
24438
24439// String returns the string representation
24440func (s AttachPolicyInput) String() string {
24441	return awsutil.Prettify(s)
24442}
24443
24444// GoString returns the string representation
24445func (s AttachPolicyInput) GoString() string {
24446	return s.String()
24447}
24448
24449// Validate inspects the fields of the type to determine if they are valid.
24450func (s *AttachPolicyInput) Validate() error {
24451	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
24452	if s.PolicyName == nil {
24453		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24454	}
24455	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24456		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24457	}
24458	if s.Target == nil {
24459		invalidParams.Add(request.NewErrParamRequired("Target"))
24460	}
24461
24462	if invalidParams.Len() > 0 {
24463		return invalidParams
24464	}
24465	return nil
24466}
24467
24468// SetPolicyName sets the PolicyName field's value.
24469func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
24470	s.PolicyName = &v
24471	return s
24472}
24473
24474// SetTarget sets the Target field's value.
24475func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
24476	s.Target = &v
24477	return s
24478}
24479
24480type AttachPolicyOutput struct {
24481	_ struct{} `type:"structure"`
24482}
24483
24484// String returns the string representation
24485func (s AttachPolicyOutput) String() string {
24486	return awsutil.Prettify(s)
24487}
24488
24489// GoString returns the string representation
24490func (s AttachPolicyOutput) GoString() string {
24491	return s.String()
24492}
24493
24494// The input for the AttachPrincipalPolicy operation.
24495type AttachPrincipalPolicyInput struct {
24496	_ struct{} `type:"structure"`
24497
24498	// The policy name.
24499	//
24500	// PolicyName is a required field
24501	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24502
24503	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24504	// operation) or an Amazon Cognito ID.
24505	//
24506	// Principal is a required field
24507	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
24508}
24509
24510// String returns the string representation
24511func (s AttachPrincipalPolicyInput) String() string {
24512	return awsutil.Prettify(s)
24513}
24514
24515// GoString returns the string representation
24516func (s AttachPrincipalPolicyInput) GoString() string {
24517	return s.String()
24518}
24519
24520// Validate inspects the fields of the type to determine if they are valid.
24521func (s *AttachPrincipalPolicyInput) Validate() error {
24522	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
24523	if s.PolicyName == nil {
24524		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24525	}
24526	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24527		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24528	}
24529	if s.Principal == nil {
24530		invalidParams.Add(request.NewErrParamRequired("Principal"))
24531	}
24532
24533	if invalidParams.Len() > 0 {
24534		return invalidParams
24535	}
24536	return nil
24537}
24538
24539// SetPolicyName sets the PolicyName field's value.
24540func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
24541	s.PolicyName = &v
24542	return s
24543}
24544
24545// SetPrincipal sets the Principal field's value.
24546func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
24547	s.Principal = &v
24548	return s
24549}
24550
24551type AttachPrincipalPolicyOutput struct {
24552	_ struct{} `type:"structure"`
24553}
24554
24555// String returns the string representation
24556func (s AttachPrincipalPolicyOutput) String() string {
24557	return awsutil.Prettify(s)
24558}
24559
24560// GoString returns the string representation
24561func (s AttachPrincipalPolicyOutput) GoString() string {
24562	return s.String()
24563}
24564
24565type AttachSecurityProfileInput struct {
24566	_ struct{} `type:"structure"`
24567
24568	// The security profile that is attached.
24569	//
24570	// SecurityProfileName is a required field
24571	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
24572
24573	// The ARN of the target (thing group) to which the security profile is attached.
24574	//
24575	// SecurityProfileTargetArn is a required field
24576	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
24577}
24578
24579// String returns the string representation
24580func (s AttachSecurityProfileInput) String() string {
24581	return awsutil.Prettify(s)
24582}
24583
24584// GoString returns the string representation
24585func (s AttachSecurityProfileInput) GoString() string {
24586	return s.String()
24587}
24588
24589// Validate inspects the fields of the type to determine if they are valid.
24590func (s *AttachSecurityProfileInput) Validate() error {
24591	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
24592	if s.SecurityProfileName == nil {
24593		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
24594	}
24595	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
24596		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
24597	}
24598	if s.SecurityProfileTargetArn == nil {
24599		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
24600	}
24601
24602	if invalidParams.Len() > 0 {
24603		return invalidParams
24604	}
24605	return nil
24606}
24607
24608// SetSecurityProfileName sets the SecurityProfileName field's value.
24609func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
24610	s.SecurityProfileName = &v
24611	return s
24612}
24613
24614// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
24615func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
24616	s.SecurityProfileTargetArn = &v
24617	return s
24618}
24619
24620type AttachSecurityProfileOutput struct {
24621	_ struct{} `type:"structure"`
24622}
24623
24624// String returns the string representation
24625func (s AttachSecurityProfileOutput) String() string {
24626	return awsutil.Prettify(s)
24627}
24628
24629// GoString returns the string representation
24630func (s AttachSecurityProfileOutput) GoString() string {
24631	return s.String()
24632}
24633
24634// The input for the AttachThingPrincipal operation.
24635type AttachThingPrincipalInput struct {
24636	_ struct{} `type:"structure"`
24637
24638	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24639	// operation) or an Amazon Cognito ID.
24640	//
24641	// Principal is a required field
24642	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
24643
24644	// The name of the thing.
24645	//
24646	// ThingName is a required field
24647	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
24648}
24649
24650// String returns the string representation
24651func (s AttachThingPrincipalInput) String() string {
24652	return awsutil.Prettify(s)
24653}
24654
24655// GoString returns the string representation
24656func (s AttachThingPrincipalInput) GoString() string {
24657	return s.String()
24658}
24659
24660// Validate inspects the fields of the type to determine if they are valid.
24661func (s *AttachThingPrincipalInput) Validate() error {
24662	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
24663	if s.Principal == nil {
24664		invalidParams.Add(request.NewErrParamRequired("Principal"))
24665	}
24666	if s.ThingName == nil {
24667		invalidParams.Add(request.NewErrParamRequired("ThingName"))
24668	}
24669	if s.ThingName != nil && len(*s.ThingName) < 1 {
24670		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24671	}
24672
24673	if invalidParams.Len() > 0 {
24674		return invalidParams
24675	}
24676	return nil
24677}
24678
24679// SetPrincipal sets the Principal field's value.
24680func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
24681	s.Principal = &v
24682	return s
24683}
24684
24685// SetThingName sets the ThingName field's value.
24686func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
24687	s.ThingName = &v
24688	return s
24689}
24690
24691// The output from the AttachThingPrincipal operation.
24692type AttachThingPrincipalOutput struct {
24693	_ struct{} `type:"structure"`
24694}
24695
24696// String returns the string representation
24697func (s AttachThingPrincipalOutput) String() string {
24698	return awsutil.Prettify(s)
24699}
24700
24701// GoString returns the string representation
24702func (s AttachThingPrincipalOutput) GoString() string {
24703	return s.String()
24704}
24705
24706// The attribute payload.
24707type AttributePayload struct {
24708	_ struct{} `type:"structure"`
24709
24710	// A JSON string containing up to three key-value pair in JSON format. For example:
24711	//
24712	// {\"attributes\":{\"string1\":\"string2\"}}
24713	Attributes map[string]*string `locationName:"attributes" type:"map"`
24714
24715	// Specifies whether the list of attributes provided in the AttributePayload
24716	// is merged with the attributes stored in the registry, instead of overwriting
24717	// them.
24718	//
24719	// To remove an attribute, call UpdateThing with an empty attribute value.
24720	//
24721	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
24722	Merge *bool `locationName:"merge" type:"boolean"`
24723}
24724
24725// String returns the string representation
24726func (s AttributePayload) String() string {
24727	return awsutil.Prettify(s)
24728}
24729
24730// GoString returns the string representation
24731func (s AttributePayload) GoString() string {
24732	return s.String()
24733}
24734
24735// SetAttributes sets the Attributes field's value.
24736func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
24737	s.Attributes = v
24738	return s
24739}
24740
24741// SetMerge sets the Merge field's value.
24742func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
24743	s.Merge = &v
24744	return s
24745}
24746
24747// Which audit checks are enabled and disabled for this account.
24748type AuditCheckConfiguration struct {
24749	_ struct{} `type:"structure"`
24750
24751	// True if this audit check is enabled for this account.
24752	Enabled *bool `locationName:"enabled" type:"boolean"`
24753}
24754
24755// String returns the string representation
24756func (s AuditCheckConfiguration) String() string {
24757	return awsutil.Prettify(s)
24758}
24759
24760// GoString returns the string representation
24761func (s AuditCheckConfiguration) GoString() string {
24762	return s.String()
24763}
24764
24765// SetEnabled sets the Enabled field's value.
24766func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
24767	s.Enabled = &v
24768	return s
24769}
24770
24771// Information about the audit check.
24772type AuditCheckDetails struct {
24773	_ struct{} `type:"structure"`
24774
24775	// True if the check is complete and found all resources compliant.
24776	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
24777
24778	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
24779	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
24780	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
24781
24782	// The code of any error encountered when this check is performed during this
24783	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
24784	ErrorCode *string `locationName:"errorCode" type:"string"`
24785
24786	// The message associated with any error encountered when this check is performed
24787	// during this audit.
24788	Message *string `locationName:"message" type:"string"`
24789
24790	// The number of resources that were found noncompliant during the check.
24791	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
24792
24793	// Describes how many of the non-compliant resources created during the evaluation
24794	// of an audit check were marked as suppressed.
24795	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
24796
24797	// The number of resources on which the check was performed.
24798	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
24799}
24800
24801// String returns the string representation
24802func (s AuditCheckDetails) String() string {
24803	return awsutil.Prettify(s)
24804}
24805
24806// GoString returns the string representation
24807func (s AuditCheckDetails) GoString() string {
24808	return s.String()
24809}
24810
24811// SetCheckCompliant sets the CheckCompliant field's value.
24812func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
24813	s.CheckCompliant = &v
24814	return s
24815}
24816
24817// SetCheckRunStatus sets the CheckRunStatus field's value.
24818func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
24819	s.CheckRunStatus = &v
24820	return s
24821}
24822
24823// SetErrorCode sets the ErrorCode field's value.
24824func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
24825	s.ErrorCode = &v
24826	return s
24827}
24828
24829// SetMessage sets the Message field's value.
24830func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
24831	s.Message = &v
24832	return s
24833}
24834
24835// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
24836func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
24837	s.NonCompliantResourcesCount = &v
24838	return s
24839}
24840
24841// SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
24842func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
24843	s.SuppressedNonCompliantResourcesCount = &v
24844	return s
24845}
24846
24847// SetTotalResourcesCount sets the TotalResourcesCount field's value.
24848func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
24849	s.TotalResourcesCount = &v
24850	return s
24851}
24852
24853// The findings (results) of the audit.
24854type AuditFinding struct {
24855	_ struct{} `type:"structure"`
24856
24857	// The audit check that generated this result.
24858	CheckName *string `locationName:"checkName" type:"string"`
24859
24860	// A unique identifier for this set of audit findings. This identifier is used
24861	// to apply mitigation tasks to one or more sets of findings.
24862	FindingId *string `locationName:"findingId" min:"1" type:"string"`
24863
24864	// The time the result (finding) was discovered.
24865	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
24866
24867	// Indicates whether the audit finding was suppressed or not during reporting.
24868	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
24869
24870	// The resource that was found to be noncompliant with the audit check.
24871	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
24872
24873	// The reason the resource was noncompliant.
24874	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
24875
24876	// A code that indicates the reason that the resource was noncompliant.
24877	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
24878
24879	// The list of related resources.
24880	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
24881
24882	// The severity of the result (finding).
24883	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
24884
24885	// The ID of the audit that generated this result (finding).
24886	TaskId *string `locationName:"taskId" min:"1" type:"string"`
24887
24888	// The time the audit started.
24889	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
24890}
24891
24892// String returns the string representation
24893func (s AuditFinding) String() string {
24894	return awsutil.Prettify(s)
24895}
24896
24897// GoString returns the string representation
24898func (s AuditFinding) GoString() string {
24899	return s.String()
24900}
24901
24902// SetCheckName sets the CheckName field's value.
24903func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
24904	s.CheckName = &v
24905	return s
24906}
24907
24908// SetFindingId sets the FindingId field's value.
24909func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
24910	s.FindingId = &v
24911	return s
24912}
24913
24914// SetFindingTime sets the FindingTime field's value.
24915func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
24916	s.FindingTime = &v
24917	return s
24918}
24919
24920// SetIsSuppressed sets the IsSuppressed field's value.
24921func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
24922	s.IsSuppressed = &v
24923	return s
24924}
24925
24926// SetNonCompliantResource sets the NonCompliantResource field's value.
24927func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
24928	s.NonCompliantResource = v
24929	return s
24930}
24931
24932// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
24933func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
24934	s.ReasonForNonCompliance = &v
24935	return s
24936}
24937
24938// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
24939func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
24940	s.ReasonForNonComplianceCode = &v
24941	return s
24942}
24943
24944// SetRelatedResources sets the RelatedResources field's value.
24945func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
24946	s.RelatedResources = v
24947	return s
24948}
24949
24950// SetSeverity sets the Severity field's value.
24951func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
24952	s.Severity = &v
24953	return s
24954}
24955
24956// SetTaskId sets the TaskId field's value.
24957func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
24958	s.TaskId = &v
24959	return s
24960}
24961
24962// SetTaskStartTime sets the TaskStartTime field's value.
24963func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
24964	s.TaskStartTime = &v
24965	return s
24966}
24967
24968// Returned by ListAuditMitigationActionsTask, this object contains information
24969// that describes a mitigation action that has been started.
24970type AuditMitigationActionExecutionMetadata struct {
24971	_ struct{} `type:"structure"`
24972
24973	// The unique identifier for the mitigation action being applied by the task.
24974	ActionId *string `locationName:"actionId" type:"string"`
24975
24976	// The friendly name of the mitigation action being applied by the task.
24977	ActionName *string `locationName:"actionName" type:"string"`
24978
24979	// The date and time when the task was completed or canceled. Blank if the task
24980	// is still running.
24981	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
24982
24983	// If an error occurred, the code that indicates which type of error occurred.
24984	ErrorCode *string `locationName:"errorCode" type:"string"`
24985
24986	// The unique identifier for the findings to which the task and associated mitigation
24987	// action are applied.
24988	FindingId *string `locationName:"findingId" min:"1" type:"string"`
24989
24990	// If an error occurred, a message that describes the error.
24991	Message *string `locationName:"message" type:"string"`
24992
24993	// The date and time when the task was started.
24994	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
24995
24996	// The current status of the task being executed.
24997	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
24998
24999	// The unique identifier for the task that applies the mitigation action.
25000	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25001}
25002
25003// String returns the string representation
25004func (s AuditMitigationActionExecutionMetadata) String() string {
25005	return awsutil.Prettify(s)
25006}
25007
25008// GoString returns the string representation
25009func (s AuditMitigationActionExecutionMetadata) GoString() string {
25010	return s.String()
25011}
25012
25013// SetActionId sets the ActionId field's value.
25014func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
25015	s.ActionId = &v
25016	return s
25017}
25018
25019// SetActionName sets the ActionName field's value.
25020func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
25021	s.ActionName = &v
25022	return s
25023}
25024
25025// SetEndTime sets the EndTime field's value.
25026func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25027	s.EndTime = &v
25028	return s
25029}
25030
25031// SetErrorCode sets the ErrorCode field's value.
25032func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
25033	s.ErrorCode = &v
25034	return s
25035}
25036
25037// SetFindingId sets the FindingId field's value.
25038func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
25039	s.FindingId = &v
25040	return s
25041}
25042
25043// SetMessage sets the Message field's value.
25044func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
25045	s.Message = &v
25046	return s
25047}
25048
25049// SetStartTime sets the StartTime field's value.
25050func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25051	s.StartTime = &v
25052	return s
25053}
25054
25055// SetStatus sets the Status field's value.
25056func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
25057	s.Status = &v
25058	return s
25059}
25060
25061// SetTaskId sets the TaskId field's value.
25062func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
25063	s.TaskId = &v
25064	return s
25065}
25066
25067// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
25068type AuditMitigationActionsTaskMetadata struct {
25069	_ struct{} `type:"structure"`
25070
25071	// The time at which the audit mitigation actions task was started.
25072	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
25073
25074	// The unique identifier for the task.
25075	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25076
25077	// The current state of the audit mitigation actions task.
25078	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
25079}
25080
25081// String returns the string representation
25082func (s AuditMitigationActionsTaskMetadata) String() string {
25083	return awsutil.Prettify(s)
25084}
25085
25086// GoString returns the string representation
25087func (s AuditMitigationActionsTaskMetadata) GoString() string {
25088	return s.String()
25089}
25090
25091// SetStartTime sets the StartTime field's value.
25092func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
25093	s.StartTime = &v
25094	return s
25095}
25096
25097// SetTaskId sets the TaskId field's value.
25098func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
25099	s.TaskId = &v
25100	return s
25101}
25102
25103// SetTaskStatus sets the TaskStatus field's value.
25104func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
25105	s.TaskStatus = &v
25106	return s
25107}
25108
25109// Used in MitigationActionParams, this information identifies the target findings
25110// to which the mitigation actions are applied. Only one entry appears.
25111type AuditMitigationActionsTaskTarget struct {
25112	_ struct{} `type:"structure"`
25113
25114	// Specifies a filter in the form of an audit check and set of reason codes
25115	// that identify the findings from the audit to which the audit mitigation actions
25116	// task apply.
25117	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
25118
25119	// If the task will apply a mitigation action to findings from a specific audit,
25120	// this value uniquely identifies the audit.
25121	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
25122
25123	// If the task will apply a mitigation action to one or more listed findings,
25124	// this value uniquely identifies those findings.
25125	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
25126}
25127
25128// String returns the string representation
25129func (s AuditMitigationActionsTaskTarget) String() string {
25130	return awsutil.Prettify(s)
25131}
25132
25133// GoString returns the string representation
25134func (s AuditMitigationActionsTaskTarget) GoString() string {
25135	return s.String()
25136}
25137
25138// Validate inspects the fields of the type to determine if they are valid.
25139func (s *AuditMitigationActionsTaskTarget) Validate() error {
25140	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
25141	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
25142		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
25143	}
25144	if s.FindingIds != nil && len(s.FindingIds) < 1 {
25145		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
25146	}
25147
25148	if invalidParams.Len() > 0 {
25149		return invalidParams
25150	}
25151	return nil
25152}
25153
25154// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
25155func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
25156	s.AuditCheckToReasonCodeFilter = v
25157	return s
25158}
25159
25160// SetAuditTaskId sets the AuditTaskId field's value.
25161func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
25162	s.AuditTaskId = &v
25163	return s
25164}
25165
25166// SetFindingIds sets the FindingIds field's value.
25167func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
25168	s.FindingIds = v
25169	return s
25170}
25171
25172// Information about the targets to which audit notifications are sent.
25173type AuditNotificationTarget struct {
25174	_ struct{} `type:"structure"`
25175
25176	// True if notifications to the target are enabled.
25177	Enabled *bool `locationName:"enabled" type:"boolean"`
25178
25179	// The ARN of the role that grants permission to send notifications to the target.
25180	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
25181
25182	// The ARN of the target (SNS topic) to which audit notifications are sent.
25183	TargetArn *string `locationName:"targetArn" type:"string"`
25184}
25185
25186// String returns the string representation
25187func (s AuditNotificationTarget) String() string {
25188	return awsutil.Prettify(s)
25189}
25190
25191// GoString returns the string representation
25192func (s AuditNotificationTarget) GoString() string {
25193	return s.String()
25194}
25195
25196// Validate inspects the fields of the type to determine if they are valid.
25197func (s *AuditNotificationTarget) Validate() error {
25198	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
25199	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25200		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25201	}
25202
25203	if invalidParams.Len() > 0 {
25204		return invalidParams
25205	}
25206	return nil
25207}
25208
25209// SetEnabled sets the Enabled field's value.
25210func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
25211	s.Enabled = &v
25212	return s
25213}
25214
25215// SetRoleArn sets the RoleArn field's value.
25216func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
25217	s.RoleArn = &v
25218	return s
25219}
25220
25221// SetTargetArn sets the TargetArn field's value.
25222func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
25223	s.TargetArn = &v
25224	return s
25225}
25226
25227// Filters out specific findings of a Device Defender audit.
25228type AuditSuppression struct {
25229	_ struct{} `type:"structure"`
25230
25231	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
25232	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
25233	// to select which checks are enabled.)
25234	//
25235	// CheckName is a required field
25236	CheckName *string `locationName:"checkName" type:"string" required:"true"`
25237
25238	// The description of the audit suppression.
25239	Description *string `locationName:"description" type:"string"`
25240
25241	// The expiration date (epoch timestamp in seconds) that you want the suppression
25242	// to adhere to.
25243	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
25244
25245	// Information that identifies the noncompliant resource.
25246	//
25247	// ResourceIdentifier is a required field
25248	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
25249
25250	// Indicates whether a suppression should exist indefinitely or not.
25251	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
25252}
25253
25254// String returns the string representation
25255func (s AuditSuppression) String() string {
25256	return awsutil.Prettify(s)
25257}
25258
25259// GoString returns the string representation
25260func (s AuditSuppression) GoString() string {
25261	return s.String()
25262}
25263
25264// SetCheckName sets the CheckName field's value.
25265func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
25266	s.CheckName = &v
25267	return s
25268}
25269
25270// SetDescription sets the Description field's value.
25271func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
25272	s.Description = &v
25273	return s
25274}
25275
25276// SetExpirationDate sets the ExpirationDate field's value.
25277func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
25278	s.ExpirationDate = &v
25279	return s
25280}
25281
25282// SetResourceIdentifier sets the ResourceIdentifier field's value.
25283func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
25284	s.ResourceIdentifier = v
25285	return s
25286}
25287
25288// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
25289func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
25290	s.SuppressIndefinitely = &v
25291	return s
25292}
25293
25294// The audits that were performed.
25295type AuditTaskMetadata struct {
25296	_ struct{} `type:"structure"`
25297
25298	// The ID of this audit.
25299	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25300
25301	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
25302	// "CANCELED".
25303	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
25304
25305	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
25306	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
25307}
25308
25309// String returns the string representation
25310func (s AuditTaskMetadata) String() string {
25311	return awsutil.Prettify(s)
25312}
25313
25314// GoString returns the string representation
25315func (s AuditTaskMetadata) GoString() string {
25316	return s.String()
25317}
25318
25319// SetTaskId sets the TaskId field's value.
25320func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
25321	s.TaskId = &v
25322	return s
25323}
25324
25325// SetTaskStatus sets the TaskStatus field's value.
25326func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
25327	s.TaskStatus = &v
25328	return s
25329}
25330
25331// SetTaskType sets the TaskType field's value.
25332func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
25333	s.TaskType = &v
25334	return s
25335}
25336
25337// A collection of authorization information.
25338type AuthInfo struct {
25339	_ struct{} `type:"structure"`
25340
25341	// The type of action for which the principal is being authorized.
25342	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
25343
25344	// The resources for which the principal is being authorized to perform the
25345	// specified action.
25346	//
25347	// Resources is a required field
25348	Resources []*string `locationName:"resources" type:"list" required:"true"`
25349}
25350
25351// String returns the string representation
25352func (s AuthInfo) String() string {
25353	return awsutil.Prettify(s)
25354}
25355
25356// GoString returns the string representation
25357func (s AuthInfo) GoString() string {
25358	return s.String()
25359}
25360
25361// Validate inspects the fields of the type to determine if they are valid.
25362func (s *AuthInfo) Validate() error {
25363	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
25364	if s.Resources == nil {
25365		invalidParams.Add(request.NewErrParamRequired("Resources"))
25366	}
25367
25368	if invalidParams.Len() > 0 {
25369		return invalidParams
25370	}
25371	return nil
25372}
25373
25374// SetActionType sets the ActionType field's value.
25375func (s *AuthInfo) SetActionType(v string) *AuthInfo {
25376	s.ActionType = &v
25377	return s
25378}
25379
25380// SetResources sets the Resources field's value.
25381func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
25382	s.Resources = v
25383	return s
25384}
25385
25386// The authorizer result.
25387type AuthResult struct {
25388	_ struct{} `type:"structure"`
25389
25390	// The policies and statements that allowed the specified action.
25391	Allowed *Allowed `locationName:"allowed" type:"structure"`
25392
25393	// The final authorization decision of this scenario. Multiple statements are
25394	// taken into account when determining the authorization decision. An explicit
25395	// deny statement can override multiple allow statements.
25396	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
25397
25398	// Authorization information.
25399	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
25400
25401	// The policies and statements that denied the specified action.
25402	Denied *Denied `locationName:"denied" type:"structure"`
25403
25404	// Contains any missing context values found while evaluating policy.
25405	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
25406}
25407
25408// String returns the string representation
25409func (s AuthResult) String() string {
25410	return awsutil.Prettify(s)
25411}
25412
25413// GoString returns the string representation
25414func (s AuthResult) GoString() string {
25415	return s.String()
25416}
25417
25418// SetAllowed sets the Allowed field's value.
25419func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
25420	s.Allowed = v
25421	return s
25422}
25423
25424// SetAuthDecision sets the AuthDecision field's value.
25425func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
25426	s.AuthDecision = &v
25427	return s
25428}
25429
25430// SetAuthInfo sets the AuthInfo field's value.
25431func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
25432	s.AuthInfo = v
25433	return s
25434}
25435
25436// SetDenied sets the Denied field's value.
25437func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
25438	s.Denied = v
25439	return s
25440}
25441
25442// SetMissingContextValues sets the MissingContextValues field's value.
25443func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
25444	s.MissingContextValues = v
25445	return s
25446}
25447
25448// An object that specifies the authorization service for a domain.
25449type AuthorizerConfig struct {
25450	_ struct{} `type:"structure"`
25451
25452	// A Boolean that specifies whether the domain configuration's authorization
25453	// service can be overridden.
25454	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
25455
25456	// The name of the authorization service for a domain configuration.
25457	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
25458}
25459
25460// String returns the string representation
25461func (s AuthorizerConfig) String() string {
25462	return awsutil.Prettify(s)
25463}
25464
25465// GoString returns the string representation
25466func (s AuthorizerConfig) GoString() string {
25467	return s.String()
25468}
25469
25470// Validate inspects the fields of the type to determine if they are valid.
25471func (s *AuthorizerConfig) Validate() error {
25472	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
25473	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
25474		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
25475	}
25476
25477	if invalidParams.Len() > 0 {
25478		return invalidParams
25479	}
25480	return nil
25481}
25482
25483// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
25484func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
25485	s.AllowAuthorizerOverride = &v
25486	return s
25487}
25488
25489// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
25490func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
25491	s.DefaultAuthorizerName = &v
25492	return s
25493}
25494
25495// The authorizer description.
25496type AuthorizerDescription struct {
25497	_ struct{} `type:"structure"`
25498
25499	// The authorizer ARN.
25500	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25501
25502	// The authorizer's Lambda function ARN.
25503	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
25504
25505	// The authorizer name.
25506	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25507
25508	// The UNIX timestamp of when the authorizer was created.
25509	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
25510
25511	// The UNIX timestamp of when the authorizer was last updated.
25512	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
25513
25514	// Specifies whether AWS IoT validates the token signature in an authorization
25515	// request.
25516	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
25517
25518	// The status of the authorizer.
25519	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
25520
25521	// The key used to extract the token from the HTTP headers.
25522	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
25523
25524	// The public keys used to validate the token signature returned by your custom
25525	// authentication service.
25526	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
25527}
25528
25529// String returns the string representation
25530func (s AuthorizerDescription) String() string {
25531	return awsutil.Prettify(s)
25532}
25533
25534// GoString returns the string representation
25535func (s AuthorizerDescription) GoString() string {
25536	return s.String()
25537}
25538
25539// SetAuthorizerArn sets the AuthorizerArn field's value.
25540func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
25541	s.AuthorizerArn = &v
25542	return s
25543}
25544
25545// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
25546func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
25547	s.AuthorizerFunctionArn = &v
25548	return s
25549}
25550
25551// SetAuthorizerName sets the AuthorizerName field's value.
25552func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
25553	s.AuthorizerName = &v
25554	return s
25555}
25556
25557// SetCreationDate sets the CreationDate field's value.
25558func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
25559	s.CreationDate = &v
25560	return s
25561}
25562
25563// SetLastModifiedDate sets the LastModifiedDate field's value.
25564func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
25565	s.LastModifiedDate = &v
25566	return s
25567}
25568
25569// SetSigningDisabled sets the SigningDisabled field's value.
25570func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
25571	s.SigningDisabled = &v
25572	return s
25573}
25574
25575// SetStatus sets the Status field's value.
25576func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
25577	s.Status = &v
25578	return s
25579}
25580
25581// SetTokenKeyName sets the TokenKeyName field's value.
25582func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
25583	s.TokenKeyName = &v
25584	return s
25585}
25586
25587// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
25588func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
25589	s.TokenSigningPublicKeys = v
25590	return s
25591}
25592
25593// The authorizer summary.
25594type AuthorizerSummary struct {
25595	_ struct{} `type:"structure"`
25596
25597	// The authorizer ARN.
25598	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25599
25600	// The authorizer name.
25601	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25602}
25603
25604// String returns the string representation
25605func (s AuthorizerSummary) String() string {
25606	return awsutil.Prettify(s)
25607}
25608
25609// GoString returns the string representation
25610func (s AuthorizerSummary) GoString() string {
25611	return s.String()
25612}
25613
25614// SetAuthorizerArn sets the AuthorizerArn field's value.
25615func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
25616	s.AuthorizerArn = &v
25617	return s
25618}
25619
25620// SetAuthorizerName sets the AuthorizerName field's value.
25621func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
25622	s.AuthorizerName = &v
25623	return s
25624}
25625
25626// The criteria that determine when and how a job abort takes place.
25627type AwsJobAbortConfig struct {
25628	_ struct{} `type:"structure"`
25629
25630	// The list of criteria that determine when and how to abort the job.
25631	//
25632	// AbortCriteriaList is a required field
25633	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
25634}
25635
25636// String returns the string representation
25637func (s AwsJobAbortConfig) String() string {
25638	return awsutil.Prettify(s)
25639}
25640
25641// GoString returns the string representation
25642func (s AwsJobAbortConfig) GoString() string {
25643	return s.String()
25644}
25645
25646// Validate inspects the fields of the type to determine if they are valid.
25647func (s *AwsJobAbortConfig) Validate() error {
25648	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
25649	if s.AbortCriteriaList == nil {
25650		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
25651	}
25652	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
25653		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
25654	}
25655	if s.AbortCriteriaList != nil {
25656		for i, v := range s.AbortCriteriaList {
25657			if v == nil {
25658				continue
25659			}
25660			if err := v.Validate(); err != nil {
25661				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
25662			}
25663		}
25664	}
25665
25666	if invalidParams.Len() > 0 {
25667		return invalidParams
25668	}
25669	return nil
25670}
25671
25672// SetAbortCriteriaList sets the AbortCriteriaList field's value.
25673func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
25674	s.AbortCriteriaList = v
25675	return s
25676}
25677
25678// The criteria that determine when and how a job abort takes place.
25679type AwsJobAbortCriteria struct {
25680	_ struct{} `type:"structure"`
25681
25682	// The type of job action to take to initiate the job abort.
25683	//
25684	// Action is a required field
25685	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
25686
25687	// The type of job execution failures that can initiate a job abort.
25688	//
25689	// FailureType is a required field
25690	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
25691
25692	// The minimum number of things which must receive job execution notifications
25693	// before the job can be aborted.
25694	//
25695	// MinNumberOfExecutedThings is a required field
25696	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
25697
25698	// The minimum percentage of job execution failures that must occur to initiate
25699	// the job abort.
25700	//
25701	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
25702	// 10.99, but not 10.999).
25703	//
25704	// ThresholdPercentage is a required field
25705	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
25706}
25707
25708// String returns the string representation
25709func (s AwsJobAbortCriteria) String() string {
25710	return awsutil.Prettify(s)
25711}
25712
25713// GoString returns the string representation
25714func (s AwsJobAbortCriteria) GoString() string {
25715	return s.String()
25716}
25717
25718// Validate inspects the fields of the type to determine if they are valid.
25719func (s *AwsJobAbortCriteria) Validate() error {
25720	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
25721	if s.Action == nil {
25722		invalidParams.Add(request.NewErrParamRequired("Action"))
25723	}
25724	if s.FailureType == nil {
25725		invalidParams.Add(request.NewErrParamRequired("FailureType"))
25726	}
25727	if s.MinNumberOfExecutedThings == nil {
25728		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
25729	}
25730	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
25731		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
25732	}
25733	if s.ThresholdPercentage == nil {
25734		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
25735	}
25736
25737	if invalidParams.Len() > 0 {
25738		return invalidParams
25739	}
25740	return nil
25741}
25742
25743// SetAction sets the Action field's value.
25744func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
25745	s.Action = &v
25746	return s
25747}
25748
25749// SetFailureType sets the FailureType field's value.
25750func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
25751	s.FailureType = &v
25752	return s
25753}
25754
25755// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
25756func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
25757	s.MinNumberOfExecutedThings = &v
25758	return s
25759}
25760
25761// SetThresholdPercentage sets the ThresholdPercentage field's value.
25762func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
25763	s.ThresholdPercentage = &v
25764	return s
25765}
25766
25767// Configuration for the rollout of OTA updates.
25768type AwsJobExecutionsRolloutConfig struct {
25769	_ struct{} `type:"structure"`
25770
25771	// The rate of increase for a job rollout. This parameter allows you to define
25772	// an exponential rate increase for a job rollout.
25773	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
25774
25775	// The maximum number of OTA update job executions started per minute.
25776	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
25777}
25778
25779// String returns the string representation
25780func (s AwsJobExecutionsRolloutConfig) String() string {
25781	return awsutil.Prettify(s)
25782}
25783
25784// GoString returns the string representation
25785func (s AwsJobExecutionsRolloutConfig) GoString() string {
25786	return s.String()
25787}
25788
25789// Validate inspects the fields of the type to determine if they are valid.
25790func (s *AwsJobExecutionsRolloutConfig) Validate() error {
25791	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
25792	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
25793		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
25794	}
25795	if s.ExponentialRate != nil {
25796		if err := s.ExponentialRate.Validate(); err != nil {
25797			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
25798		}
25799	}
25800
25801	if invalidParams.Len() > 0 {
25802		return invalidParams
25803	}
25804	return nil
25805}
25806
25807// SetExponentialRate sets the ExponentialRate field's value.
25808func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
25809	s.ExponentialRate = v
25810	return s
25811}
25812
25813// SetMaximumPerMinute sets the MaximumPerMinute field's value.
25814func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
25815	s.MaximumPerMinute = &v
25816	return s
25817}
25818
25819// The rate of increase for a job rollout. This parameter allows you to define
25820// an exponential rate increase for a job rollout.
25821type AwsJobExponentialRolloutRate struct {
25822	_ struct{} `type:"structure"`
25823
25824	// The minimum number of things that will be notified of a pending job, per
25825	// minute, at the start of the job rollout. This is the initial rate of the
25826	// rollout.
25827	//
25828	// BaseRatePerMinute is a required field
25829	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
25830
25831	// The rate of increase for a job rollout. The number of things notified is
25832	// multiplied by this factor.
25833	//
25834	// IncrementFactor is a required field
25835	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
25836
25837	// The criteria to initiate the increase in rate of rollout for a job.
25838	//
25839	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
25840	// not 1.55).
25841	//
25842	// RateIncreaseCriteria is a required field
25843	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
25844}
25845
25846// String returns the string representation
25847func (s AwsJobExponentialRolloutRate) String() string {
25848	return awsutil.Prettify(s)
25849}
25850
25851// GoString returns the string representation
25852func (s AwsJobExponentialRolloutRate) GoString() string {
25853	return s.String()
25854}
25855
25856// Validate inspects the fields of the type to determine if they are valid.
25857func (s *AwsJobExponentialRolloutRate) Validate() error {
25858	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
25859	if s.BaseRatePerMinute == nil {
25860		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
25861	}
25862	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
25863		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
25864	}
25865	if s.IncrementFactor == nil {
25866		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
25867	}
25868	if s.RateIncreaseCriteria == nil {
25869		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
25870	}
25871	if s.RateIncreaseCriteria != nil {
25872		if err := s.RateIncreaseCriteria.Validate(); err != nil {
25873			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
25874		}
25875	}
25876
25877	if invalidParams.Len() > 0 {
25878		return invalidParams
25879	}
25880	return nil
25881}
25882
25883// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
25884func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
25885	s.BaseRatePerMinute = &v
25886	return s
25887}
25888
25889// SetIncrementFactor sets the IncrementFactor field's value.
25890func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
25891	s.IncrementFactor = &v
25892	return s
25893}
25894
25895// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
25896func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
25897	s.RateIncreaseCriteria = v
25898	return s
25899}
25900
25901// Configuration information for pre-signed URLs. Valid when protocols contains
25902// HTTP.
25903type AwsJobPresignedUrlConfig struct {
25904	_ struct{} `type:"structure"`
25905
25906	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
25907	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
25908	// for the job document is received.
25909	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
25910}
25911
25912// String returns the string representation
25913func (s AwsJobPresignedUrlConfig) String() string {
25914	return awsutil.Prettify(s)
25915}
25916
25917// GoString returns the string representation
25918func (s AwsJobPresignedUrlConfig) GoString() string {
25919	return s.String()
25920}
25921
25922// SetExpiresInSec sets the ExpiresInSec field's value.
25923func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
25924	s.ExpiresInSec = &v
25925	return s
25926}
25927
25928// The criteria to initiate the increase in rate of rollout for a job.
25929type AwsJobRateIncreaseCriteria struct {
25930	_ struct{} `type:"structure"`
25931
25932	// When this number of things have been notified, it will initiate an increase
25933	// in the rollout rate.
25934	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
25935
25936	// When this number of things have succeeded in their job execution, it will
25937	// initiate an increase in the rollout rate.
25938	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
25939}
25940
25941// String returns the string representation
25942func (s AwsJobRateIncreaseCriteria) String() string {
25943	return awsutil.Prettify(s)
25944}
25945
25946// GoString returns the string representation
25947func (s AwsJobRateIncreaseCriteria) GoString() string {
25948	return s.String()
25949}
25950
25951// Validate inspects the fields of the type to determine if they are valid.
25952func (s *AwsJobRateIncreaseCriteria) Validate() error {
25953	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
25954	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
25955		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
25956	}
25957	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
25958		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
25959	}
25960
25961	if invalidParams.Len() > 0 {
25962		return invalidParams
25963	}
25964	return nil
25965}
25966
25967// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
25968func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
25969	s.NumberOfNotifiedThings = &v
25970	return s
25971}
25972
25973// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
25974func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
25975	s.NumberOfSucceededThings = &v
25976	return s
25977}
25978
25979// Specifies the amount of time each device has to finish its execution of the
25980// job. A timer is started when the job execution status is set to IN_PROGRESS.
25981// If the job execution status is not set to another terminal state before the
25982// timer expires, it will be automatically set to TIMED_OUT.
25983type AwsJobTimeoutConfig struct {
25984	_ struct{} `type:"structure"`
25985
25986	// Specifies the amount of time, in minutes, this device has to finish execution
25987	// of this job. The timeout interval can be anywhere between 1 minute and 7
25988	// days (1 to 10080 minutes). The in progress timer can't be updated and will
25989	// apply to all job executions for the job. Whenever a job execution remains
25990	// in the IN_PROGRESS status for longer than this interval, the job execution
25991	// will fail and switch to the terminal TIMED_OUT status.
25992	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
25993}
25994
25995// String returns the string representation
25996func (s AwsJobTimeoutConfig) String() string {
25997	return awsutil.Prettify(s)
25998}
25999
26000// GoString returns the string representation
26001func (s AwsJobTimeoutConfig) GoString() string {
26002	return s.String()
26003}
26004
26005// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
26006func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
26007	s.InProgressTimeoutInMinutes = &v
26008	return s
26009}
26010
26011// A Device Defender security profile behavior.
26012type Behavior struct {
26013	_ struct{} `type:"structure"`
26014
26015	// The criteria that determine if a device is behaving normally in regard to
26016	// the metric.
26017	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
26018
26019	// What is measured by the behavior.
26020	Metric *string `locationName:"metric" type:"string"`
26021
26022	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
26023	// dimension, you can narrow down the scope of the metric to only MQTT topics
26024	// where the name matches the pattern specified in the dimension. This can't
26025	// be used with custom metrics.
26026	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
26027
26028	// The name you've given to the behavior.
26029	//
26030	// Name is a required field
26031	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
26032
26033	// Suppresses alerts.
26034	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
26035}
26036
26037// String returns the string representation
26038func (s Behavior) String() string {
26039	return awsutil.Prettify(s)
26040}
26041
26042// GoString returns the string representation
26043func (s Behavior) GoString() string {
26044	return s.String()
26045}
26046
26047// Validate inspects the fields of the type to determine if they are valid.
26048func (s *Behavior) Validate() error {
26049	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
26050	if s.Name == nil {
26051		invalidParams.Add(request.NewErrParamRequired("Name"))
26052	}
26053	if s.Name != nil && len(*s.Name) < 1 {
26054		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
26055	}
26056	if s.Criteria != nil {
26057		if err := s.Criteria.Validate(); err != nil {
26058			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
26059		}
26060	}
26061	if s.MetricDimension != nil {
26062		if err := s.MetricDimension.Validate(); err != nil {
26063			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
26064		}
26065	}
26066
26067	if invalidParams.Len() > 0 {
26068		return invalidParams
26069	}
26070	return nil
26071}
26072
26073// SetCriteria sets the Criteria field's value.
26074func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
26075	s.Criteria = v
26076	return s
26077}
26078
26079// SetMetric sets the Metric field's value.
26080func (s *Behavior) SetMetric(v string) *Behavior {
26081	s.Metric = &v
26082	return s
26083}
26084
26085// SetMetricDimension sets the MetricDimension field's value.
26086func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
26087	s.MetricDimension = v
26088	return s
26089}
26090
26091// SetName sets the Name field's value.
26092func (s *Behavior) SetName(v string) *Behavior {
26093	s.Name = &v
26094	return s
26095}
26096
26097// SetSuppressAlerts sets the SuppressAlerts field's value.
26098func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
26099	s.SuppressAlerts = &v
26100	return s
26101}
26102
26103// The criteria by which the behavior is determined to be normal.
26104type BehaviorCriteria struct {
26105	_ struct{} `type:"structure"`
26106
26107	// The operator that relates the thing measured (metric) to the criteria (containing
26108	// a value or statisticalThreshold). Valid operators include:
26109	//
26110	//    * string-list: in-set and not-in-set
26111	//
26112	//    * number-list: in-set and not-in-set
26113	//
26114	//    * ip-address-list: in-cidr-set and not-in-cidr-set
26115	//
26116	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
26117	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
26118
26119	// If a device is in violation of the behavior for the specified number of consecutive
26120	// datapoints, an alarm occurs. If not specified, the default is 1.
26121	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
26122
26123	// If an alarm has occurred and the offending device is no longer in violation
26124	// of the behavior for the specified number of consecutive datapoints, the alarm
26125	// is cleared. If not specified, the default is 1.
26126	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
26127
26128	// Use this to specify the time duration over which the behavior is evaluated,
26129	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
26130	// For a statisticalThreshhold metric comparison, measurements from all devices
26131	// are accumulated over this time duration before being used to calculate percentiles,
26132	// and later, measurements from an individual device are also accumulated over
26133	// this time duration before being given a percentile rank. Cannot be used with
26134	// list-based metric datatypes.
26135	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
26136
26137	// The configuration of an ML Detect
26138	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
26139
26140	// A statistical ranking (percentile)that indicates a threshold value by which
26141	// a behavior is determined to be in compliance or in violation of the behavior.
26142	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
26143
26144	// The value to be compared with the metric.
26145	Value *MetricValue `locationName:"value" type:"structure"`
26146}
26147
26148// String returns the string representation
26149func (s BehaviorCriteria) String() string {
26150	return awsutil.Prettify(s)
26151}
26152
26153// GoString returns the string representation
26154func (s BehaviorCriteria) GoString() string {
26155	return s.String()
26156}
26157
26158// Validate inspects the fields of the type to determine if they are valid.
26159func (s *BehaviorCriteria) Validate() error {
26160	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
26161	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
26162		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
26163	}
26164	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
26165		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
26166	}
26167	if s.MlDetectionConfig != nil {
26168		if err := s.MlDetectionConfig.Validate(); err != nil {
26169			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
26170		}
26171	}
26172
26173	if invalidParams.Len() > 0 {
26174		return invalidParams
26175	}
26176	return nil
26177}
26178
26179// SetComparisonOperator sets the ComparisonOperator field's value.
26180func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
26181	s.ComparisonOperator = &v
26182	return s
26183}
26184
26185// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
26186func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
26187	s.ConsecutiveDatapointsToAlarm = &v
26188	return s
26189}
26190
26191// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
26192func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
26193	s.ConsecutiveDatapointsToClear = &v
26194	return s
26195}
26196
26197// SetDurationSeconds sets the DurationSeconds field's value.
26198func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
26199	s.DurationSeconds = &v
26200	return s
26201}
26202
26203// SetMlDetectionConfig sets the MlDetectionConfig field's value.
26204func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
26205	s.MlDetectionConfig = v
26206	return s
26207}
26208
26209// SetStatisticalThreshold sets the StatisticalThreshold field's value.
26210func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
26211	s.StatisticalThreshold = v
26212	return s
26213}
26214
26215// SetValue sets the Value field's value.
26216func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
26217	s.Value = v
26218	return s
26219}
26220
26221// The summary of an ML Detect behavior model.
26222type BehaviorModelTrainingSummary struct {
26223	_ struct{} `type:"structure"`
26224
26225	// The name of the behavior.
26226	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
26227
26228	// The percentage of datapoints collected.
26229	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
26230
26231	// The date the model was last refreshed.
26232	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
26233
26234	// The status of the behavior model.
26235	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
26236
26237	// The name of the security profile.
26238	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
26239
26240	// The date a training model started collecting data.
26241	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
26242}
26243
26244// String returns the string representation
26245func (s BehaviorModelTrainingSummary) String() string {
26246	return awsutil.Prettify(s)
26247}
26248
26249// GoString returns the string representation
26250func (s BehaviorModelTrainingSummary) GoString() string {
26251	return s.String()
26252}
26253
26254// SetBehaviorName sets the BehaviorName field's value.
26255func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
26256	s.BehaviorName = &v
26257	return s
26258}
26259
26260// SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
26261func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
26262	s.DatapointsCollectionPercentage = &v
26263	return s
26264}
26265
26266// SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
26267func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
26268	s.LastModelRefreshDate = &v
26269	return s
26270}
26271
26272// SetModelStatus sets the ModelStatus field's value.
26273func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
26274	s.ModelStatus = &v
26275	return s
26276}
26277
26278// SetSecurityProfileName sets the SecurityProfileName field's value.
26279func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
26280	s.SecurityProfileName = &v
26281	return s
26282}
26283
26284// SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
26285func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
26286	s.TrainingDataCollectionStartDate = &v
26287	return s
26288}
26289
26290// Additional information about the billing group.
26291type BillingGroupMetadata struct {
26292	_ struct{} `type:"structure"`
26293
26294	// The date the billing group was created.
26295	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26296}
26297
26298// String returns the string representation
26299func (s BillingGroupMetadata) String() string {
26300	return awsutil.Prettify(s)
26301}
26302
26303// GoString returns the string representation
26304func (s BillingGroupMetadata) GoString() string {
26305	return s.String()
26306}
26307
26308// SetCreationDate sets the CreationDate field's value.
26309func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
26310	s.CreationDate = &v
26311	return s
26312}
26313
26314// The properties of a billing group.
26315type BillingGroupProperties struct {
26316	_ struct{} `type:"structure"`
26317
26318	// The description of the billing group.
26319	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
26320}
26321
26322// String returns the string representation
26323func (s BillingGroupProperties) String() string {
26324	return awsutil.Prettify(s)
26325}
26326
26327// GoString returns the string representation
26328func (s BillingGroupProperties) GoString() string {
26329	return s.String()
26330}
26331
26332// SetBillingGroupDescription sets the BillingGroupDescription field's value.
26333func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
26334	s.BillingGroupDescription = &v
26335	return s
26336}
26337
26338// A CA certificate.
26339type CACertificate struct {
26340	_ struct{} `type:"structure"`
26341
26342	// The ARN of the CA certificate.
26343	CertificateArn *string `locationName:"certificateArn" type:"string"`
26344
26345	// The ID of the CA certificate.
26346	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26347
26348	// The date the CA certificate was created.
26349	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26350
26351	// The status of the CA certificate.
26352	//
26353	// The status value REGISTER_INACTIVE is deprecated and should not be used.
26354	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26355}
26356
26357// String returns the string representation
26358func (s CACertificate) String() string {
26359	return awsutil.Prettify(s)
26360}
26361
26362// GoString returns the string representation
26363func (s CACertificate) GoString() string {
26364	return s.String()
26365}
26366
26367// SetCertificateArn sets the CertificateArn field's value.
26368func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
26369	s.CertificateArn = &v
26370	return s
26371}
26372
26373// SetCertificateId sets the CertificateId field's value.
26374func (s *CACertificate) SetCertificateId(v string) *CACertificate {
26375	s.CertificateId = &v
26376	return s
26377}
26378
26379// SetCreationDate sets the CreationDate field's value.
26380func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
26381	s.CreationDate = &v
26382	return s
26383}
26384
26385// SetStatus sets the Status field's value.
26386func (s *CACertificate) SetStatus(v string) *CACertificate {
26387	s.Status = &v
26388	return s
26389}
26390
26391// Describes a CA certificate.
26392type CACertificateDescription struct {
26393	_ struct{} `type:"structure"`
26394
26395	// Whether the CA certificate configured for auto registration of device certificates.
26396	// Valid values are "ENABLE" and "DISABLE"
26397	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
26398
26399	// The CA certificate ARN.
26400	CertificateArn *string `locationName:"certificateArn" type:"string"`
26401
26402	// The CA certificate ID.
26403	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26404
26405	// The CA certificate data, in PEM format.
26406	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
26407
26408	// The date the CA certificate was created.
26409	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26410
26411	// The customer version of the CA certificate.
26412	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
26413
26414	// The generation ID of the CA certificate.
26415	GenerationId *string `locationName:"generationId" type:"string"`
26416
26417	// The date the CA certificate was last modified.
26418	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
26419
26420	// The owner of the CA certificate.
26421	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
26422
26423	// The status of a CA certificate.
26424	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26425
26426	// When the CA certificate is valid.
26427	Validity *CertificateValidity `locationName:"validity" type:"structure"`
26428}
26429
26430// String returns the string representation
26431func (s CACertificateDescription) String() string {
26432	return awsutil.Prettify(s)
26433}
26434
26435// GoString returns the string representation
26436func (s CACertificateDescription) GoString() string {
26437	return s.String()
26438}
26439
26440// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
26441func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
26442	s.AutoRegistrationStatus = &v
26443	return s
26444}
26445
26446// SetCertificateArn sets the CertificateArn field's value.
26447func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
26448	s.CertificateArn = &v
26449	return s
26450}
26451
26452// SetCertificateId sets the CertificateId field's value.
26453func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
26454	s.CertificateId = &v
26455	return s
26456}
26457
26458// SetCertificatePem sets the CertificatePem field's value.
26459func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
26460	s.CertificatePem = &v
26461	return s
26462}
26463
26464// SetCreationDate sets the CreationDate field's value.
26465func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
26466	s.CreationDate = &v
26467	return s
26468}
26469
26470// SetCustomerVersion sets the CustomerVersion field's value.
26471func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
26472	s.CustomerVersion = &v
26473	return s
26474}
26475
26476// SetGenerationId sets the GenerationId field's value.
26477func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
26478	s.GenerationId = &v
26479	return s
26480}
26481
26482// SetLastModifiedDate sets the LastModifiedDate field's value.
26483func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
26484	s.LastModifiedDate = &v
26485	return s
26486}
26487
26488// SetOwnedBy sets the OwnedBy field's value.
26489func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
26490	s.OwnedBy = &v
26491	return s
26492}
26493
26494// SetStatus sets the Status field's value.
26495func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
26496	s.Status = &v
26497	return s
26498}
26499
26500// SetValidity sets the Validity field's value.
26501func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
26502	s.Validity = v
26503	return s
26504}
26505
26506type CancelAuditMitigationActionsTaskInput struct {
26507	_ struct{} `type:"structure"`
26508
26509	// The unique identifier for the task that you want to cancel.
26510	//
26511	// TaskId is a required field
26512	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26513}
26514
26515// String returns the string representation
26516func (s CancelAuditMitigationActionsTaskInput) String() string {
26517	return awsutil.Prettify(s)
26518}
26519
26520// GoString returns the string representation
26521func (s CancelAuditMitigationActionsTaskInput) GoString() string {
26522	return s.String()
26523}
26524
26525// Validate inspects the fields of the type to determine if they are valid.
26526func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
26527	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
26528	if s.TaskId == nil {
26529		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26530	}
26531	if s.TaskId != nil && len(*s.TaskId) < 1 {
26532		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26533	}
26534
26535	if invalidParams.Len() > 0 {
26536		return invalidParams
26537	}
26538	return nil
26539}
26540
26541// SetTaskId sets the TaskId field's value.
26542func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
26543	s.TaskId = &v
26544	return s
26545}
26546
26547type CancelAuditMitigationActionsTaskOutput struct {
26548	_ struct{} `type:"structure"`
26549}
26550
26551// String returns the string representation
26552func (s CancelAuditMitigationActionsTaskOutput) String() string {
26553	return awsutil.Prettify(s)
26554}
26555
26556// GoString returns the string representation
26557func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
26558	return s.String()
26559}
26560
26561type CancelAuditTaskInput struct {
26562	_ struct{} `type:"structure"`
26563
26564	// The ID of the audit you want to cancel. You can only cancel an audit that
26565	// is "IN_PROGRESS".
26566	//
26567	// TaskId is a required field
26568	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26569}
26570
26571// String returns the string representation
26572func (s CancelAuditTaskInput) String() string {
26573	return awsutil.Prettify(s)
26574}
26575
26576// GoString returns the string representation
26577func (s CancelAuditTaskInput) GoString() string {
26578	return s.String()
26579}
26580
26581// Validate inspects the fields of the type to determine if they are valid.
26582func (s *CancelAuditTaskInput) Validate() error {
26583	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
26584	if s.TaskId == nil {
26585		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26586	}
26587	if s.TaskId != nil && len(*s.TaskId) < 1 {
26588		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26589	}
26590
26591	if invalidParams.Len() > 0 {
26592		return invalidParams
26593	}
26594	return nil
26595}
26596
26597// SetTaskId sets the TaskId field's value.
26598func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
26599	s.TaskId = &v
26600	return s
26601}
26602
26603type CancelAuditTaskOutput struct {
26604	_ struct{} `type:"structure"`
26605}
26606
26607// String returns the string representation
26608func (s CancelAuditTaskOutput) String() string {
26609	return awsutil.Prettify(s)
26610}
26611
26612// GoString returns the string representation
26613func (s CancelAuditTaskOutput) GoString() string {
26614	return s.String()
26615}
26616
26617// The input for the CancelCertificateTransfer operation.
26618type CancelCertificateTransferInput struct {
26619	_ struct{} `type:"structure"`
26620
26621	// The ID of the certificate. (The last part of the certificate ARN contains
26622	// the certificate ID.)
26623	//
26624	// CertificateId is a required field
26625	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
26626}
26627
26628// String returns the string representation
26629func (s CancelCertificateTransferInput) String() string {
26630	return awsutil.Prettify(s)
26631}
26632
26633// GoString returns the string representation
26634func (s CancelCertificateTransferInput) GoString() string {
26635	return s.String()
26636}
26637
26638// Validate inspects the fields of the type to determine if they are valid.
26639func (s *CancelCertificateTransferInput) Validate() error {
26640	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
26641	if s.CertificateId == nil {
26642		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
26643	}
26644	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
26645		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
26646	}
26647
26648	if invalidParams.Len() > 0 {
26649		return invalidParams
26650	}
26651	return nil
26652}
26653
26654// SetCertificateId sets the CertificateId field's value.
26655func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
26656	s.CertificateId = &v
26657	return s
26658}
26659
26660type CancelCertificateTransferOutput struct {
26661	_ struct{} `type:"structure"`
26662}
26663
26664// String returns the string representation
26665func (s CancelCertificateTransferOutput) String() string {
26666	return awsutil.Prettify(s)
26667}
26668
26669// GoString returns the string representation
26670func (s CancelCertificateTransferOutput) GoString() string {
26671	return s.String()
26672}
26673
26674type CancelDetectMitigationActionsTaskInput struct {
26675	_ struct{} `type:"structure"`
26676
26677	// The unique identifier of the task.
26678	//
26679	// TaskId is a required field
26680	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26681}
26682
26683// String returns the string representation
26684func (s CancelDetectMitigationActionsTaskInput) String() string {
26685	return awsutil.Prettify(s)
26686}
26687
26688// GoString returns the string representation
26689func (s CancelDetectMitigationActionsTaskInput) GoString() string {
26690	return s.String()
26691}
26692
26693// Validate inspects the fields of the type to determine if they are valid.
26694func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
26695	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
26696	if s.TaskId == nil {
26697		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26698	}
26699	if s.TaskId != nil && len(*s.TaskId) < 1 {
26700		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26701	}
26702
26703	if invalidParams.Len() > 0 {
26704		return invalidParams
26705	}
26706	return nil
26707}
26708
26709// SetTaskId sets the TaskId field's value.
26710func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
26711	s.TaskId = &v
26712	return s
26713}
26714
26715type CancelDetectMitigationActionsTaskOutput struct {
26716	_ struct{} `type:"structure"`
26717}
26718
26719// String returns the string representation
26720func (s CancelDetectMitigationActionsTaskOutput) String() string {
26721	return awsutil.Prettify(s)
26722}
26723
26724// GoString returns the string representation
26725func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
26726	return s.String()
26727}
26728
26729type CancelJobExecutionInput struct {
26730	_ struct{} `type:"structure"`
26731
26732	// (Optional) The expected current version of the job execution. Each time you
26733	// update the job execution, its version is incremented. If the version of the
26734	// job execution stored in Jobs does not match, the update is rejected with
26735	// a VersionMismatch error, and an ErrorResponse that contains the current job
26736	// execution status data is returned. (This makes it unnecessary to perform
26737	// a separate DescribeJobExecution request in order to obtain the job execution
26738	// status data.)
26739	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
26740
26741	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
26742	// or QUEUED, otherwise the job execution will be canceled only if it has status
26743	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
26744	// you do not set force to true, then an InvalidStateTransitionException will
26745	// be thrown. The default is false.
26746	//
26747	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
26748	// be unable to update the job execution status. Use caution and ensure that
26749	// the device is able to recover to a valid state.
26750	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
26751
26752	// The ID of the job to be canceled.
26753	//
26754	// JobId is a required field
26755	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26756
26757	// A collection of name/value pairs that describe the status of the job execution.
26758	// If not specified, the statusDetails are unchanged. You can specify at most
26759	// 10 name/value pairs.
26760	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
26761
26762	// The name of the thing whose execution of the job will be canceled.
26763	//
26764	// ThingName is a required field
26765	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26766}
26767
26768// String returns the string representation
26769func (s CancelJobExecutionInput) String() string {
26770	return awsutil.Prettify(s)
26771}
26772
26773// GoString returns the string representation
26774func (s CancelJobExecutionInput) GoString() string {
26775	return s.String()
26776}
26777
26778// Validate inspects the fields of the type to determine if they are valid.
26779func (s *CancelJobExecutionInput) Validate() error {
26780	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
26781	if s.JobId == nil {
26782		invalidParams.Add(request.NewErrParamRequired("JobId"))
26783	}
26784	if s.JobId != nil && len(*s.JobId) < 1 {
26785		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26786	}
26787	if s.ThingName == nil {
26788		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26789	}
26790	if s.ThingName != nil && len(*s.ThingName) < 1 {
26791		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26792	}
26793
26794	if invalidParams.Len() > 0 {
26795		return invalidParams
26796	}
26797	return nil
26798}
26799
26800// SetExpectedVersion sets the ExpectedVersion field's value.
26801func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
26802	s.ExpectedVersion = &v
26803	return s
26804}
26805
26806// SetForce sets the Force field's value.
26807func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
26808	s.Force = &v
26809	return s
26810}
26811
26812// SetJobId sets the JobId field's value.
26813func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
26814	s.JobId = &v
26815	return s
26816}
26817
26818// SetStatusDetails sets the StatusDetails field's value.
26819func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
26820	s.StatusDetails = v
26821	return s
26822}
26823
26824// SetThingName sets the ThingName field's value.
26825func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
26826	s.ThingName = &v
26827	return s
26828}
26829
26830type CancelJobExecutionOutput struct {
26831	_ struct{} `type:"structure"`
26832}
26833
26834// String returns the string representation
26835func (s CancelJobExecutionOutput) String() string {
26836	return awsutil.Prettify(s)
26837}
26838
26839// GoString returns the string representation
26840func (s CancelJobExecutionOutput) GoString() string {
26841	return s.String()
26842}
26843
26844type CancelJobInput struct {
26845	_ struct{} `type:"structure"`
26846
26847	// An optional comment string describing why the job was canceled.
26848	Comment *string `locationName:"comment" type:"string"`
26849
26850	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
26851	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
26852	// The default is false.
26853	//
26854	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
26855	// the job to be unable to update the job execution status. Use caution and
26856	// ensure that each device executing a job which is canceled is able to recover
26857	// to a valid state.
26858	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
26859
26860	// The unique identifier you assigned to this job when it was created.
26861	//
26862	// JobId is a required field
26863	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26864
26865	// (Optional)A reason code string that explains why the job was canceled.
26866	ReasonCode *string `locationName:"reasonCode" type:"string"`
26867}
26868
26869// String returns the string representation
26870func (s CancelJobInput) String() string {
26871	return awsutil.Prettify(s)
26872}
26873
26874// GoString returns the string representation
26875func (s CancelJobInput) GoString() string {
26876	return s.String()
26877}
26878
26879// Validate inspects the fields of the type to determine if they are valid.
26880func (s *CancelJobInput) Validate() error {
26881	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
26882	if s.JobId == nil {
26883		invalidParams.Add(request.NewErrParamRequired("JobId"))
26884	}
26885	if s.JobId != nil && len(*s.JobId) < 1 {
26886		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26887	}
26888
26889	if invalidParams.Len() > 0 {
26890		return invalidParams
26891	}
26892	return nil
26893}
26894
26895// SetComment sets the Comment field's value.
26896func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
26897	s.Comment = &v
26898	return s
26899}
26900
26901// SetForce sets the Force field's value.
26902func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
26903	s.Force = &v
26904	return s
26905}
26906
26907// SetJobId sets the JobId field's value.
26908func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
26909	s.JobId = &v
26910	return s
26911}
26912
26913// SetReasonCode sets the ReasonCode field's value.
26914func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
26915	s.ReasonCode = &v
26916	return s
26917}
26918
26919type CancelJobOutput struct {
26920	_ struct{} `type:"structure"`
26921
26922	// A short text description of the job.
26923	Description *string `locationName:"description" type:"string"`
26924
26925	// The job ARN.
26926	JobArn *string `locationName:"jobArn" type:"string"`
26927
26928	// The unique identifier you assigned to this job when it was created.
26929	JobId *string `locationName:"jobId" min:"1" type:"string"`
26930}
26931
26932// String returns the string representation
26933func (s CancelJobOutput) String() string {
26934	return awsutil.Prettify(s)
26935}
26936
26937// GoString returns the string representation
26938func (s CancelJobOutput) GoString() string {
26939	return s.String()
26940}
26941
26942// SetDescription sets the Description field's value.
26943func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
26944	s.Description = &v
26945	return s
26946}
26947
26948// SetJobArn sets the JobArn field's value.
26949func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
26950	s.JobArn = &v
26951	return s
26952}
26953
26954// SetJobId sets the JobId field's value.
26955func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
26956	s.JobId = &v
26957	return s
26958}
26959
26960// Information about a certificate.
26961type Certificate struct {
26962	_ struct{} `type:"structure"`
26963
26964	// The ARN of the certificate.
26965	CertificateArn *string `locationName:"certificateArn" type:"string"`
26966
26967	// The ID of the certificate. (The last part of the certificate ARN contains
26968	// the certificate ID.)
26969	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26970
26971	// The mode of the certificate.
26972	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
26973
26974	// The date and time the certificate was created.
26975	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26976
26977	// The status of the certificate.
26978	//
26979	// The status value REGISTER_INACTIVE is deprecated and should not be used.
26980	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
26981}
26982
26983// String returns the string representation
26984func (s Certificate) String() string {
26985	return awsutil.Prettify(s)
26986}
26987
26988// GoString returns the string representation
26989func (s Certificate) GoString() string {
26990	return s.String()
26991}
26992
26993// SetCertificateArn sets the CertificateArn field's value.
26994func (s *Certificate) SetCertificateArn(v string) *Certificate {
26995	s.CertificateArn = &v
26996	return s
26997}
26998
26999// SetCertificateId sets the CertificateId field's value.
27000func (s *Certificate) SetCertificateId(v string) *Certificate {
27001	s.CertificateId = &v
27002	return s
27003}
27004
27005// SetCertificateMode sets the CertificateMode field's value.
27006func (s *Certificate) SetCertificateMode(v string) *Certificate {
27007	s.CertificateMode = &v
27008	return s
27009}
27010
27011// SetCreationDate sets the CreationDate field's value.
27012func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
27013	s.CreationDate = &v
27014	return s
27015}
27016
27017// SetStatus sets the Status field's value.
27018func (s *Certificate) SetStatus(v string) *Certificate {
27019	s.Status = &v
27020	return s
27021}
27022
27023// Unable to verify the CA certificate used to sign the device certificate you
27024// are attempting to register. This is happens when you have registered more
27025// than one CA certificate that has the same subject field and public key.
27026type CertificateConflictException struct {
27027	_            struct{}                  `type:"structure"`
27028	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27029
27030	// The message for the exception.
27031	Message_ *string `locationName:"message" type:"string"`
27032}
27033
27034// String returns the string representation
27035func (s CertificateConflictException) String() string {
27036	return awsutil.Prettify(s)
27037}
27038
27039// GoString returns the string representation
27040func (s CertificateConflictException) GoString() string {
27041	return s.String()
27042}
27043
27044func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
27045	return &CertificateConflictException{
27046		RespMetadata: v,
27047	}
27048}
27049
27050// Code returns the exception type name.
27051func (s *CertificateConflictException) Code() string {
27052	return "CertificateConflictException"
27053}
27054
27055// Message returns the exception's message.
27056func (s *CertificateConflictException) Message() string {
27057	if s.Message_ != nil {
27058		return *s.Message_
27059	}
27060	return ""
27061}
27062
27063// OrigErr always returns nil, satisfies awserr.Error interface.
27064func (s *CertificateConflictException) OrigErr() error {
27065	return nil
27066}
27067
27068func (s *CertificateConflictException) Error() string {
27069	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27070}
27071
27072// Status code returns the HTTP status code for the request's response error.
27073func (s *CertificateConflictException) StatusCode() int {
27074	return s.RespMetadata.StatusCode
27075}
27076
27077// RequestID returns the service's response RequestID for request.
27078func (s *CertificateConflictException) RequestID() string {
27079	return s.RespMetadata.RequestID
27080}
27081
27082// Describes a certificate.
27083type CertificateDescription struct {
27084	_ struct{} `type:"structure"`
27085
27086	// The certificate ID of the CA certificate used to sign this certificate.
27087	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
27088
27089	// The ARN of the certificate.
27090	CertificateArn *string `locationName:"certificateArn" type:"string"`
27091
27092	// The ID of the certificate.
27093	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27094
27095	// The mode of the certificate.
27096	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
27097
27098	// The certificate data, in PEM format.
27099	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
27100
27101	// The date and time the certificate was created.
27102	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27103
27104	// The customer version of the certificate.
27105	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
27106
27107	// The generation ID of the certificate.
27108	GenerationId *string `locationName:"generationId" type:"string"`
27109
27110	// The date and time the certificate was last modified.
27111	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27112
27113	// The ID of the AWS account that owns the certificate.
27114	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
27115
27116	// The ID of the AWS account of the previous owner of the certificate.
27117	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
27118
27119	// The status of the certificate.
27120	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
27121
27122	// The transfer data.
27123	TransferData *TransferData `locationName:"transferData" type:"structure"`
27124
27125	// When the certificate is valid.
27126	Validity *CertificateValidity `locationName:"validity" type:"structure"`
27127}
27128
27129// String returns the string representation
27130func (s CertificateDescription) String() string {
27131	return awsutil.Prettify(s)
27132}
27133
27134// GoString returns the string representation
27135func (s CertificateDescription) GoString() string {
27136	return s.String()
27137}
27138
27139// SetCaCertificateId sets the CaCertificateId field's value.
27140func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
27141	s.CaCertificateId = &v
27142	return s
27143}
27144
27145// SetCertificateArn sets the CertificateArn field's value.
27146func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
27147	s.CertificateArn = &v
27148	return s
27149}
27150
27151// SetCertificateId sets the CertificateId field's value.
27152func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
27153	s.CertificateId = &v
27154	return s
27155}
27156
27157// SetCertificateMode sets the CertificateMode field's value.
27158func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
27159	s.CertificateMode = &v
27160	return s
27161}
27162
27163// SetCertificatePem sets the CertificatePem field's value.
27164func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
27165	s.CertificatePem = &v
27166	return s
27167}
27168
27169// SetCreationDate sets the CreationDate field's value.
27170func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
27171	s.CreationDate = &v
27172	return s
27173}
27174
27175// SetCustomerVersion sets the CustomerVersion field's value.
27176func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
27177	s.CustomerVersion = &v
27178	return s
27179}
27180
27181// SetGenerationId sets the GenerationId field's value.
27182func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
27183	s.GenerationId = &v
27184	return s
27185}
27186
27187// SetLastModifiedDate sets the LastModifiedDate field's value.
27188func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
27189	s.LastModifiedDate = &v
27190	return s
27191}
27192
27193// SetOwnedBy sets the OwnedBy field's value.
27194func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
27195	s.OwnedBy = &v
27196	return s
27197}
27198
27199// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
27200func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
27201	s.PreviousOwnedBy = &v
27202	return s
27203}
27204
27205// SetStatus sets the Status field's value.
27206func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
27207	s.Status = &v
27208	return s
27209}
27210
27211// SetTransferData sets the TransferData field's value.
27212func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
27213	s.TransferData = v
27214	return s
27215}
27216
27217// SetValidity sets the Validity field's value.
27218func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
27219	s.Validity = v
27220	return s
27221}
27222
27223// The certificate operation is not allowed.
27224type CertificateStateException struct {
27225	_            struct{}                  `type:"structure"`
27226	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27227
27228	// The message for the exception.
27229	Message_ *string `locationName:"message" type:"string"`
27230}
27231
27232// String returns the string representation
27233func (s CertificateStateException) String() string {
27234	return awsutil.Prettify(s)
27235}
27236
27237// GoString returns the string representation
27238func (s CertificateStateException) GoString() string {
27239	return s.String()
27240}
27241
27242func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
27243	return &CertificateStateException{
27244		RespMetadata: v,
27245	}
27246}
27247
27248// Code returns the exception type name.
27249func (s *CertificateStateException) Code() string {
27250	return "CertificateStateException"
27251}
27252
27253// Message returns the exception's message.
27254func (s *CertificateStateException) Message() string {
27255	if s.Message_ != nil {
27256		return *s.Message_
27257	}
27258	return ""
27259}
27260
27261// OrigErr always returns nil, satisfies awserr.Error interface.
27262func (s *CertificateStateException) OrigErr() error {
27263	return nil
27264}
27265
27266func (s *CertificateStateException) Error() string {
27267	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27268}
27269
27270// Status code returns the HTTP status code for the request's response error.
27271func (s *CertificateStateException) StatusCode() int {
27272	return s.RespMetadata.StatusCode
27273}
27274
27275// RequestID returns the service's response RequestID for request.
27276func (s *CertificateStateException) RequestID() string {
27277	return s.RespMetadata.RequestID
27278}
27279
27280// The certificate is invalid.
27281type CertificateValidationException struct {
27282	_            struct{}                  `type:"structure"`
27283	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27284
27285	// Additional information about the exception.
27286	Message_ *string `locationName:"message" type:"string"`
27287}
27288
27289// String returns the string representation
27290func (s CertificateValidationException) String() string {
27291	return awsutil.Prettify(s)
27292}
27293
27294// GoString returns the string representation
27295func (s CertificateValidationException) GoString() string {
27296	return s.String()
27297}
27298
27299func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
27300	return &CertificateValidationException{
27301		RespMetadata: v,
27302	}
27303}
27304
27305// Code returns the exception type name.
27306func (s *CertificateValidationException) Code() string {
27307	return "CertificateValidationException"
27308}
27309
27310// Message returns the exception's message.
27311func (s *CertificateValidationException) Message() string {
27312	if s.Message_ != nil {
27313		return *s.Message_
27314	}
27315	return ""
27316}
27317
27318// OrigErr always returns nil, satisfies awserr.Error interface.
27319func (s *CertificateValidationException) OrigErr() error {
27320	return nil
27321}
27322
27323func (s *CertificateValidationException) Error() string {
27324	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27325}
27326
27327// Status code returns the HTTP status code for the request's response error.
27328func (s *CertificateValidationException) StatusCode() int {
27329	return s.RespMetadata.StatusCode
27330}
27331
27332// RequestID returns the service's response RequestID for request.
27333func (s *CertificateValidationException) RequestID() string {
27334	return s.RespMetadata.RequestID
27335}
27336
27337// When the certificate is valid.
27338type CertificateValidity struct {
27339	_ struct{} `type:"structure"`
27340
27341	// The certificate is not valid after this date.
27342	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
27343
27344	// The certificate is not valid before this date.
27345	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
27346}
27347
27348// String returns the string representation
27349func (s CertificateValidity) String() string {
27350	return awsutil.Prettify(s)
27351}
27352
27353// GoString returns the string representation
27354func (s CertificateValidity) GoString() string {
27355	return s.String()
27356}
27357
27358// SetNotAfter sets the NotAfter field's value.
27359func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
27360	s.NotAfter = &v
27361	return s
27362}
27363
27364// SetNotBefore sets the NotBefore field's value.
27365func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
27366	s.NotBefore = &v
27367	return s
27368}
27369
27370type ClearDefaultAuthorizerInput struct {
27371	_ struct{} `type:"structure"`
27372}
27373
27374// String returns the string representation
27375func (s ClearDefaultAuthorizerInput) String() string {
27376	return awsutil.Prettify(s)
27377}
27378
27379// GoString returns the string representation
27380func (s ClearDefaultAuthorizerInput) GoString() string {
27381	return s.String()
27382}
27383
27384type ClearDefaultAuthorizerOutput struct {
27385	_ struct{} `type:"structure"`
27386}
27387
27388// String returns the string representation
27389func (s ClearDefaultAuthorizerOutput) String() string {
27390	return awsutil.Prettify(s)
27391}
27392
27393// GoString returns the string representation
27394func (s ClearDefaultAuthorizerOutput) GoString() string {
27395	return s.String()
27396}
27397
27398// Describes an action that updates a CloudWatch alarm.
27399type CloudwatchAlarmAction struct {
27400	_ struct{} `type:"structure"`
27401
27402	// The CloudWatch alarm name.
27403	//
27404	// AlarmName is a required field
27405	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
27406
27407	// The IAM role that allows access to the CloudWatch alarm.
27408	//
27409	// RoleArn is a required field
27410	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27411
27412	// The reason for the alarm change.
27413	//
27414	// StateReason is a required field
27415	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
27416
27417	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
27418	//
27419	// StateValue is a required field
27420	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
27421}
27422
27423// String returns the string representation
27424func (s CloudwatchAlarmAction) String() string {
27425	return awsutil.Prettify(s)
27426}
27427
27428// GoString returns the string representation
27429func (s CloudwatchAlarmAction) GoString() string {
27430	return s.String()
27431}
27432
27433// Validate inspects the fields of the type to determine if they are valid.
27434func (s *CloudwatchAlarmAction) Validate() error {
27435	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
27436	if s.AlarmName == nil {
27437		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
27438	}
27439	if s.RoleArn == nil {
27440		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27441	}
27442	if s.StateReason == nil {
27443		invalidParams.Add(request.NewErrParamRequired("StateReason"))
27444	}
27445	if s.StateValue == nil {
27446		invalidParams.Add(request.NewErrParamRequired("StateValue"))
27447	}
27448
27449	if invalidParams.Len() > 0 {
27450		return invalidParams
27451	}
27452	return nil
27453}
27454
27455// SetAlarmName sets the AlarmName field's value.
27456func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
27457	s.AlarmName = &v
27458	return s
27459}
27460
27461// SetRoleArn sets the RoleArn field's value.
27462func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
27463	s.RoleArn = &v
27464	return s
27465}
27466
27467// SetStateReason sets the StateReason field's value.
27468func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
27469	s.StateReason = &v
27470	return s
27471}
27472
27473// SetStateValue sets the StateValue field's value.
27474func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
27475	s.StateValue = &v
27476	return s
27477}
27478
27479// Describes an action that sends data to CloudWatch Logs.
27480type CloudwatchLogsAction struct {
27481	_ struct{} `type:"structure"`
27482
27483	// The CloudWatch log group to which the action sends data.
27484	//
27485	// LogGroupName is a required field
27486	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
27487
27488	// The IAM role that allows access to the CloudWatch log.
27489	//
27490	// RoleArn is a required field
27491	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27492}
27493
27494// String returns the string representation
27495func (s CloudwatchLogsAction) String() string {
27496	return awsutil.Prettify(s)
27497}
27498
27499// GoString returns the string representation
27500func (s CloudwatchLogsAction) GoString() string {
27501	return s.String()
27502}
27503
27504// Validate inspects the fields of the type to determine if they are valid.
27505func (s *CloudwatchLogsAction) Validate() error {
27506	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
27507	if s.LogGroupName == nil {
27508		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
27509	}
27510	if s.RoleArn == nil {
27511		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27512	}
27513
27514	if invalidParams.Len() > 0 {
27515		return invalidParams
27516	}
27517	return nil
27518}
27519
27520// SetLogGroupName sets the LogGroupName field's value.
27521func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
27522	s.LogGroupName = &v
27523	return s
27524}
27525
27526// SetRoleArn sets the RoleArn field's value.
27527func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
27528	s.RoleArn = &v
27529	return s
27530}
27531
27532// Describes an action that captures a CloudWatch metric.
27533type CloudwatchMetricAction struct {
27534	_ struct{} `type:"structure"`
27535
27536	// The CloudWatch metric name.
27537	//
27538	// MetricName is a required field
27539	MetricName *string `locationName:"metricName" type:"string" required:"true"`
27540
27541	// The CloudWatch metric namespace name.
27542	//
27543	// MetricNamespace is a required field
27544	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
27545
27546	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
27547	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
27548
27549	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
27550	// supported by CloudWatch.
27551	//
27552	// MetricUnit is a required field
27553	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
27554
27555	// The CloudWatch metric value.
27556	//
27557	// MetricValue is a required field
27558	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
27559
27560	// The IAM role that allows access to the CloudWatch metric.
27561	//
27562	// RoleArn is a required field
27563	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27564}
27565
27566// String returns the string representation
27567func (s CloudwatchMetricAction) String() string {
27568	return awsutil.Prettify(s)
27569}
27570
27571// GoString returns the string representation
27572func (s CloudwatchMetricAction) GoString() string {
27573	return s.String()
27574}
27575
27576// Validate inspects the fields of the type to determine if they are valid.
27577func (s *CloudwatchMetricAction) Validate() error {
27578	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
27579	if s.MetricName == nil {
27580		invalidParams.Add(request.NewErrParamRequired("MetricName"))
27581	}
27582	if s.MetricNamespace == nil {
27583		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
27584	}
27585	if s.MetricUnit == nil {
27586		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
27587	}
27588	if s.MetricValue == nil {
27589		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
27590	}
27591	if s.RoleArn == nil {
27592		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27593	}
27594
27595	if invalidParams.Len() > 0 {
27596		return invalidParams
27597	}
27598	return nil
27599}
27600
27601// SetMetricName sets the MetricName field's value.
27602func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
27603	s.MetricName = &v
27604	return s
27605}
27606
27607// SetMetricNamespace sets the MetricNamespace field's value.
27608func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
27609	s.MetricNamespace = &v
27610	return s
27611}
27612
27613// SetMetricTimestamp sets the MetricTimestamp field's value.
27614func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
27615	s.MetricTimestamp = &v
27616	return s
27617}
27618
27619// SetMetricUnit sets the MetricUnit field's value.
27620func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
27621	s.MetricUnit = &v
27622	return s
27623}
27624
27625// SetMetricValue sets the MetricValue field's value.
27626func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
27627	s.MetricValue = &v
27628	return s
27629}
27630
27631// SetRoleArn sets the RoleArn field's value.
27632func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
27633	s.RoleArn = &v
27634	return s
27635}
27636
27637// Describes the method to use when code signing a file.
27638type CodeSigning struct {
27639	_ struct{} `type:"structure"`
27640
27641	// The ID of the AWSSignerJob which was created to sign the file.
27642	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
27643
27644	// A custom method for code signing a file.
27645	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
27646
27647	// Describes the code-signing job.
27648	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
27649}
27650
27651// String returns the string representation
27652func (s CodeSigning) String() string {
27653	return awsutil.Prettify(s)
27654}
27655
27656// GoString returns the string representation
27657func (s CodeSigning) GoString() string {
27658	return s.String()
27659}
27660
27661// Validate inspects the fields of the type to determine if they are valid.
27662func (s *CodeSigning) Validate() error {
27663	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
27664	if s.StartSigningJobParameter != nil {
27665		if err := s.StartSigningJobParameter.Validate(); err != nil {
27666			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
27667		}
27668	}
27669
27670	if invalidParams.Len() > 0 {
27671		return invalidParams
27672	}
27673	return nil
27674}
27675
27676// SetAwsSignerJobId sets the AwsSignerJobId field's value.
27677func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
27678	s.AwsSignerJobId = &v
27679	return s
27680}
27681
27682// SetCustomCodeSigning sets the CustomCodeSigning field's value.
27683func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
27684	s.CustomCodeSigning = v
27685	return s
27686}
27687
27688// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
27689func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
27690	s.StartSigningJobParameter = v
27691	return s
27692}
27693
27694// Describes the certificate chain being used when code signing a file.
27695type CodeSigningCertificateChain struct {
27696	_ struct{} `type:"structure"`
27697
27698	// The name of the certificate.
27699	CertificateName *string `locationName:"certificateName" type:"string"`
27700
27701	// A base64 encoded binary representation of the code signing certificate chain.
27702	InlineDocument *string `locationName:"inlineDocument" type:"string"`
27703}
27704
27705// String returns the string representation
27706func (s CodeSigningCertificateChain) String() string {
27707	return awsutil.Prettify(s)
27708}
27709
27710// GoString returns the string representation
27711func (s CodeSigningCertificateChain) GoString() string {
27712	return s.String()
27713}
27714
27715// SetCertificateName sets the CertificateName field's value.
27716func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
27717	s.CertificateName = &v
27718	return s
27719}
27720
27721// SetInlineDocument sets the InlineDocument field's value.
27722func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
27723	s.InlineDocument = &v
27724	return s
27725}
27726
27727// Describes the signature for a file.
27728type CodeSigningSignature struct {
27729	_ struct{} `type:"structure"`
27730
27731	// A base64 encoded binary representation of the code signing signature.
27732	//
27733	// InlineDocument is automatically base64 encoded/decoded by the SDK.
27734	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
27735}
27736
27737// String returns the string representation
27738func (s CodeSigningSignature) String() string {
27739	return awsutil.Prettify(s)
27740}
27741
27742// GoString returns the string representation
27743func (s CodeSigningSignature) GoString() string {
27744	return s.String()
27745}
27746
27747// SetInlineDocument sets the InlineDocument field's value.
27748func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
27749	s.InlineDocument = v
27750	return s
27751}
27752
27753// Configuration.
27754type Configuration struct {
27755	_ struct{} `type:"structure"`
27756
27757	// True to enable the configuration.
27758	Enabled *bool `type:"boolean"`
27759}
27760
27761// String returns the string representation
27762func (s Configuration) String() string {
27763	return awsutil.Prettify(s)
27764}
27765
27766// GoString returns the string representation
27767func (s Configuration) GoString() string {
27768	return s.String()
27769}
27770
27771// SetEnabled sets the Enabled field's value.
27772func (s *Configuration) SetEnabled(v bool) *Configuration {
27773	s.Enabled = &v
27774	return s
27775}
27776
27777type ConfirmTopicRuleDestinationInput struct {
27778	_ struct{} `type:"structure"`
27779
27780	// The token used to confirm ownership or access to the topic rule confirmation
27781	// URL.
27782	//
27783	// ConfirmationToken is a required field
27784	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
27785}
27786
27787// String returns the string representation
27788func (s ConfirmTopicRuleDestinationInput) String() string {
27789	return awsutil.Prettify(s)
27790}
27791
27792// GoString returns the string representation
27793func (s ConfirmTopicRuleDestinationInput) GoString() string {
27794	return s.String()
27795}
27796
27797// Validate inspects the fields of the type to determine if they are valid.
27798func (s *ConfirmTopicRuleDestinationInput) Validate() error {
27799	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
27800	if s.ConfirmationToken == nil {
27801		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
27802	}
27803	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
27804		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
27805	}
27806
27807	if invalidParams.Len() > 0 {
27808		return invalidParams
27809	}
27810	return nil
27811}
27812
27813// SetConfirmationToken sets the ConfirmationToken field's value.
27814func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
27815	s.ConfirmationToken = &v
27816	return s
27817}
27818
27819type ConfirmTopicRuleDestinationOutput struct {
27820	_ struct{} `type:"structure"`
27821}
27822
27823// String returns the string representation
27824func (s ConfirmTopicRuleDestinationOutput) String() string {
27825	return awsutil.Prettify(s)
27826}
27827
27828// GoString returns the string representation
27829func (s ConfirmTopicRuleDestinationOutput) GoString() string {
27830	return s.String()
27831}
27832
27833// A conflicting resource update exception. This exception is thrown when two
27834// pending updates cause a conflict.
27835type ConflictingResourceUpdateException struct {
27836	_            struct{}                  `type:"structure"`
27837	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27838
27839	// The message for the exception.
27840	Message_ *string `locationName:"message" type:"string"`
27841}
27842
27843// String returns the string representation
27844func (s ConflictingResourceUpdateException) String() string {
27845	return awsutil.Prettify(s)
27846}
27847
27848// GoString returns the string representation
27849func (s ConflictingResourceUpdateException) GoString() string {
27850	return s.String()
27851}
27852
27853func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
27854	return &ConflictingResourceUpdateException{
27855		RespMetadata: v,
27856	}
27857}
27858
27859// Code returns the exception type name.
27860func (s *ConflictingResourceUpdateException) Code() string {
27861	return "ConflictingResourceUpdateException"
27862}
27863
27864// Message returns the exception's message.
27865func (s *ConflictingResourceUpdateException) Message() string {
27866	if s.Message_ != nil {
27867		return *s.Message_
27868	}
27869	return ""
27870}
27871
27872// OrigErr always returns nil, satisfies awserr.Error interface.
27873func (s *ConflictingResourceUpdateException) OrigErr() error {
27874	return nil
27875}
27876
27877func (s *ConflictingResourceUpdateException) Error() string {
27878	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27879}
27880
27881// Status code returns the HTTP status code for the request's response error.
27882func (s *ConflictingResourceUpdateException) StatusCode() int {
27883	return s.RespMetadata.StatusCode
27884}
27885
27886// RequestID returns the service's response RequestID for request.
27887func (s *ConflictingResourceUpdateException) RequestID() string {
27888	return s.RespMetadata.RequestID
27889}
27890
27891type CreateAuditSuppressionInput struct {
27892	_ struct{} `type:"structure"`
27893
27894	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
27895	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
27896	// to select which checks are enabled.)
27897	//
27898	// CheckName is a required field
27899	CheckName *string `locationName:"checkName" type:"string" required:"true"`
27900
27901	// The epoch timestamp in seconds at which this suppression expires.
27902	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
27903
27904	// The description of the audit suppression.
27905	Description *string `locationName:"description" type:"string"`
27906
27907	// The epoch timestamp in seconds at which this suppression expires.
27908	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
27909
27910	// Information that identifies the noncompliant resource.
27911	//
27912	// ResourceIdentifier is a required field
27913	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
27914
27915	// Indicates whether a suppression should exist indefinitely or not.
27916	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
27917}
27918
27919// String returns the string representation
27920func (s CreateAuditSuppressionInput) String() string {
27921	return awsutil.Prettify(s)
27922}
27923
27924// GoString returns the string representation
27925func (s CreateAuditSuppressionInput) GoString() string {
27926	return s.String()
27927}
27928
27929// Validate inspects the fields of the type to determine if they are valid.
27930func (s *CreateAuditSuppressionInput) Validate() error {
27931	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
27932	if s.CheckName == nil {
27933		invalidParams.Add(request.NewErrParamRequired("CheckName"))
27934	}
27935	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
27936		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
27937	}
27938	if s.ResourceIdentifier == nil {
27939		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
27940	}
27941	if s.ResourceIdentifier != nil {
27942		if err := s.ResourceIdentifier.Validate(); err != nil {
27943			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
27944		}
27945	}
27946
27947	if invalidParams.Len() > 0 {
27948		return invalidParams
27949	}
27950	return nil
27951}
27952
27953// SetCheckName sets the CheckName field's value.
27954func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
27955	s.CheckName = &v
27956	return s
27957}
27958
27959// SetClientRequestToken sets the ClientRequestToken field's value.
27960func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
27961	s.ClientRequestToken = &v
27962	return s
27963}
27964
27965// SetDescription sets the Description field's value.
27966func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
27967	s.Description = &v
27968	return s
27969}
27970
27971// SetExpirationDate sets the ExpirationDate field's value.
27972func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
27973	s.ExpirationDate = &v
27974	return s
27975}
27976
27977// SetResourceIdentifier sets the ResourceIdentifier field's value.
27978func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
27979	s.ResourceIdentifier = v
27980	return s
27981}
27982
27983// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
27984func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
27985	s.SuppressIndefinitely = &v
27986	return s
27987}
27988
27989type CreateAuditSuppressionOutput struct {
27990	_ struct{} `type:"structure"`
27991}
27992
27993// String returns the string representation
27994func (s CreateAuditSuppressionOutput) String() string {
27995	return awsutil.Prettify(s)
27996}
27997
27998// GoString returns the string representation
27999func (s CreateAuditSuppressionOutput) GoString() string {
28000	return s.String()
28001}
28002
28003type CreateAuthorizerInput struct {
28004	_ struct{} `type:"structure"`
28005
28006	// The ARN of the authorizer's Lambda function.
28007	//
28008	// AuthorizerFunctionArn is a required field
28009	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
28010
28011	// The authorizer name.
28012	//
28013	// AuthorizerName is a required field
28014	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
28015
28016	// Specifies whether AWS IoT validates the token signature in an authorization
28017	// request.
28018	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
28019
28020	// The status of the create authorizer request.
28021	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
28022
28023	// Metadata which can be used to manage the custom authorizer.
28024	//
28025	// For URI Request parameters use format: ...key1=value1&key2=value2...
28026	//
28027	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
28028	//
28029	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
28030	Tags []*Tag `locationName:"tags" type:"list"`
28031
28032	// The name of the token key used to extract the token from the HTTP headers.
28033	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
28034
28035	// The public keys used to verify the digital signature returned by your custom
28036	// authentication service.
28037	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
28038}
28039
28040// String returns the string representation
28041func (s CreateAuthorizerInput) String() string {
28042	return awsutil.Prettify(s)
28043}
28044
28045// GoString returns the string representation
28046func (s CreateAuthorizerInput) GoString() string {
28047	return s.String()
28048}
28049
28050// Validate inspects the fields of the type to determine if they are valid.
28051func (s *CreateAuthorizerInput) Validate() error {
28052	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
28053	if s.AuthorizerFunctionArn == nil {
28054		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
28055	}
28056	if s.AuthorizerName == nil {
28057		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
28058	}
28059	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
28060		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
28061	}
28062	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
28063		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
28064	}
28065	if s.Tags != nil {
28066		for i, v := range s.Tags {
28067			if v == nil {
28068				continue
28069			}
28070			if err := v.Validate(); err != nil {
28071				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28072			}
28073		}
28074	}
28075
28076	if invalidParams.Len() > 0 {
28077		return invalidParams
28078	}
28079	return nil
28080}
28081
28082// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
28083func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
28084	s.AuthorizerFunctionArn = &v
28085	return s
28086}
28087
28088// SetAuthorizerName sets the AuthorizerName field's value.
28089func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
28090	s.AuthorizerName = &v
28091	return s
28092}
28093
28094// SetSigningDisabled sets the SigningDisabled field's value.
28095func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
28096	s.SigningDisabled = &v
28097	return s
28098}
28099
28100// SetStatus sets the Status field's value.
28101func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
28102	s.Status = &v
28103	return s
28104}
28105
28106// SetTags sets the Tags field's value.
28107func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
28108	s.Tags = v
28109	return s
28110}
28111
28112// SetTokenKeyName sets the TokenKeyName field's value.
28113func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
28114	s.TokenKeyName = &v
28115	return s
28116}
28117
28118// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
28119func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
28120	s.TokenSigningPublicKeys = v
28121	return s
28122}
28123
28124type CreateAuthorizerOutput struct {
28125	_ struct{} `type:"structure"`
28126
28127	// The authorizer ARN.
28128	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
28129
28130	// The authorizer's name.
28131	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
28132}
28133
28134// String returns the string representation
28135func (s CreateAuthorizerOutput) String() string {
28136	return awsutil.Prettify(s)
28137}
28138
28139// GoString returns the string representation
28140func (s CreateAuthorizerOutput) GoString() string {
28141	return s.String()
28142}
28143
28144// SetAuthorizerArn sets the AuthorizerArn field's value.
28145func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
28146	s.AuthorizerArn = &v
28147	return s
28148}
28149
28150// SetAuthorizerName sets the AuthorizerName field's value.
28151func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
28152	s.AuthorizerName = &v
28153	return s
28154}
28155
28156type CreateBillingGroupInput struct {
28157	_ struct{} `type:"structure"`
28158
28159	// The name you wish to give to the billing group.
28160	//
28161	// BillingGroupName is a required field
28162	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
28163
28164	// The properties of the billing group.
28165	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
28166
28167	// Metadata which can be used to manage the billing group.
28168	Tags []*Tag `locationName:"tags" type:"list"`
28169}
28170
28171// String returns the string representation
28172func (s CreateBillingGroupInput) String() string {
28173	return awsutil.Prettify(s)
28174}
28175
28176// GoString returns the string representation
28177func (s CreateBillingGroupInput) GoString() string {
28178	return s.String()
28179}
28180
28181// Validate inspects the fields of the type to determine if they are valid.
28182func (s *CreateBillingGroupInput) Validate() error {
28183	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
28184	if s.BillingGroupName == nil {
28185		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
28186	}
28187	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
28188		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
28189	}
28190	if s.Tags != nil {
28191		for i, v := range s.Tags {
28192			if v == nil {
28193				continue
28194			}
28195			if err := v.Validate(); err != nil {
28196				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28197			}
28198		}
28199	}
28200
28201	if invalidParams.Len() > 0 {
28202		return invalidParams
28203	}
28204	return nil
28205}
28206
28207// SetBillingGroupName sets the BillingGroupName field's value.
28208func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
28209	s.BillingGroupName = &v
28210	return s
28211}
28212
28213// SetBillingGroupProperties sets the BillingGroupProperties field's value.
28214func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
28215	s.BillingGroupProperties = v
28216	return s
28217}
28218
28219// SetTags sets the Tags field's value.
28220func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
28221	s.Tags = v
28222	return s
28223}
28224
28225type CreateBillingGroupOutput struct {
28226	_ struct{} `type:"structure"`
28227
28228	// The ARN of the billing group.
28229	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
28230
28231	// The ID of the billing group.
28232	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
28233
28234	// The name you gave to the billing group.
28235	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
28236}
28237
28238// String returns the string representation
28239func (s CreateBillingGroupOutput) String() string {
28240	return awsutil.Prettify(s)
28241}
28242
28243// GoString returns the string representation
28244func (s CreateBillingGroupOutput) GoString() string {
28245	return s.String()
28246}
28247
28248// SetBillingGroupArn sets the BillingGroupArn field's value.
28249func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
28250	s.BillingGroupArn = &v
28251	return s
28252}
28253
28254// SetBillingGroupId sets the BillingGroupId field's value.
28255func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
28256	s.BillingGroupId = &v
28257	return s
28258}
28259
28260// SetBillingGroupName sets the BillingGroupName field's value.
28261func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
28262	s.BillingGroupName = &v
28263	return s
28264}
28265
28266// The input for the CreateCertificateFromCsr operation.
28267type CreateCertificateFromCsrInput struct {
28268	_ struct{} `type:"structure"`
28269
28270	// The certificate signing request (CSR).
28271	//
28272	// CertificateSigningRequest is a required field
28273	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
28274
28275	// Specifies whether the certificate is active.
28276	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
28277}
28278
28279// String returns the string representation
28280func (s CreateCertificateFromCsrInput) String() string {
28281	return awsutil.Prettify(s)
28282}
28283
28284// GoString returns the string representation
28285func (s CreateCertificateFromCsrInput) GoString() string {
28286	return s.String()
28287}
28288
28289// Validate inspects the fields of the type to determine if they are valid.
28290func (s *CreateCertificateFromCsrInput) Validate() error {
28291	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
28292	if s.CertificateSigningRequest == nil {
28293		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
28294	}
28295	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
28296		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
28297	}
28298
28299	if invalidParams.Len() > 0 {
28300		return invalidParams
28301	}
28302	return nil
28303}
28304
28305// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
28306func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
28307	s.CertificateSigningRequest = &v
28308	return s
28309}
28310
28311// SetSetAsActive sets the SetAsActive field's value.
28312func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
28313	s.SetAsActive = &v
28314	return s
28315}
28316
28317// The output from the CreateCertificateFromCsr operation.
28318type CreateCertificateFromCsrOutput struct {
28319	_ struct{} `type:"structure"`
28320
28321	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
28322	// a principal for policy operations.
28323	CertificateArn *string `locationName:"certificateArn" type:"string"`
28324
28325	// The ID of the certificate. Certificate management operations only take a
28326	// certificateId.
28327	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28328
28329	// The certificate data, in PEM format.
28330	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28331}
28332
28333// String returns the string representation
28334func (s CreateCertificateFromCsrOutput) String() string {
28335	return awsutil.Prettify(s)
28336}
28337
28338// GoString returns the string representation
28339func (s CreateCertificateFromCsrOutput) GoString() string {
28340	return s.String()
28341}
28342
28343// SetCertificateArn sets the CertificateArn field's value.
28344func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
28345	s.CertificateArn = &v
28346	return s
28347}
28348
28349// SetCertificateId sets the CertificateId field's value.
28350func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
28351	s.CertificateId = &v
28352	return s
28353}
28354
28355// SetCertificatePem sets the CertificatePem field's value.
28356func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
28357	s.CertificatePem = &v
28358	return s
28359}
28360
28361type CreateCustomMetricInput struct {
28362	_ struct{} `type:"structure"`
28363
28364	// Each custom metric must have a unique client request token. If you try to
28365	// create a new custom metric that already exists with a different token, an
28366	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28367	// a unique client request.
28368	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28369
28370	// Field represents a friendly name in the console for the custom metric; it
28371	// doesn't have to be unique. Don't use this name as the metric identifier in
28372	// the device metric report. Can be updated once defined.
28373	DisplayName *string `locationName:"displayName" type:"string"`
28374
28375	// The name of the custom metric. This will be used in the metric report submitted
28376	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
28377	// defined.
28378	//
28379	// MetricName is a required field
28380	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
28381
28382	// The type of the custom metric. Types include string-list, ip-address-list,
28383	// number-list, and number.
28384	//
28385	// MetricType is a required field
28386	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
28387
28388	// Metadata that can be used to manage the custom metric.
28389	Tags []*Tag `locationName:"tags" type:"list"`
28390}
28391
28392// String returns the string representation
28393func (s CreateCustomMetricInput) String() string {
28394	return awsutil.Prettify(s)
28395}
28396
28397// GoString returns the string representation
28398func (s CreateCustomMetricInput) GoString() string {
28399	return s.String()
28400}
28401
28402// Validate inspects the fields of the type to determine if they are valid.
28403func (s *CreateCustomMetricInput) Validate() error {
28404	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
28405	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28406		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28407	}
28408	if s.MetricName == nil {
28409		invalidParams.Add(request.NewErrParamRequired("MetricName"))
28410	}
28411	if s.MetricName != nil && len(*s.MetricName) < 1 {
28412		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
28413	}
28414	if s.MetricType == nil {
28415		invalidParams.Add(request.NewErrParamRequired("MetricType"))
28416	}
28417	if s.Tags != nil {
28418		for i, v := range s.Tags {
28419			if v == nil {
28420				continue
28421			}
28422			if err := v.Validate(); err != nil {
28423				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28424			}
28425		}
28426	}
28427
28428	if invalidParams.Len() > 0 {
28429		return invalidParams
28430	}
28431	return nil
28432}
28433
28434// SetClientRequestToken sets the ClientRequestToken field's value.
28435func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
28436	s.ClientRequestToken = &v
28437	return s
28438}
28439
28440// SetDisplayName sets the DisplayName field's value.
28441func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
28442	s.DisplayName = &v
28443	return s
28444}
28445
28446// SetMetricName sets the MetricName field's value.
28447func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
28448	s.MetricName = &v
28449	return s
28450}
28451
28452// SetMetricType sets the MetricType field's value.
28453func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
28454	s.MetricType = &v
28455	return s
28456}
28457
28458// SetTags sets the Tags field's value.
28459func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
28460	s.Tags = v
28461	return s
28462}
28463
28464type CreateCustomMetricOutput struct {
28465	_ struct{} `type:"structure"`
28466
28467	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
28468	MetricArn *string `locationName:"metricArn" type:"string"`
28469
28470	// The name of the custom metric to be used in the metric report.
28471	MetricName *string `locationName:"metricName" min:"1" type:"string"`
28472}
28473
28474// String returns the string representation
28475func (s CreateCustomMetricOutput) String() string {
28476	return awsutil.Prettify(s)
28477}
28478
28479// GoString returns the string representation
28480func (s CreateCustomMetricOutput) GoString() string {
28481	return s.String()
28482}
28483
28484// SetMetricArn sets the MetricArn field's value.
28485func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
28486	s.MetricArn = &v
28487	return s
28488}
28489
28490// SetMetricName sets the MetricName field's value.
28491func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
28492	s.MetricName = &v
28493	return s
28494}
28495
28496type CreateDimensionInput struct {
28497	_ struct{} `type:"structure"`
28498
28499	// Each dimension must have a unique client request token. If you try to create
28500	// a new dimension with the same token as a dimension that already exists, an
28501	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28502	// a unique client request.
28503	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28504
28505	// A unique identifier for the dimension. Choose something that describes the
28506	// type and value to make it easy to remember what it does.
28507	//
28508	// Name is a required field
28509	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
28510
28511	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
28512	// dimensions, this is a pattern used to match the MQTT topic (for example,
28513	// "admin/#").
28514	//
28515	// StringValues is a required field
28516	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
28517
28518	// Metadata that can be used to manage the dimension.
28519	Tags []*Tag `locationName:"tags" type:"list"`
28520
28521	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
28522	//
28523	// Type is a required field
28524	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
28525}
28526
28527// String returns the string representation
28528func (s CreateDimensionInput) String() string {
28529	return awsutil.Prettify(s)
28530}
28531
28532// GoString returns the string representation
28533func (s CreateDimensionInput) GoString() string {
28534	return s.String()
28535}
28536
28537// Validate inspects the fields of the type to determine if they are valid.
28538func (s *CreateDimensionInput) Validate() error {
28539	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
28540	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28541		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28542	}
28543	if s.Name == nil {
28544		invalidParams.Add(request.NewErrParamRequired("Name"))
28545	}
28546	if s.Name != nil && len(*s.Name) < 1 {
28547		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
28548	}
28549	if s.StringValues == nil {
28550		invalidParams.Add(request.NewErrParamRequired("StringValues"))
28551	}
28552	if s.StringValues != nil && len(s.StringValues) < 1 {
28553		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
28554	}
28555	if s.Type == nil {
28556		invalidParams.Add(request.NewErrParamRequired("Type"))
28557	}
28558	if s.Tags != nil {
28559		for i, v := range s.Tags {
28560			if v == nil {
28561				continue
28562			}
28563			if err := v.Validate(); err != nil {
28564				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28565			}
28566		}
28567	}
28568
28569	if invalidParams.Len() > 0 {
28570		return invalidParams
28571	}
28572	return nil
28573}
28574
28575// SetClientRequestToken sets the ClientRequestToken field's value.
28576func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
28577	s.ClientRequestToken = &v
28578	return s
28579}
28580
28581// SetName sets the Name field's value.
28582func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
28583	s.Name = &v
28584	return s
28585}
28586
28587// SetStringValues sets the StringValues field's value.
28588func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
28589	s.StringValues = v
28590	return s
28591}
28592
28593// SetTags sets the Tags field's value.
28594func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
28595	s.Tags = v
28596	return s
28597}
28598
28599// SetType sets the Type field's value.
28600func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
28601	s.Type = &v
28602	return s
28603}
28604
28605type CreateDimensionOutput struct {
28606	_ struct{} `type:"structure"`
28607
28608	// The Amazon Resource Name (ARN) of the created dimension.
28609	Arn *string `locationName:"arn" type:"string"`
28610
28611	// A unique identifier for the dimension.
28612	Name *string `locationName:"name" min:"1" type:"string"`
28613}
28614
28615// String returns the string representation
28616func (s CreateDimensionOutput) String() string {
28617	return awsutil.Prettify(s)
28618}
28619
28620// GoString returns the string representation
28621func (s CreateDimensionOutput) GoString() string {
28622	return s.String()
28623}
28624
28625// SetArn sets the Arn field's value.
28626func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
28627	s.Arn = &v
28628	return s
28629}
28630
28631// SetName sets the Name field's value.
28632func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
28633	s.Name = &v
28634	return s
28635}
28636
28637type CreateDomainConfigurationInput struct {
28638	_ struct{} `type:"structure"`
28639
28640	// An object that specifies the authorization service for a domain.
28641	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
28642
28643	// The name of the domain configuration. This value must be unique to a region.
28644	//
28645	// DomainConfigurationName is a required field
28646	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
28647
28648	// The name of the domain.
28649	DomainName *string `locationName:"domainName" min:"1" type:"string"`
28650
28651	// The ARNs of the certificates that AWS IoT passes to the device during the
28652	// TLS handshake. Currently you can specify only one certificate ARN. This value
28653	// is not required for AWS-managed domains.
28654	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
28655
28656	// The type of service delivered by the endpoint.
28657	//
28658	// AWS IoT Core currently supports only the DATA service type.
28659	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
28660
28661	// Metadata which can be used to manage the domain configuration.
28662	//
28663	// For URI Request parameters use format: ...key1=value1&key2=value2...
28664	//
28665	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
28666	//
28667	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
28668	Tags []*Tag `locationName:"tags" type:"list"`
28669
28670	// The certificate used to validate the server certificate and prove domain
28671	// name ownership. This certificate must be signed by a public certificate authority.
28672	// This value is not required for AWS-managed domains.
28673	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
28674}
28675
28676// String returns the string representation
28677func (s CreateDomainConfigurationInput) String() string {
28678	return awsutil.Prettify(s)
28679}
28680
28681// GoString returns the string representation
28682func (s CreateDomainConfigurationInput) GoString() string {
28683	return s.String()
28684}
28685
28686// Validate inspects the fields of the type to determine if they are valid.
28687func (s *CreateDomainConfigurationInput) Validate() error {
28688	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
28689	if s.DomainConfigurationName == nil {
28690		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
28691	}
28692	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
28693		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
28694	}
28695	if s.DomainName != nil && len(*s.DomainName) < 1 {
28696		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
28697	}
28698	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
28699		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
28700	}
28701	if s.AuthorizerConfig != nil {
28702		if err := s.AuthorizerConfig.Validate(); err != nil {
28703			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
28704		}
28705	}
28706	if s.Tags != nil {
28707		for i, v := range s.Tags {
28708			if v == nil {
28709				continue
28710			}
28711			if err := v.Validate(); err != nil {
28712				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28713			}
28714		}
28715	}
28716
28717	if invalidParams.Len() > 0 {
28718		return invalidParams
28719	}
28720	return nil
28721}
28722
28723// SetAuthorizerConfig sets the AuthorizerConfig field's value.
28724func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
28725	s.AuthorizerConfig = v
28726	return s
28727}
28728
28729// SetDomainConfigurationName sets the DomainConfigurationName field's value.
28730func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
28731	s.DomainConfigurationName = &v
28732	return s
28733}
28734
28735// SetDomainName sets the DomainName field's value.
28736func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
28737	s.DomainName = &v
28738	return s
28739}
28740
28741// SetServerCertificateArns sets the ServerCertificateArns field's value.
28742func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
28743	s.ServerCertificateArns = v
28744	return s
28745}
28746
28747// SetServiceType sets the ServiceType field's value.
28748func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
28749	s.ServiceType = &v
28750	return s
28751}
28752
28753// SetTags sets the Tags field's value.
28754func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
28755	s.Tags = v
28756	return s
28757}
28758
28759// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
28760func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
28761	s.ValidationCertificateArn = &v
28762	return s
28763}
28764
28765type CreateDomainConfigurationOutput struct {
28766	_ struct{} `type:"structure"`
28767
28768	// The ARN of the domain configuration.
28769	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
28770
28771	// The name of the domain configuration.
28772	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
28773}
28774
28775// String returns the string representation
28776func (s CreateDomainConfigurationOutput) String() string {
28777	return awsutil.Prettify(s)
28778}
28779
28780// GoString returns the string representation
28781func (s CreateDomainConfigurationOutput) GoString() string {
28782	return s.String()
28783}
28784
28785// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
28786func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
28787	s.DomainConfigurationArn = &v
28788	return s
28789}
28790
28791// SetDomainConfigurationName sets the DomainConfigurationName field's value.
28792func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
28793	s.DomainConfigurationName = &v
28794	return s
28795}
28796
28797type CreateDynamicThingGroupInput struct {
28798	_ struct{} `type:"structure"`
28799
28800	// The dynamic thing group index name.
28801	//
28802	// Currently one index is supported: "AWS_Things".
28803	IndexName *string `locationName:"indexName" min:"1" type:"string"`
28804
28805	// The dynamic thing group search query string.
28806	//
28807	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
28808	// for information about query string syntax.
28809	//
28810	// QueryString is a required field
28811	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
28812
28813	// The dynamic thing group query version.
28814	//
28815	// Currently one query version is supported: "2017-09-30". If not specified,
28816	// the query version defaults to this value.
28817	QueryVersion *string `locationName:"queryVersion" type:"string"`
28818
28819	// Metadata which can be used to manage the dynamic thing group.
28820	Tags []*Tag `locationName:"tags" type:"list"`
28821
28822	// The dynamic thing group name to create.
28823	//
28824	// ThingGroupName is a required field
28825	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
28826
28827	// The dynamic thing group properties.
28828	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
28829}
28830
28831// String returns the string representation
28832func (s CreateDynamicThingGroupInput) String() string {
28833	return awsutil.Prettify(s)
28834}
28835
28836// GoString returns the string representation
28837func (s CreateDynamicThingGroupInput) GoString() string {
28838	return s.String()
28839}
28840
28841// Validate inspects the fields of the type to determine if they are valid.
28842func (s *CreateDynamicThingGroupInput) Validate() error {
28843	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
28844	if s.IndexName != nil && len(*s.IndexName) < 1 {
28845		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
28846	}
28847	if s.QueryString == nil {
28848		invalidParams.Add(request.NewErrParamRequired("QueryString"))
28849	}
28850	if s.QueryString != nil && len(*s.QueryString) < 1 {
28851		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
28852	}
28853	if s.ThingGroupName == nil {
28854		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
28855	}
28856	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
28857		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
28858	}
28859	if s.Tags != nil {
28860		for i, v := range s.Tags {
28861			if v == nil {
28862				continue
28863			}
28864			if err := v.Validate(); err != nil {
28865				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28866			}
28867		}
28868	}
28869
28870	if invalidParams.Len() > 0 {
28871		return invalidParams
28872	}
28873	return nil
28874}
28875
28876// SetIndexName sets the IndexName field's value.
28877func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
28878	s.IndexName = &v
28879	return s
28880}
28881
28882// SetQueryString sets the QueryString field's value.
28883func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
28884	s.QueryString = &v
28885	return s
28886}
28887
28888// SetQueryVersion sets the QueryVersion field's value.
28889func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
28890	s.QueryVersion = &v
28891	return s
28892}
28893
28894// SetTags sets the Tags field's value.
28895func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
28896	s.Tags = v
28897	return s
28898}
28899
28900// SetThingGroupName sets the ThingGroupName field's value.
28901func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
28902	s.ThingGroupName = &v
28903	return s
28904}
28905
28906// SetThingGroupProperties sets the ThingGroupProperties field's value.
28907func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
28908	s.ThingGroupProperties = v
28909	return s
28910}
28911
28912type CreateDynamicThingGroupOutput struct {
28913	_ struct{} `type:"structure"`
28914
28915	// The dynamic thing group index name.
28916	IndexName *string `locationName:"indexName" min:"1" type:"string"`
28917
28918	// The dynamic thing group search query string.
28919	QueryString *string `locationName:"queryString" min:"1" type:"string"`
28920
28921	// The dynamic thing group query version.
28922	QueryVersion *string `locationName:"queryVersion" type:"string"`
28923
28924	// The dynamic thing group ARN.
28925	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
28926
28927	// The dynamic thing group ID.
28928	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
28929
28930	// The dynamic thing group name.
28931	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
28932}
28933
28934// String returns the string representation
28935func (s CreateDynamicThingGroupOutput) String() string {
28936	return awsutil.Prettify(s)
28937}
28938
28939// GoString returns the string representation
28940func (s CreateDynamicThingGroupOutput) GoString() string {
28941	return s.String()
28942}
28943
28944// SetIndexName sets the IndexName field's value.
28945func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
28946	s.IndexName = &v
28947	return s
28948}
28949
28950// SetQueryString sets the QueryString field's value.
28951func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
28952	s.QueryString = &v
28953	return s
28954}
28955
28956// SetQueryVersion sets the QueryVersion field's value.
28957func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
28958	s.QueryVersion = &v
28959	return s
28960}
28961
28962// SetThingGroupArn sets the ThingGroupArn field's value.
28963func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
28964	s.ThingGroupArn = &v
28965	return s
28966}
28967
28968// SetThingGroupId sets the ThingGroupId field's value.
28969func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
28970	s.ThingGroupId = &v
28971	return s
28972}
28973
28974// SetThingGroupName sets the ThingGroupName field's value.
28975func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
28976	s.ThingGroupName = &v
28977	return s
28978}
28979
28980type CreateJobInput struct {
28981	_ struct{} `type:"structure"`
28982
28983	// Allows you to create criteria to abort a job.
28984	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
28985
28986	// A short text description of the job.
28987	Description *string `locationName:"description" type:"string"`
28988
28989	// The job document.
28990	//
28991	// If the job document resides in an S3 bucket, you must use a placeholder link
28992	// when specifying the document.
28993	//
28994	// The placeholder link is of the following form:
28995	//
28996	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
28997	//
28998	// where bucket is your bucket name and key is the object in the bucket to which
28999	// you are linking.
29000	Document *string `locationName:"document" type:"string"`
29001
29002	// An S3 link to the job document.
29003	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29004
29005	// Allows you to create a staged rollout of the job.
29006	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
29007
29008	// A job identifier which must be unique for your AWS account. We recommend
29009	// using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.
29010	//
29011	// JobId is a required field
29012	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29013
29014	// The namespace used to indicate that a job is a customer-managed job.
29015	//
29016	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
29017	// to MQTT topics that contain the value in the following format.
29018	//
29019	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
29020	//
29021	// The namespaceId feature is in public preview.
29022	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
29023
29024	// Configuration information for pre-signed S3 URLs.
29025	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
29026
29027	// Metadata which can be used to manage the job.
29028	Tags []*Tag `locationName:"tags" type:"list"`
29029
29030	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
29031	// after all those things specified as targets have completed the job (SNAPSHOT).
29032	// If continuous, the job may also be run on a thing when a change is detected
29033	// in a target. For example, a job will run on a thing when the thing is added
29034	// to a target group, even after the job was completed by all things originally
29035	// in the group.
29036	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
29037
29038	// A list of things and thing groups to which the job should be sent.
29039	//
29040	// Targets is a required field
29041	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
29042
29043	// Specifies the amount of time each device has to finish its execution of the
29044	// job. The timer is started when the job execution status is set to IN_PROGRESS.
29045	// If the job execution status is not set to another terminal state before the
29046	// time expires, it will be automatically set to TIMED_OUT.
29047	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
29048}
29049
29050// String returns the string representation
29051func (s CreateJobInput) String() string {
29052	return awsutil.Prettify(s)
29053}
29054
29055// GoString returns the string representation
29056func (s CreateJobInput) GoString() string {
29057	return s.String()
29058}
29059
29060// Validate inspects the fields of the type to determine if they are valid.
29061func (s *CreateJobInput) Validate() error {
29062	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
29063	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
29064		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
29065	}
29066	if s.JobId == nil {
29067		invalidParams.Add(request.NewErrParamRequired("JobId"))
29068	}
29069	if s.JobId != nil && len(*s.JobId) < 1 {
29070		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29071	}
29072	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
29073		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
29074	}
29075	if s.Targets == nil {
29076		invalidParams.Add(request.NewErrParamRequired("Targets"))
29077	}
29078	if s.Targets != nil && len(s.Targets) < 1 {
29079		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
29080	}
29081	if s.AbortConfig != nil {
29082		if err := s.AbortConfig.Validate(); err != nil {
29083			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
29084		}
29085	}
29086	if s.JobExecutionsRolloutConfig != nil {
29087		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
29088			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29089		}
29090	}
29091	if s.PresignedUrlConfig != nil {
29092		if err := s.PresignedUrlConfig.Validate(); err != nil {
29093			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
29094		}
29095	}
29096	if s.Tags != nil {
29097		for i, v := range s.Tags {
29098			if v == nil {
29099				continue
29100			}
29101			if err := v.Validate(); err != nil {
29102				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29103			}
29104		}
29105	}
29106
29107	if invalidParams.Len() > 0 {
29108		return invalidParams
29109	}
29110	return nil
29111}
29112
29113// SetAbortConfig sets the AbortConfig field's value.
29114func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
29115	s.AbortConfig = v
29116	return s
29117}
29118
29119// SetDescription sets the Description field's value.
29120func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
29121	s.Description = &v
29122	return s
29123}
29124
29125// SetDocument sets the Document field's value.
29126func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
29127	s.Document = &v
29128	return s
29129}
29130
29131// SetDocumentSource sets the DocumentSource field's value.
29132func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
29133	s.DocumentSource = &v
29134	return s
29135}
29136
29137// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
29138func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
29139	s.JobExecutionsRolloutConfig = v
29140	return s
29141}
29142
29143// SetJobId sets the JobId field's value.
29144func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
29145	s.JobId = &v
29146	return s
29147}
29148
29149// SetNamespaceId sets the NamespaceId field's value.
29150func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
29151	s.NamespaceId = &v
29152	return s
29153}
29154
29155// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
29156func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
29157	s.PresignedUrlConfig = v
29158	return s
29159}
29160
29161// SetTags sets the Tags field's value.
29162func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
29163	s.Tags = v
29164	return s
29165}
29166
29167// SetTargetSelection sets the TargetSelection field's value.
29168func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
29169	s.TargetSelection = &v
29170	return s
29171}
29172
29173// SetTargets sets the Targets field's value.
29174func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
29175	s.Targets = v
29176	return s
29177}
29178
29179// SetTimeoutConfig sets the TimeoutConfig field's value.
29180func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
29181	s.TimeoutConfig = v
29182	return s
29183}
29184
29185type CreateJobOutput struct {
29186	_ struct{} `type:"structure"`
29187
29188	// The job description.
29189	Description *string `locationName:"description" type:"string"`
29190
29191	// The job ARN.
29192	JobArn *string `locationName:"jobArn" type:"string"`
29193
29194	// The unique identifier you assigned to this job.
29195	JobId *string `locationName:"jobId" min:"1" type:"string"`
29196}
29197
29198// String returns the string representation
29199func (s CreateJobOutput) String() string {
29200	return awsutil.Prettify(s)
29201}
29202
29203// GoString returns the string representation
29204func (s CreateJobOutput) GoString() string {
29205	return s.String()
29206}
29207
29208// SetDescription sets the Description field's value.
29209func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
29210	s.Description = &v
29211	return s
29212}
29213
29214// SetJobArn sets the JobArn field's value.
29215func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
29216	s.JobArn = &v
29217	return s
29218}
29219
29220// SetJobId sets the JobId field's value.
29221func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
29222	s.JobId = &v
29223	return s
29224}
29225
29226// The input for the CreateKeysAndCertificate operation.
29227type CreateKeysAndCertificateInput struct {
29228	_ struct{} `type:"structure"`
29229
29230	// Specifies whether the certificate is active.
29231	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
29232}
29233
29234// String returns the string representation
29235func (s CreateKeysAndCertificateInput) String() string {
29236	return awsutil.Prettify(s)
29237}
29238
29239// GoString returns the string representation
29240func (s CreateKeysAndCertificateInput) GoString() string {
29241	return s.String()
29242}
29243
29244// SetSetAsActive sets the SetAsActive field's value.
29245func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
29246	s.SetAsActive = &v
29247	return s
29248}
29249
29250// The output of the CreateKeysAndCertificate operation.
29251type CreateKeysAndCertificateOutput struct {
29252	_ struct{} `type:"structure"`
29253
29254	// The ARN of the certificate.
29255	CertificateArn *string `locationName:"certificateArn" type:"string"`
29256
29257	// The ID of the certificate. AWS IoT issues a default subject name for the
29258	// certificate (for example, AWS IoT Certificate).
29259	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
29260
29261	// The certificate data, in PEM format.
29262	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
29263
29264	// The generated key pair.
29265	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
29266}
29267
29268// String returns the string representation
29269func (s CreateKeysAndCertificateOutput) String() string {
29270	return awsutil.Prettify(s)
29271}
29272
29273// GoString returns the string representation
29274func (s CreateKeysAndCertificateOutput) GoString() string {
29275	return s.String()
29276}
29277
29278// SetCertificateArn sets the CertificateArn field's value.
29279func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
29280	s.CertificateArn = &v
29281	return s
29282}
29283
29284// SetCertificateId sets the CertificateId field's value.
29285func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
29286	s.CertificateId = &v
29287	return s
29288}
29289
29290// SetCertificatePem sets the CertificatePem field's value.
29291func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
29292	s.CertificatePem = &v
29293	return s
29294}
29295
29296// SetKeyPair sets the KeyPair field's value.
29297func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
29298	s.KeyPair = v
29299	return s
29300}
29301
29302type CreateMitigationActionInput struct {
29303	_ struct{} `type:"structure"`
29304
29305	// A friendly name for the action. Choose a friendly name that accurately describes
29306	// the action (for example, EnableLoggingAction).
29307	//
29308	// ActionName is a required field
29309	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
29310
29311	// Defines the type of action and the parameters for that action.
29312	//
29313	// ActionParams is a required field
29314	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
29315
29316	// The ARN of the IAM role that is used to apply the mitigation action.
29317	//
29318	// RoleArn is a required field
29319	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
29320
29321	// Metadata that can be used to manage the mitigation action.
29322	Tags []*Tag `locationName:"tags" type:"list"`
29323}
29324
29325// String returns the string representation
29326func (s CreateMitigationActionInput) String() string {
29327	return awsutil.Prettify(s)
29328}
29329
29330// GoString returns the string representation
29331func (s CreateMitigationActionInput) GoString() string {
29332	return s.String()
29333}
29334
29335// Validate inspects the fields of the type to determine if they are valid.
29336func (s *CreateMitigationActionInput) Validate() error {
29337	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
29338	if s.ActionName == nil {
29339		invalidParams.Add(request.NewErrParamRequired("ActionName"))
29340	}
29341	if s.ActionName != nil && len(*s.ActionName) < 1 {
29342		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
29343	}
29344	if s.ActionParams == nil {
29345		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
29346	}
29347	if s.RoleArn == nil {
29348		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29349	}
29350	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
29351		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
29352	}
29353	if s.ActionParams != nil {
29354		if err := s.ActionParams.Validate(); err != nil {
29355			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
29356		}
29357	}
29358	if s.Tags != nil {
29359		for i, v := range s.Tags {
29360			if v == nil {
29361				continue
29362			}
29363			if err := v.Validate(); err != nil {
29364				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29365			}
29366		}
29367	}
29368
29369	if invalidParams.Len() > 0 {
29370		return invalidParams
29371	}
29372	return nil
29373}
29374
29375// SetActionName sets the ActionName field's value.
29376func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
29377	s.ActionName = &v
29378	return s
29379}
29380
29381// SetActionParams sets the ActionParams field's value.
29382func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
29383	s.ActionParams = v
29384	return s
29385}
29386
29387// SetRoleArn sets the RoleArn field's value.
29388func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
29389	s.RoleArn = &v
29390	return s
29391}
29392
29393// SetTags sets the Tags field's value.
29394func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
29395	s.Tags = v
29396	return s
29397}
29398
29399type CreateMitigationActionOutput struct {
29400	_ struct{} `type:"structure"`
29401
29402	// The ARN for the new mitigation action.
29403	ActionArn *string `locationName:"actionArn" type:"string"`
29404
29405	// A unique identifier for the new mitigation action.
29406	ActionId *string `locationName:"actionId" type:"string"`
29407}
29408
29409// String returns the string representation
29410func (s CreateMitigationActionOutput) String() string {
29411	return awsutil.Prettify(s)
29412}
29413
29414// GoString returns the string representation
29415func (s CreateMitigationActionOutput) GoString() string {
29416	return s.String()
29417}
29418
29419// SetActionArn sets the ActionArn field's value.
29420func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
29421	s.ActionArn = &v
29422	return s
29423}
29424
29425// SetActionId sets the ActionId field's value.
29426func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
29427	s.ActionId = &v
29428	return s
29429}
29430
29431type CreateOTAUpdateInput struct {
29432	_ struct{} `type:"structure"`
29433
29434	// A list of additional OTA update parameters which are name-value pairs.
29435	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
29436
29437	// The criteria that determine when and how a job abort takes place.
29438	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
29439
29440	// Configuration for the rollout of OTA updates.
29441	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
29442
29443	// Configuration information for pre-signed URLs.
29444	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
29445
29446	// Specifies the amount of time each device has to finish its execution of the
29447	// job. A timer is started when the job execution status is set to IN_PROGRESS.
29448	// If the job execution status is not set to another terminal state before the
29449	// timer expires, it will be automatically set to TIMED_OUT.
29450	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
29451
29452	// The description of the OTA update.
29453	Description *string `locationName:"description" type:"string"`
29454
29455	// The files to be streamed by the OTA update.
29456	//
29457	// Files is a required field
29458	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
29459
29460	// The ID of the OTA update to be created.
29461	//
29462	// OtaUpdateId is a required field
29463	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
29464
29465	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
29466	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
29467	// can choose the protocol.
29468	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
29469
29470	// The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and
29471	// AWS Code Signing resources to create an OTA update job.
29472	//
29473	// RoleArn is a required field
29474	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
29475
29476	// Metadata which can be used to manage updates.
29477	Tags []*Tag `locationName:"tags" type:"list"`
29478
29479	// Specifies whether the update will continue to run (CONTINUOUS), or will be
29480	// complete after all the things specified as targets have completed the update
29481	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
29482	// is detected in a target. For example, an update will run on a thing when
29483	// the thing is added to a target group, even after the update was completed
29484	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
29485	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
29486
29487	// The devices targeted to receive OTA updates.
29488	//
29489	// Targets is a required field
29490	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
29491}
29492
29493// String returns the string representation
29494func (s CreateOTAUpdateInput) String() string {
29495	return awsutil.Prettify(s)
29496}
29497
29498// GoString returns the string representation
29499func (s CreateOTAUpdateInput) GoString() string {
29500	return s.String()
29501}
29502
29503// Validate inspects the fields of the type to determine if they are valid.
29504func (s *CreateOTAUpdateInput) Validate() error {
29505	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
29506	if s.Files == nil {
29507		invalidParams.Add(request.NewErrParamRequired("Files"))
29508	}
29509	if s.Files != nil && len(s.Files) < 1 {
29510		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
29511	}
29512	if s.OtaUpdateId == nil {
29513		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
29514	}
29515	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
29516		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
29517	}
29518	if s.Protocols != nil && len(s.Protocols) < 1 {
29519		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
29520	}
29521	if s.RoleArn == nil {
29522		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29523	}
29524	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
29525		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
29526	}
29527	if s.Targets == nil {
29528		invalidParams.Add(request.NewErrParamRequired("Targets"))
29529	}
29530	if s.Targets != nil && len(s.Targets) < 1 {
29531		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
29532	}
29533	if s.AwsJobAbortConfig != nil {
29534		if err := s.AwsJobAbortConfig.Validate(); err != nil {
29535			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
29536		}
29537	}
29538	if s.AwsJobExecutionsRolloutConfig != nil {
29539		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
29540			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29541		}
29542	}
29543	if s.Files != nil {
29544		for i, v := range s.Files {
29545			if v == nil {
29546				continue
29547			}
29548			if err := v.Validate(); err != nil {
29549				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
29550			}
29551		}
29552	}
29553	if s.Tags != nil {
29554		for i, v := range s.Tags {
29555			if v == nil {
29556				continue
29557			}
29558			if err := v.Validate(); err != nil {
29559				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29560			}
29561		}
29562	}
29563
29564	if invalidParams.Len() > 0 {
29565		return invalidParams
29566	}
29567	return nil
29568}
29569
29570// SetAdditionalParameters sets the AdditionalParameters field's value.
29571func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
29572	s.AdditionalParameters = v
29573	return s
29574}
29575
29576// SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
29577func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
29578	s.AwsJobAbortConfig = v
29579	return s
29580}
29581
29582// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
29583func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
29584	s.AwsJobExecutionsRolloutConfig = v
29585	return s
29586}
29587
29588// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
29589func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
29590	s.AwsJobPresignedUrlConfig = v
29591	return s
29592}
29593
29594// SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
29595func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
29596	s.AwsJobTimeoutConfig = v
29597	return s
29598}
29599
29600// SetDescription sets the Description field's value.
29601func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
29602	s.Description = &v
29603	return s
29604}
29605
29606// SetFiles sets the Files field's value.
29607func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
29608	s.Files = v
29609	return s
29610}
29611
29612// SetOtaUpdateId sets the OtaUpdateId field's value.
29613func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
29614	s.OtaUpdateId = &v
29615	return s
29616}
29617
29618// SetProtocols sets the Protocols field's value.
29619func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
29620	s.Protocols = v
29621	return s
29622}
29623
29624// SetRoleArn sets the RoleArn field's value.
29625func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
29626	s.RoleArn = &v
29627	return s
29628}
29629
29630// SetTags sets the Tags field's value.
29631func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
29632	s.Tags = v
29633	return s
29634}
29635
29636// SetTargetSelection sets the TargetSelection field's value.
29637func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
29638	s.TargetSelection = &v
29639	return s
29640}
29641
29642// SetTargets sets the Targets field's value.
29643func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
29644	s.Targets = v
29645	return s
29646}
29647
29648type CreateOTAUpdateOutput struct {
29649	_ struct{} `type:"structure"`
29650
29651	// The AWS IoT job ARN associated with the OTA update.
29652	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
29653
29654	// The AWS IoT job ID associated with the OTA update.
29655	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
29656
29657	// The OTA update ARN.
29658	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
29659
29660	// The OTA update ID.
29661	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
29662
29663	// The OTA update status.
29664	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
29665}
29666
29667// String returns the string representation
29668func (s CreateOTAUpdateOutput) String() string {
29669	return awsutil.Prettify(s)
29670}
29671
29672// GoString returns the string representation
29673func (s CreateOTAUpdateOutput) GoString() string {
29674	return s.String()
29675}
29676
29677// SetAwsIotJobArn sets the AwsIotJobArn field's value.
29678func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
29679	s.AwsIotJobArn = &v
29680	return s
29681}
29682
29683// SetAwsIotJobId sets the AwsIotJobId field's value.
29684func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
29685	s.AwsIotJobId = &v
29686	return s
29687}
29688
29689// SetOtaUpdateArn sets the OtaUpdateArn field's value.
29690func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
29691	s.OtaUpdateArn = &v
29692	return s
29693}
29694
29695// SetOtaUpdateId sets the OtaUpdateId field's value.
29696func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
29697	s.OtaUpdateId = &v
29698	return s
29699}
29700
29701// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
29702func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
29703	s.OtaUpdateStatus = &v
29704	return s
29705}
29706
29707// The input for the CreatePolicy operation.
29708type CreatePolicyInput struct {
29709	_ struct{} `type:"structure"`
29710
29711	// The JSON document that describes the policy. policyDocument must have a minimum
29712	// length of 1, with a maximum length of 2048, excluding whitespace.
29713	//
29714	// PolicyDocument is a required field
29715	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
29716
29717	// The policy name.
29718	//
29719	// PolicyName is a required field
29720	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
29721
29722	// Metadata which can be used to manage the policy.
29723	//
29724	// For URI Request parameters use format: ...key1=value1&key2=value2...
29725	//
29726	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
29727	//
29728	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
29729	Tags []*Tag `locationName:"tags" type:"list"`
29730}
29731
29732// String returns the string representation
29733func (s CreatePolicyInput) String() string {
29734	return awsutil.Prettify(s)
29735}
29736
29737// GoString returns the string representation
29738func (s CreatePolicyInput) GoString() string {
29739	return s.String()
29740}
29741
29742// Validate inspects the fields of the type to determine if they are valid.
29743func (s *CreatePolicyInput) Validate() error {
29744	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
29745	if s.PolicyDocument == nil {
29746		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
29747	}
29748	if s.PolicyName == nil {
29749		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
29750	}
29751	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
29752		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
29753	}
29754	if s.Tags != nil {
29755		for i, v := range s.Tags {
29756			if v == nil {
29757				continue
29758			}
29759			if err := v.Validate(); err != nil {
29760				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29761			}
29762		}
29763	}
29764
29765	if invalidParams.Len() > 0 {
29766		return invalidParams
29767	}
29768	return nil
29769}
29770
29771// SetPolicyDocument sets the PolicyDocument field's value.
29772func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
29773	s.PolicyDocument = &v
29774	return s
29775}
29776
29777// SetPolicyName sets the PolicyName field's value.
29778func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
29779	s.PolicyName = &v
29780	return s
29781}
29782
29783// SetTags sets the Tags field's value.
29784func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
29785	s.Tags = v
29786	return s
29787}
29788
29789// The output from the CreatePolicy operation.
29790type CreatePolicyOutput struct {
29791	_ struct{} `type:"structure"`
29792
29793	// The policy ARN.
29794	PolicyArn *string `locationName:"policyArn" type:"string"`
29795
29796	// The JSON document that describes the policy.
29797	PolicyDocument *string `locationName:"policyDocument" type:"string"`
29798
29799	// The policy name.
29800	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
29801
29802	// The policy version ID.
29803	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
29804}
29805
29806// String returns the string representation
29807func (s CreatePolicyOutput) String() string {
29808	return awsutil.Prettify(s)
29809}
29810
29811// GoString returns the string representation
29812func (s CreatePolicyOutput) GoString() string {
29813	return s.String()
29814}
29815
29816// SetPolicyArn sets the PolicyArn field's value.
29817func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
29818	s.PolicyArn = &v
29819	return s
29820}
29821
29822// SetPolicyDocument sets the PolicyDocument field's value.
29823func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
29824	s.PolicyDocument = &v
29825	return s
29826}
29827
29828// SetPolicyName sets the PolicyName field's value.
29829func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
29830	s.PolicyName = &v
29831	return s
29832}
29833
29834// SetPolicyVersionId sets the PolicyVersionId field's value.
29835func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
29836	s.PolicyVersionId = &v
29837	return s
29838}
29839
29840// The input for the CreatePolicyVersion operation.
29841type CreatePolicyVersionInput struct {
29842	_ struct{} `type:"structure"`
29843
29844	// The JSON document that describes the policy. Minimum length of 1. Maximum
29845	// length of 2048, excluding whitespace.
29846	//
29847	// PolicyDocument is a required field
29848	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
29849
29850	// The policy name.
29851	//
29852	// PolicyName is a required field
29853	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
29854
29855	// Specifies whether the policy version is set as the default. When this parameter
29856	// is true, the new policy version becomes the operative version (that is, the
29857	// version that is in effect for the certificates to which the policy is attached).
29858	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
29859}
29860
29861// String returns the string representation
29862func (s CreatePolicyVersionInput) String() string {
29863	return awsutil.Prettify(s)
29864}
29865
29866// GoString returns the string representation
29867func (s CreatePolicyVersionInput) GoString() string {
29868	return s.String()
29869}
29870
29871// Validate inspects the fields of the type to determine if they are valid.
29872func (s *CreatePolicyVersionInput) Validate() error {
29873	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
29874	if s.PolicyDocument == nil {
29875		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
29876	}
29877	if s.PolicyName == nil {
29878		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
29879	}
29880	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
29881		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
29882	}
29883
29884	if invalidParams.Len() > 0 {
29885		return invalidParams
29886	}
29887	return nil
29888}
29889
29890// SetPolicyDocument sets the PolicyDocument field's value.
29891func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
29892	s.PolicyDocument = &v
29893	return s
29894}
29895
29896// SetPolicyName sets the PolicyName field's value.
29897func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
29898	s.PolicyName = &v
29899	return s
29900}
29901
29902// SetSetAsDefault sets the SetAsDefault field's value.
29903func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
29904	s.SetAsDefault = &v
29905	return s
29906}
29907
29908// The output of the CreatePolicyVersion operation.
29909type CreatePolicyVersionOutput struct {
29910	_ struct{} `type:"structure"`
29911
29912	// Specifies whether the policy version is the default.
29913	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
29914
29915	// The policy ARN.
29916	PolicyArn *string `locationName:"policyArn" type:"string"`
29917
29918	// The JSON document that describes the policy.
29919	PolicyDocument *string `locationName:"policyDocument" type:"string"`
29920
29921	// The policy version ID.
29922	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
29923}
29924
29925// String returns the string representation
29926func (s CreatePolicyVersionOutput) String() string {
29927	return awsutil.Prettify(s)
29928}
29929
29930// GoString returns the string representation
29931func (s CreatePolicyVersionOutput) GoString() string {
29932	return s.String()
29933}
29934
29935// SetIsDefaultVersion sets the IsDefaultVersion field's value.
29936func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
29937	s.IsDefaultVersion = &v
29938	return s
29939}
29940
29941// SetPolicyArn sets the PolicyArn field's value.
29942func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
29943	s.PolicyArn = &v
29944	return s
29945}
29946
29947// SetPolicyDocument sets the PolicyDocument field's value.
29948func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
29949	s.PolicyDocument = &v
29950	return s
29951}
29952
29953// SetPolicyVersionId sets the PolicyVersionId field's value.
29954func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
29955	s.PolicyVersionId = &v
29956	return s
29957}
29958
29959type CreateProvisioningClaimInput struct {
29960	_ struct{} `type:"structure"`
29961
29962	// The name of the provisioning template to use.
29963	//
29964	// TemplateName is a required field
29965	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
29966}
29967
29968// String returns the string representation
29969func (s CreateProvisioningClaimInput) String() string {
29970	return awsutil.Prettify(s)
29971}
29972
29973// GoString returns the string representation
29974func (s CreateProvisioningClaimInput) GoString() string {
29975	return s.String()
29976}
29977
29978// Validate inspects the fields of the type to determine if they are valid.
29979func (s *CreateProvisioningClaimInput) Validate() error {
29980	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
29981	if s.TemplateName == nil {
29982		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
29983	}
29984	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
29985		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
29986	}
29987
29988	if invalidParams.Len() > 0 {
29989		return invalidParams
29990	}
29991	return nil
29992}
29993
29994// SetTemplateName sets the TemplateName field's value.
29995func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
29996	s.TemplateName = &v
29997	return s
29998}
29999
30000type CreateProvisioningClaimOutput struct {
30001	_ struct{} `type:"structure"`
30002
30003	// The ID of the certificate.
30004	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
30005
30006	// The provisioning claim certificate.
30007	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
30008
30009	// The provisioning claim expiration time.
30010	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
30011
30012	// The provisioning claim key pair.
30013	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
30014}
30015
30016// String returns the string representation
30017func (s CreateProvisioningClaimOutput) String() string {
30018	return awsutil.Prettify(s)
30019}
30020
30021// GoString returns the string representation
30022func (s CreateProvisioningClaimOutput) GoString() string {
30023	return s.String()
30024}
30025
30026// SetCertificateId sets the CertificateId field's value.
30027func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
30028	s.CertificateId = &v
30029	return s
30030}
30031
30032// SetCertificatePem sets the CertificatePem field's value.
30033func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
30034	s.CertificatePem = &v
30035	return s
30036}
30037
30038// SetExpiration sets the Expiration field's value.
30039func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
30040	s.Expiration = &v
30041	return s
30042}
30043
30044// SetKeyPair sets the KeyPair field's value.
30045func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
30046	s.KeyPair = v
30047	return s
30048}
30049
30050type CreateProvisioningTemplateInput struct {
30051	_ struct{} `type:"structure"`
30052
30053	// The description of the fleet provisioning template.
30054	Description *string `locationName:"description" type:"string"`
30055
30056	// True to enable the fleet provisioning template, otherwise false.
30057	Enabled *bool `locationName:"enabled" type:"boolean"`
30058
30059	// Creates a pre-provisioning hook template.
30060	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
30061
30062	// The role ARN for the role associated with the fleet provisioning template.
30063	// This IoT role grants permission to provision a device.
30064	//
30065	// ProvisioningRoleArn is a required field
30066	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
30067
30068	// Metadata which can be used to manage the fleet provisioning template.
30069	//
30070	// For URI Request parameters use format: ...key1=value1&key2=value2...
30071	//
30072	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30073	//
30074	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30075	Tags []*Tag `locationName:"tags" type:"list"`
30076
30077	// The JSON formatted contents of the fleet provisioning template.
30078	//
30079	// TemplateBody is a required field
30080	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30081
30082	// The name of the fleet provisioning template.
30083	//
30084	// TemplateName is a required field
30085	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
30086}
30087
30088// String returns the string representation
30089func (s CreateProvisioningTemplateInput) String() string {
30090	return awsutil.Prettify(s)
30091}
30092
30093// GoString returns the string representation
30094func (s CreateProvisioningTemplateInput) GoString() string {
30095	return s.String()
30096}
30097
30098// Validate inspects the fields of the type to determine if they are valid.
30099func (s *CreateProvisioningTemplateInput) Validate() error {
30100	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
30101	if s.ProvisioningRoleArn == nil {
30102		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
30103	}
30104	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
30105		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
30106	}
30107	if s.TemplateBody == nil {
30108		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30109	}
30110	if s.TemplateName == nil {
30111		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30112	}
30113	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30114		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30115	}
30116	if s.PreProvisioningHook != nil {
30117		if err := s.PreProvisioningHook.Validate(); err != nil {
30118			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
30119		}
30120	}
30121	if s.Tags != nil {
30122		for i, v := range s.Tags {
30123			if v == nil {
30124				continue
30125			}
30126			if err := v.Validate(); err != nil {
30127				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30128			}
30129		}
30130	}
30131
30132	if invalidParams.Len() > 0 {
30133		return invalidParams
30134	}
30135	return nil
30136}
30137
30138// SetDescription sets the Description field's value.
30139func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
30140	s.Description = &v
30141	return s
30142}
30143
30144// SetEnabled sets the Enabled field's value.
30145func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
30146	s.Enabled = &v
30147	return s
30148}
30149
30150// SetPreProvisioningHook sets the PreProvisioningHook field's value.
30151func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
30152	s.PreProvisioningHook = v
30153	return s
30154}
30155
30156// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
30157func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
30158	s.ProvisioningRoleArn = &v
30159	return s
30160}
30161
30162// SetTags sets the Tags field's value.
30163func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
30164	s.Tags = v
30165	return s
30166}
30167
30168// SetTemplateBody sets the TemplateBody field's value.
30169func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
30170	s.TemplateBody = &v
30171	return s
30172}
30173
30174// SetTemplateName sets the TemplateName field's value.
30175func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
30176	s.TemplateName = &v
30177	return s
30178}
30179
30180type CreateProvisioningTemplateOutput struct {
30181	_ struct{} `type:"structure"`
30182
30183	// The default version of the fleet provisioning template.
30184	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
30185
30186	// The ARN that identifies the provisioning template.
30187	TemplateArn *string `locationName:"templateArn" type:"string"`
30188
30189	// The name of the fleet provisioning template.
30190	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30191}
30192
30193// String returns the string representation
30194func (s CreateProvisioningTemplateOutput) String() string {
30195	return awsutil.Prettify(s)
30196}
30197
30198// GoString returns the string representation
30199func (s CreateProvisioningTemplateOutput) GoString() string {
30200	return s.String()
30201}
30202
30203// SetDefaultVersionId sets the DefaultVersionId field's value.
30204func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
30205	s.DefaultVersionId = &v
30206	return s
30207}
30208
30209// SetTemplateArn sets the TemplateArn field's value.
30210func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
30211	s.TemplateArn = &v
30212	return s
30213}
30214
30215// SetTemplateName sets the TemplateName field's value.
30216func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
30217	s.TemplateName = &v
30218	return s
30219}
30220
30221type CreateProvisioningTemplateVersionInput struct {
30222	_ struct{} `type:"structure"`
30223
30224	// Sets a fleet provision template version as the default version.
30225	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
30226
30227	// The JSON formatted contents of the fleet provisioning template.
30228	//
30229	// TemplateBody is a required field
30230	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30231
30232	// The name of the fleet provisioning template.
30233	//
30234	// TemplateName is a required field
30235	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
30236}
30237
30238// String returns the string representation
30239func (s CreateProvisioningTemplateVersionInput) String() string {
30240	return awsutil.Prettify(s)
30241}
30242
30243// GoString returns the string representation
30244func (s CreateProvisioningTemplateVersionInput) GoString() string {
30245	return s.String()
30246}
30247
30248// Validate inspects the fields of the type to determine if they are valid.
30249func (s *CreateProvisioningTemplateVersionInput) Validate() error {
30250	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
30251	if s.TemplateBody == nil {
30252		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30253	}
30254	if s.TemplateName == nil {
30255		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30256	}
30257	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30258		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30259	}
30260
30261	if invalidParams.Len() > 0 {
30262		return invalidParams
30263	}
30264	return nil
30265}
30266
30267// SetSetAsDefault sets the SetAsDefault field's value.
30268func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
30269	s.SetAsDefault = &v
30270	return s
30271}
30272
30273// SetTemplateBody sets the TemplateBody field's value.
30274func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
30275	s.TemplateBody = &v
30276	return s
30277}
30278
30279// SetTemplateName sets the TemplateName field's value.
30280func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
30281	s.TemplateName = &v
30282	return s
30283}
30284
30285type CreateProvisioningTemplateVersionOutput struct {
30286	_ struct{} `type:"structure"`
30287
30288	// True if the fleet provisioning template version is the default version, otherwise
30289	// false.
30290	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
30291
30292	// The ARN that identifies the provisioning template.
30293	TemplateArn *string `locationName:"templateArn" type:"string"`
30294
30295	// The name of the fleet provisioning template.
30296	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30297
30298	// The version of the fleet provisioning template.
30299	VersionId *int64 `locationName:"versionId" type:"integer"`
30300}
30301
30302// String returns the string representation
30303func (s CreateProvisioningTemplateVersionOutput) String() string {
30304	return awsutil.Prettify(s)
30305}
30306
30307// GoString returns the string representation
30308func (s CreateProvisioningTemplateVersionOutput) GoString() string {
30309	return s.String()
30310}
30311
30312// SetIsDefaultVersion sets the IsDefaultVersion field's value.
30313func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
30314	s.IsDefaultVersion = &v
30315	return s
30316}
30317
30318// SetTemplateArn sets the TemplateArn field's value.
30319func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
30320	s.TemplateArn = &v
30321	return s
30322}
30323
30324// SetTemplateName sets the TemplateName field's value.
30325func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
30326	s.TemplateName = &v
30327	return s
30328}
30329
30330// SetVersionId sets the VersionId field's value.
30331func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
30332	s.VersionId = &v
30333	return s
30334}
30335
30336type CreateRoleAliasInput struct {
30337	_ struct{} `type:"structure"`
30338
30339	// How long (in seconds) the credentials will be valid.
30340	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
30341
30342	// The role alias that points to a role ARN. This allows you to change the role
30343	// without having to update the device.
30344	//
30345	// RoleAlias is a required field
30346	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
30347
30348	// The role ARN.
30349	//
30350	// RoleArn is a required field
30351	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30352
30353	// Metadata which can be used to manage the role alias.
30354	//
30355	// For URI Request parameters use format: ...key1=value1&key2=value2...
30356	//
30357	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30358	//
30359	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30360	Tags []*Tag `locationName:"tags" type:"list"`
30361}
30362
30363// String returns the string representation
30364func (s CreateRoleAliasInput) String() string {
30365	return awsutil.Prettify(s)
30366}
30367
30368// GoString returns the string representation
30369func (s CreateRoleAliasInput) GoString() string {
30370	return s.String()
30371}
30372
30373// Validate inspects the fields of the type to determine if they are valid.
30374func (s *CreateRoleAliasInput) Validate() error {
30375	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
30376	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
30377		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
30378	}
30379	if s.RoleAlias == nil {
30380		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
30381	}
30382	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
30383		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
30384	}
30385	if s.RoleArn == nil {
30386		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30387	}
30388	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30389		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30390	}
30391	if s.Tags != nil {
30392		for i, v := range s.Tags {
30393			if v == nil {
30394				continue
30395			}
30396			if err := v.Validate(); err != nil {
30397				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30398			}
30399		}
30400	}
30401
30402	if invalidParams.Len() > 0 {
30403		return invalidParams
30404	}
30405	return nil
30406}
30407
30408// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
30409func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
30410	s.CredentialDurationSeconds = &v
30411	return s
30412}
30413
30414// SetRoleAlias sets the RoleAlias field's value.
30415func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
30416	s.RoleAlias = &v
30417	return s
30418}
30419
30420// SetRoleArn sets the RoleArn field's value.
30421func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
30422	s.RoleArn = &v
30423	return s
30424}
30425
30426// SetTags sets the Tags field's value.
30427func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
30428	s.Tags = v
30429	return s
30430}
30431
30432type CreateRoleAliasOutput struct {
30433	_ struct{} `type:"structure"`
30434
30435	// The role alias.
30436	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
30437
30438	// The role alias ARN.
30439	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
30440}
30441
30442// String returns the string representation
30443func (s CreateRoleAliasOutput) String() string {
30444	return awsutil.Prettify(s)
30445}
30446
30447// GoString returns the string representation
30448func (s CreateRoleAliasOutput) GoString() string {
30449	return s.String()
30450}
30451
30452// SetRoleAlias sets the RoleAlias field's value.
30453func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
30454	s.RoleAlias = &v
30455	return s
30456}
30457
30458// SetRoleAliasArn sets the RoleAliasArn field's value.
30459func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
30460	s.RoleAliasArn = &v
30461	return s
30462}
30463
30464type CreateScheduledAuditInput struct {
30465	_ struct{} `type:"structure"`
30466
30467	// The day of the month on which the scheduled audit takes place. This can be
30468	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
30469	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
30470	// have that many days, the audit takes place on the LAST day of the month.
30471	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
30472
30473	// The day of the week on which the scheduled audit takes place, either SUN,
30474	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
30475	// parameter is set to WEEKLY or BIWEEKLY.
30476	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
30477
30478	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
30479	// or MONTHLY. The start time of each audit is determined by the system.
30480	//
30481	// Frequency is a required field
30482	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
30483
30484	// The name you want to give to the scheduled audit. (Max. 128 chars)
30485	//
30486	// ScheduledAuditName is a required field
30487	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
30488
30489	// Metadata that can be used to manage the scheduled audit.
30490	Tags []*Tag `locationName:"tags" type:"list"`
30491
30492	// Which checks are performed during the scheduled audit. Checks must be enabled
30493	// for your account. (Use DescribeAccountAuditConfiguration to see the list
30494	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
30495	// to select which checks are enabled.)
30496	//
30497	// TargetCheckNames is a required field
30498	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
30499}
30500
30501// String returns the string representation
30502func (s CreateScheduledAuditInput) String() string {
30503	return awsutil.Prettify(s)
30504}
30505
30506// GoString returns the string representation
30507func (s CreateScheduledAuditInput) GoString() string {
30508	return s.String()
30509}
30510
30511// Validate inspects the fields of the type to determine if they are valid.
30512func (s *CreateScheduledAuditInput) Validate() error {
30513	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
30514	if s.Frequency == nil {
30515		invalidParams.Add(request.NewErrParamRequired("Frequency"))
30516	}
30517	if s.ScheduledAuditName == nil {
30518		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
30519	}
30520	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
30521		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
30522	}
30523	if s.TargetCheckNames == nil {
30524		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
30525	}
30526	if s.Tags != nil {
30527		for i, v := range s.Tags {
30528			if v == nil {
30529				continue
30530			}
30531			if err := v.Validate(); err != nil {
30532				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30533			}
30534		}
30535	}
30536
30537	if invalidParams.Len() > 0 {
30538		return invalidParams
30539	}
30540	return nil
30541}
30542
30543// SetDayOfMonth sets the DayOfMonth field's value.
30544func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
30545	s.DayOfMonth = &v
30546	return s
30547}
30548
30549// SetDayOfWeek sets the DayOfWeek field's value.
30550func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
30551	s.DayOfWeek = &v
30552	return s
30553}
30554
30555// SetFrequency sets the Frequency field's value.
30556func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
30557	s.Frequency = &v
30558	return s
30559}
30560
30561// SetScheduledAuditName sets the ScheduledAuditName field's value.
30562func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
30563	s.ScheduledAuditName = &v
30564	return s
30565}
30566
30567// SetTags sets the Tags field's value.
30568func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
30569	s.Tags = v
30570	return s
30571}
30572
30573// SetTargetCheckNames sets the TargetCheckNames field's value.
30574func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
30575	s.TargetCheckNames = v
30576	return s
30577}
30578
30579type CreateScheduledAuditOutput struct {
30580	_ struct{} `type:"structure"`
30581
30582	// The ARN of the scheduled audit.
30583	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
30584}
30585
30586// String returns the string representation
30587func (s CreateScheduledAuditOutput) String() string {
30588	return awsutil.Prettify(s)
30589}
30590
30591// GoString returns the string representation
30592func (s CreateScheduledAuditOutput) GoString() string {
30593	return s.String()
30594}
30595
30596// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
30597func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
30598	s.ScheduledAuditArn = &v
30599	return s
30600}
30601
30602type CreateSecurityProfileInput struct {
30603	_ struct{} `type:"structure"`
30604
30605	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
30606	//
30607	// A list of metrics whose data is retained (stored). By default, data is retained
30608	// for any metric used in the profile's behaviors, but it is also retained for
30609	// any metric specified here. Can be used with custom metrics; cannot be used
30610	// with dimensions.
30611	//
30612	// Deprecated: Use additionalMetricsToRetainV2.
30613	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
30614
30615	// A list of metrics whose data is retained (stored). By default, data is retained
30616	// for any metric used in the profile's behaviors, but it is also retained for
30617	// any metric specified here. Can be used with custom metrics; cannot be used
30618	// with dimensions.
30619	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
30620
30621	// Specifies the destinations to which alerts are sent. (Alerts are always sent
30622	// to the console.) Alerts are generated when a device (thing) violates a behavior.
30623	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
30624
30625	// Specifies the behaviors that, when violated by a device (thing), cause an
30626	// alert.
30627	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
30628
30629	// A description of the security profile.
30630	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
30631
30632	// The name you are giving to the security profile.
30633	//
30634	// SecurityProfileName is a required field
30635	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
30636
30637	// Metadata that can be used to manage the security profile.
30638	Tags []*Tag `locationName:"tags" type:"list"`
30639}
30640
30641// String returns the string representation
30642func (s CreateSecurityProfileInput) String() string {
30643	return awsutil.Prettify(s)
30644}
30645
30646// GoString returns the string representation
30647func (s CreateSecurityProfileInput) GoString() string {
30648	return s.String()
30649}
30650
30651// Validate inspects the fields of the type to determine if they are valid.
30652func (s *CreateSecurityProfileInput) Validate() error {
30653	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
30654	if s.SecurityProfileName == nil {
30655		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
30656	}
30657	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
30658		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
30659	}
30660	if s.AdditionalMetricsToRetainV2 != nil {
30661		for i, v := range s.AdditionalMetricsToRetainV2 {
30662			if v == nil {
30663				continue
30664			}
30665			if err := v.Validate(); err != nil {
30666				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
30667			}
30668		}
30669	}
30670	if s.AlertTargets != nil {
30671		for i, v := range s.AlertTargets {
30672			if v == nil {
30673				continue
30674			}
30675			if err := v.Validate(); err != nil {
30676				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
30677			}
30678		}
30679	}
30680	if s.Behaviors != nil {
30681		for i, v := range s.Behaviors {
30682			if v == nil {
30683				continue
30684			}
30685			if err := v.Validate(); err != nil {
30686				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
30687			}
30688		}
30689	}
30690	if s.Tags != nil {
30691		for i, v := range s.Tags {
30692			if v == nil {
30693				continue
30694			}
30695			if err := v.Validate(); err != nil {
30696				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30697			}
30698		}
30699	}
30700
30701	if invalidParams.Len() > 0 {
30702		return invalidParams
30703	}
30704	return nil
30705}
30706
30707// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
30708func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
30709	s.AdditionalMetricsToRetain = v
30710	return s
30711}
30712
30713// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
30714func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
30715	s.AdditionalMetricsToRetainV2 = v
30716	return s
30717}
30718
30719// SetAlertTargets sets the AlertTargets field's value.
30720func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
30721	s.AlertTargets = v
30722	return s
30723}
30724
30725// SetBehaviors sets the Behaviors field's value.
30726func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
30727	s.Behaviors = v
30728	return s
30729}
30730
30731// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
30732func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
30733	s.SecurityProfileDescription = &v
30734	return s
30735}
30736
30737// SetSecurityProfileName sets the SecurityProfileName field's value.
30738func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
30739	s.SecurityProfileName = &v
30740	return s
30741}
30742
30743// SetTags sets the Tags field's value.
30744func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
30745	s.Tags = v
30746	return s
30747}
30748
30749type CreateSecurityProfileOutput struct {
30750	_ struct{} `type:"structure"`
30751
30752	// The ARN of the security profile.
30753	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
30754
30755	// The name you gave to the security profile.
30756	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
30757}
30758
30759// String returns the string representation
30760func (s CreateSecurityProfileOutput) String() string {
30761	return awsutil.Prettify(s)
30762}
30763
30764// GoString returns the string representation
30765func (s CreateSecurityProfileOutput) GoString() string {
30766	return s.String()
30767}
30768
30769// SetSecurityProfileArn sets the SecurityProfileArn field's value.
30770func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
30771	s.SecurityProfileArn = &v
30772	return s
30773}
30774
30775// SetSecurityProfileName sets the SecurityProfileName field's value.
30776func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
30777	s.SecurityProfileName = &v
30778	return s
30779}
30780
30781type CreateStreamInput struct {
30782	_ struct{} `type:"structure"`
30783
30784	// A description of the stream.
30785	Description *string `locationName:"description" type:"string"`
30786
30787	// The files to stream.
30788	//
30789	// Files is a required field
30790	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
30791
30792	// An IAM role that allows the IoT service principal assumes to access your
30793	// S3 files.
30794	//
30795	// RoleArn is a required field
30796	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30797
30798	// The stream ID.
30799	//
30800	// StreamId is a required field
30801	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
30802
30803	// Metadata which can be used to manage streams.
30804	Tags []*Tag `locationName:"tags" type:"list"`
30805}
30806
30807// String returns the string representation
30808func (s CreateStreamInput) String() string {
30809	return awsutil.Prettify(s)
30810}
30811
30812// GoString returns the string representation
30813func (s CreateStreamInput) GoString() string {
30814	return s.String()
30815}
30816
30817// Validate inspects the fields of the type to determine if they are valid.
30818func (s *CreateStreamInput) Validate() error {
30819	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
30820	if s.Files == nil {
30821		invalidParams.Add(request.NewErrParamRequired("Files"))
30822	}
30823	if s.Files != nil && len(s.Files) < 1 {
30824		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
30825	}
30826	if s.RoleArn == nil {
30827		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30828	}
30829	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30830		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30831	}
30832	if s.StreamId == nil {
30833		invalidParams.Add(request.NewErrParamRequired("StreamId"))
30834	}
30835	if s.StreamId != nil && len(*s.StreamId) < 1 {
30836		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
30837	}
30838	if s.Files != nil {
30839		for i, v := range s.Files {
30840			if v == nil {
30841				continue
30842			}
30843			if err := v.Validate(); err != nil {
30844				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
30845			}
30846		}
30847	}
30848	if s.Tags != nil {
30849		for i, v := range s.Tags {
30850			if v == nil {
30851				continue
30852			}
30853			if err := v.Validate(); err != nil {
30854				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30855			}
30856		}
30857	}
30858
30859	if invalidParams.Len() > 0 {
30860		return invalidParams
30861	}
30862	return nil
30863}
30864
30865// SetDescription sets the Description field's value.
30866func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
30867	s.Description = &v
30868	return s
30869}
30870
30871// SetFiles sets the Files field's value.
30872func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
30873	s.Files = v
30874	return s
30875}
30876
30877// SetRoleArn sets the RoleArn field's value.
30878func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
30879	s.RoleArn = &v
30880	return s
30881}
30882
30883// SetStreamId sets the StreamId field's value.
30884func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
30885	s.StreamId = &v
30886	return s
30887}
30888
30889// SetTags sets the Tags field's value.
30890func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
30891	s.Tags = v
30892	return s
30893}
30894
30895type CreateStreamOutput struct {
30896	_ struct{} `type:"structure"`
30897
30898	// A description of the stream.
30899	Description *string `locationName:"description" type:"string"`
30900
30901	// The stream ARN.
30902	StreamArn *string `locationName:"streamArn" type:"string"`
30903
30904	// The stream ID.
30905	StreamId *string `locationName:"streamId" min:"1" type:"string"`
30906
30907	// The version of the stream.
30908	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
30909}
30910
30911// String returns the string representation
30912func (s CreateStreamOutput) String() string {
30913	return awsutil.Prettify(s)
30914}
30915
30916// GoString returns the string representation
30917func (s CreateStreamOutput) GoString() string {
30918	return s.String()
30919}
30920
30921// SetDescription sets the Description field's value.
30922func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
30923	s.Description = &v
30924	return s
30925}
30926
30927// SetStreamArn sets the StreamArn field's value.
30928func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
30929	s.StreamArn = &v
30930	return s
30931}
30932
30933// SetStreamId sets the StreamId field's value.
30934func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
30935	s.StreamId = &v
30936	return s
30937}
30938
30939// SetStreamVersion sets the StreamVersion field's value.
30940func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
30941	s.StreamVersion = &v
30942	return s
30943}
30944
30945type CreateThingGroupInput struct {
30946	_ struct{} `type:"structure"`
30947
30948	// The name of the parent thing group.
30949	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
30950
30951	// Metadata which can be used to manage the thing group.
30952	Tags []*Tag `locationName:"tags" type:"list"`
30953
30954	// The thing group name to create.
30955	//
30956	// ThingGroupName is a required field
30957	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
30958
30959	// The thing group properties.
30960	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
30961}
30962
30963// String returns the string representation
30964func (s CreateThingGroupInput) String() string {
30965	return awsutil.Prettify(s)
30966}
30967
30968// GoString returns the string representation
30969func (s CreateThingGroupInput) GoString() string {
30970	return s.String()
30971}
30972
30973// Validate inspects the fields of the type to determine if they are valid.
30974func (s *CreateThingGroupInput) Validate() error {
30975	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
30976	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
30977		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
30978	}
30979	if s.ThingGroupName == nil {
30980		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
30981	}
30982	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
30983		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
30984	}
30985	if s.Tags != nil {
30986		for i, v := range s.Tags {
30987			if v == nil {
30988				continue
30989			}
30990			if err := v.Validate(); err != nil {
30991				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30992			}
30993		}
30994	}
30995
30996	if invalidParams.Len() > 0 {
30997		return invalidParams
30998	}
30999	return nil
31000}
31001
31002// SetParentGroupName sets the ParentGroupName field's value.
31003func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
31004	s.ParentGroupName = &v
31005	return s
31006}
31007
31008// SetTags sets the Tags field's value.
31009func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
31010	s.Tags = v
31011	return s
31012}
31013
31014// SetThingGroupName sets the ThingGroupName field's value.
31015func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
31016	s.ThingGroupName = &v
31017	return s
31018}
31019
31020// SetThingGroupProperties sets the ThingGroupProperties field's value.
31021func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
31022	s.ThingGroupProperties = v
31023	return s
31024}
31025
31026type CreateThingGroupOutput struct {
31027	_ struct{} `type:"structure"`
31028
31029	// The thing group ARN.
31030	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
31031
31032	// The thing group ID.
31033	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
31034
31035	// The thing group name.
31036	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
31037}
31038
31039// String returns the string representation
31040func (s CreateThingGroupOutput) String() string {
31041	return awsutil.Prettify(s)
31042}
31043
31044// GoString returns the string representation
31045func (s CreateThingGroupOutput) GoString() string {
31046	return s.String()
31047}
31048
31049// SetThingGroupArn sets the ThingGroupArn field's value.
31050func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
31051	s.ThingGroupArn = &v
31052	return s
31053}
31054
31055// SetThingGroupId sets the ThingGroupId field's value.
31056func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
31057	s.ThingGroupId = &v
31058	return s
31059}
31060
31061// SetThingGroupName sets the ThingGroupName field's value.
31062func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
31063	s.ThingGroupName = &v
31064	return s
31065}
31066
31067// The input for the CreateThing operation.
31068type CreateThingInput struct {
31069	_ struct{} `type:"structure"`
31070
31071	// The attribute payload, which consists of up to three name/value pairs in
31072	// a JSON document. For example:
31073	//
31074	// {\"attributes\":{\"string1\":\"string2\"}}
31075	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
31076
31077	// The name of the billing group the thing will be added to.
31078	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
31079
31080	// The name of the thing to create.
31081	//
31082	// You can't change a thing's name after you create it. To change a thing's
31083	// name, you must create a new thing, give it the new name, and then delete
31084	// the old thing.
31085	//
31086	// ThingName is a required field
31087	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
31088
31089	// The name of the thing type associated with the new thing.
31090	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31091}
31092
31093// String returns the string representation
31094func (s CreateThingInput) String() string {
31095	return awsutil.Prettify(s)
31096}
31097
31098// GoString returns the string representation
31099func (s CreateThingInput) GoString() string {
31100	return s.String()
31101}
31102
31103// Validate inspects the fields of the type to determine if they are valid.
31104func (s *CreateThingInput) Validate() error {
31105	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
31106	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
31107		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
31108	}
31109	if s.ThingName == nil {
31110		invalidParams.Add(request.NewErrParamRequired("ThingName"))
31111	}
31112	if s.ThingName != nil && len(*s.ThingName) < 1 {
31113		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
31114	}
31115	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31116		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31117	}
31118
31119	if invalidParams.Len() > 0 {
31120		return invalidParams
31121	}
31122	return nil
31123}
31124
31125// SetAttributePayload sets the AttributePayload field's value.
31126func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
31127	s.AttributePayload = v
31128	return s
31129}
31130
31131// SetBillingGroupName sets the BillingGroupName field's value.
31132func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
31133	s.BillingGroupName = &v
31134	return s
31135}
31136
31137// SetThingName sets the ThingName field's value.
31138func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
31139	s.ThingName = &v
31140	return s
31141}
31142
31143// SetThingTypeName sets the ThingTypeName field's value.
31144func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
31145	s.ThingTypeName = &v
31146	return s
31147}
31148
31149// The output of the CreateThing operation.
31150type CreateThingOutput struct {
31151	_ struct{} `type:"structure"`
31152
31153	// The ARN of the new thing.
31154	ThingArn *string `locationName:"thingArn" type:"string"`
31155
31156	// The thing ID.
31157	ThingId *string `locationName:"thingId" type:"string"`
31158
31159	// The name of the new thing.
31160	ThingName *string `locationName:"thingName" min:"1" type:"string"`
31161}
31162
31163// String returns the string representation
31164func (s CreateThingOutput) String() string {
31165	return awsutil.Prettify(s)
31166}
31167
31168// GoString returns the string representation
31169func (s CreateThingOutput) GoString() string {
31170	return s.String()
31171}
31172
31173// SetThingArn sets the ThingArn field's value.
31174func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
31175	s.ThingArn = &v
31176	return s
31177}
31178
31179// SetThingId sets the ThingId field's value.
31180func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
31181	s.ThingId = &v
31182	return s
31183}
31184
31185// SetThingName sets the ThingName field's value.
31186func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
31187	s.ThingName = &v
31188	return s
31189}
31190
31191// The input for the CreateThingType operation.
31192type CreateThingTypeInput struct {
31193	_ struct{} `type:"structure"`
31194
31195	// Metadata which can be used to manage the thing type.
31196	Tags []*Tag `locationName:"tags" type:"list"`
31197
31198	// The name of the thing type.
31199	//
31200	// ThingTypeName is a required field
31201	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
31202
31203	// The ThingTypeProperties for the thing type to create. It contains information
31204	// about the new thing type including a description, and a list of searchable
31205	// thing attribute names.
31206	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
31207}
31208
31209// String returns the string representation
31210func (s CreateThingTypeInput) String() string {
31211	return awsutil.Prettify(s)
31212}
31213
31214// GoString returns the string representation
31215func (s CreateThingTypeInput) GoString() string {
31216	return s.String()
31217}
31218
31219// Validate inspects the fields of the type to determine if they are valid.
31220func (s *CreateThingTypeInput) Validate() error {
31221	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
31222	if s.ThingTypeName == nil {
31223		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
31224	}
31225	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31226		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31227	}
31228	if s.Tags != nil {
31229		for i, v := range s.Tags {
31230			if v == nil {
31231				continue
31232			}
31233			if err := v.Validate(); err != nil {
31234				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31235			}
31236		}
31237	}
31238
31239	if invalidParams.Len() > 0 {
31240		return invalidParams
31241	}
31242	return nil
31243}
31244
31245// SetTags sets the Tags field's value.
31246func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
31247	s.Tags = v
31248	return s
31249}
31250
31251// SetThingTypeName sets the ThingTypeName field's value.
31252func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
31253	s.ThingTypeName = &v
31254	return s
31255}
31256
31257// SetThingTypeProperties sets the ThingTypeProperties field's value.
31258func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
31259	s.ThingTypeProperties = v
31260	return s
31261}
31262
31263// The output of the CreateThingType operation.
31264type CreateThingTypeOutput struct {
31265	_ struct{} `type:"structure"`
31266
31267	// The Amazon Resource Name (ARN) of the thing type.
31268	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
31269
31270	// The thing type ID.
31271	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
31272
31273	// The name of the thing type.
31274	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31275}
31276
31277// String returns the string representation
31278func (s CreateThingTypeOutput) String() string {
31279	return awsutil.Prettify(s)
31280}
31281
31282// GoString returns the string representation
31283func (s CreateThingTypeOutput) GoString() string {
31284	return s.String()
31285}
31286
31287// SetThingTypeArn sets the ThingTypeArn field's value.
31288func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
31289	s.ThingTypeArn = &v
31290	return s
31291}
31292
31293// SetThingTypeId sets the ThingTypeId field's value.
31294func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
31295	s.ThingTypeId = &v
31296	return s
31297}
31298
31299// SetThingTypeName sets the ThingTypeName field's value.
31300func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
31301	s.ThingTypeName = &v
31302	return s
31303}
31304
31305type CreateTopicRuleDestinationInput struct {
31306	_ struct{} `type:"structure"`
31307
31308	// The topic rule destination configuration.
31309	//
31310	// DestinationConfiguration is a required field
31311	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
31312}
31313
31314// String returns the string representation
31315func (s CreateTopicRuleDestinationInput) String() string {
31316	return awsutil.Prettify(s)
31317}
31318
31319// GoString returns the string representation
31320func (s CreateTopicRuleDestinationInput) GoString() string {
31321	return s.String()
31322}
31323
31324// Validate inspects the fields of the type to determine if they are valid.
31325func (s *CreateTopicRuleDestinationInput) Validate() error {
31326	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
31327	if s.DestinationConfiguration == nil {
31328		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
31329	}
31330	if s.DestinationConfiguration != nil {
31331		if err := s.DestinationConfiguration.Validate(); err != nil {
31332			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
31333		}
31334	}
31335
31336	if invalidParams.Len() > 0 {
31337		return invalidParams
31338	}
31339	return nil
31340}
31341
31342// SetDestinationConfiguration sets the DestinationConfiguration field's value.
31343func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
31344	s.DestinationConfiguration = v
31345	return s
31346}
31347
31348type CreateTopicRuleDestinationOutput struct {
31349	_ struct{} `type:"structure"`
31350
31351	// The topic rule destination.
31352	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
31353}
31354
31355// String returns the string representation
31356func (s CreateTopicRuleDestinationOutput) String() string {
31357	return awsutil.Prettify(s)
31358}
31359
31360// GoString returns the string representation
31361func (s CreateTopicRuleDestinationOutput) GoString() string {
31362	return s.String()
31363}
31364
31365// SetTopicRuleDestination sets the TopicRuleDestination field's value.
31366func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
31367	s.TopicRuleDestination = v
31368	return s
31369}
31370
31371// The input for the CreateTopicRule operation.
31372type CreateTopicRuleInput struct {
31373	_ struct{} `type:"structure" payload:"TopicRulePayload"`
31374
31375	// The name of the rule.
31376	//
31377	// RuleName is a required field
31378	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
31379
31380	// Metadata which can be used to manage the topic rule.
31381	//
31382	// For URI Request parameters use format: ...key1=value1&key2=value2...
31383	//
31384	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
31385	//
31386	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
31387	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
31388
31389	// The rule payload.
31390	//
31391	// TopicRulePayload is a required field
31392	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
31393}
31394
31395// String returns the string representation
31396func (s CreateTopicRuleInput) String() string {
31397	return awsutil.Prettify(s)
31398}
31399
31400// GoString returns the string representation
31401func (s CreateTopicRuleInput) GoString() string {
31402	return s.String()
31403}
31404
31405// Validate inspects the fields of the type to determine if they are valid.
31406func (s *CreateTopicRuleInput) Validate() error {
31407	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
31408	if s.RuleName == nil {
31409		invalidParams.Add(request.NewErrParamRequired("RuleName"))
31410	}
31411	if s.RuleName != nil && len(*s.RuleName) < 1 {
31412		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
31413	}
31414	if s.TopicRulePayload == nil {
31415		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
31416	}
31417	if s.TopicRulePayload != nil {
31418		if err := s.TopicRulePayload.Validate(); err != nil {
31419			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
31420		}
31421	}
31422
31423	if invalidParams.Len() > 0 {
31424		return invalidParams
31425	}
31426	return nil
31427}
31428
31429// SetRuleName sets the RuleName field's value.
31430func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
31431	s.RuleName = &v
31432	return s
31433}
31434
31435// SetTags sets the Tags field's value.
31436func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
31437	s.Tags = &v
31438	return s
31439}
31440
31441// SetTopicRulePayload sets the TopicRulePayload field's value.
31442func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
31443	s.TopicRulePayload = v
31444	return s
31445}
31446
31447type CreateTopicRuleOutput struct {
31448	_ struct{} `type:"structure"`
31449}
31450
31451// String returns the string representation
31452func (s CreateTopicRuleOutput) String() string {
31453	return awsutil.Prettify(s)
31454}
31455
31456// GoString returns the string representation
31457func (s CreateTopicRuleOutput) GoString() string {
31458	return s.String()
31459}
31460
31461// Describes a custom method used to code sign a file.
31462type CustomCodeSigning struct {
31463	_ struct{} `type:"structure"`
31464
31465	// The certificate chain.
31466	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
31467
31468	// The hash algorithm used to code sign the file.
31469	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
31470
31471	// The signature for the file.
31472	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
31473
31474	// The signature algorithm used to code sign the file.
31475	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
31476}
31477
31478// String returns the string representation
31479func (s CustomCodeSigning) String() string {
31480	return awsutil.Prettify(s)
31481}
31482
31483// GoString returns the string representation
31484func (s CustomCodeSigning) GoString() string {
31485	return s.String()
31486}
31487
31488// SetCertificateChain sets the CertificateChain field's value.
31489func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
31490	s.CertificateChain = v
31491	return s
31492}
31493
31494// SetHashAlgorithm sets the HashAlgorithm field's value.
31495func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
31496	s.HashAlgorithm = &v
31497	return s
31498}
31499
31500// SetSignature sets the Signature field's value.
31501func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
31502	s.Signature = v
31503	return s
31504}
31505
31506// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
31507func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
31508	s.SignatureAlgorithm = &v
31509	return s
31510}
31511
31512type DeleteAccountAuditConfigurationInput struct {
31513	_ struct{} `type:"structure"`
31514
31515	// If true, all scheduled audits are deleted.
31516	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
31517}
31518
31519// String returns the string representation
31520func (s DeleteAccountAuditConfigurationInput) String() string {
31521	return awsutil.Prettify(s)
31522}
31523
31524// GoString returns the string representation
31525func (s DeleteAccountAuditConfigurationInput) GoString() string {
31526	return s.String()
31527}
31528
31529// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
31530func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
31531	s.DeleteScheduledAudits = &v
31532	return s
31533}
31534
31535type DeleteAccountAuditConfigurationOutput struct {
31536	_ struct{} `type:"structure"`
31537}
31538
31539// String returns the string representation
31540func (s DeleteAccountAuditConfigurationOutput) String() string {
31541	return awsutil.Prettify(s)
31542}
31543
31544// GoString returns the string representation
31545func (s DeleteAccountAuditConfigurationOutput) GoString() string {
31546	return s.String()
31547}
31548
31549type DeleteAuditSuppressionInput struct {
31550	_ struct{} `type:"structure"`
31551
31552	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
31553	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
31554	// to select which checks are enabled.)
31555	//
31556	// CheckName is a required field
31557	CheckName *string `locationName:"checkName" type:"string" required:"true"`
31558
31559	// Information that identifies the noncompliant resource.
31560	//
31561	// ResourceIdentifier is a required field
31562	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
31563}
31564
31565// String returns the string representation
31566func (s DeleteAuditSuppressionInput) String() string {
31567	return awsutil.Prettify(s)
31568}
31569
31570// GoString returns the string representation
31571func (s DeleteAuditSuppressionInput) GoString() string {
31572	return s.String()
31573}
31574
31575// Validate inspects the fields of the type to determine if they are valid.
31576func (s *DeleteAuditSuppressionInput) Validate() error {
31577	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
31578	if s.CheckName == nil {
31579		invalidParams.Add(request.NewErrParamRequired("CheckName"))
31580	}
31581	if s.ResourceIdentifier == nil {
31582		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
31583	}
31584	if s.ResourceIdentifier != nil {
31585		if err := s.ResourceIdentifier.Validate(); err != nil {
31586			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
31587		}
31588	}
31589
31590	if invalidParams.Len() > 0 {
31591		return invalidParams
31592	}
31593	return nil
31594}
31595
31596// SetCheckName sets the CheckName field's value.
31597func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
31598	s.CheckName = &v
31599	return s
31600}
31601
31602// SetResourceIdentifier sets the ResourceIdentifier field's value.
31603func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
31604	s.ResourceIdentifier = v
31605	return s
31606}
31607
31608type DeleteAuditSuppressionOutput struct {
31609	_ struct{} `type:"structure"`
31610}
31611
31612// String returns the string representation
31613func (s DeleteAuditSuppressionOutput) String() string {
31614	return awsutil.Prettify(s)
31615}
31616
31617// GoString returns the string representation
31618func (s DeleteAuditSuppressionOutput) GoString() string {
31619	return s.String()
31620}
31621
31622type DeleteAuthorizerInput struct {
31623	_ struct{} `type:"structure"`
31624
31625	// The name of the authorizer to delete.
31626	//
31627	// AuthorizerName is a required field
31628	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
31629}
31630
31631// String returns the string representation
31632func (s DeleteAuthorizerInput) String() string {
31633	return awsutil.Prettify(s)
31634}
31635
31636// GoString returns the string representation
31637func (s DeleteAuthorizerInput) GoString() string {
31638	return s.String()
31639}
31640
31641// Validate inspects the fields of the type to determine if they are valid.
31642func (s *DeleteAuthorizerInput) Validate() error {
31643	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
31644	if s.AuthorizerName == nil {
31645		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
31646	}
31647	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
31648		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
31649	}
31650
31651	if invalidParams.Len() > 0 {
31652		return invalidParams
31653	}
31654	return nil
31655}
31656
31657// SetAuthorizerName sets the AuthorizerName field's value.
31658func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
31659	s.AuthorizerName = &v
31660	return s
31661}
31662
31663type DeleteAuthorizerOutput struct {
31664	_ struct{} `type:"structure"`
31665}
31666
31667// String returns the string representation
31668func (s DeleteAuthorizerOutput) String() string {
31669	return awsutil.Prettify(s)
31670}
31671
31672// GoString returns the string representation
31673func (s DeleteAuthorizerOutput) GoString() string {
31674	return s.String()
31675}
31676
31677type DeleteBillingGroupInput struct {
31678	_ struct{} `type:"structure"`
31679
31680	// The name of the billing group.
31681	//
31682	// BillingGroupName is a required field
31683	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
31684
31685	// The expected version of the billing group. If the version of the billing
31686	// group does not match the expected version specified in the request, the DeleteBillingGroup
31687	// request is rejected with a VersionConflictException.
31688	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
31689}
31690
31691// String returns the string representation
31692func (s DeleteBillingGroupInput) String() string {
31693	return awsutil.Prettify(s)
31694}
31695
31696// GoString returns the string representation
31697func (s DeleteBillingGroupInput) GoString() string {
31698	return s.String()
31699}
31700
31701// Validate inspects the fields of the type to determine if they are valid.
31702func (s *DeleteBillingGroupInput) Validate() error {
31703	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
31704	if s.BillingGroupName == nil {
31705		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
31706	}
31707	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
31708		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
31709	}
31710
31711	if invalidParams.Len() > 0 {
31712		return invalidParams
31713	}
31714	return nil
31715}
31716
31717// SetBillingGroupName sets the BillingGroupName field's value.
31718func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
31719	s.BillingGroupName = &v
31720	return s
31721}
31722
31723// SetExpectedVersion sets the ExpectedVersion field's value.
31724func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
31725	s.ExpectedVersion = &v
31726	return s
31727}
31728
31729type DeleteBillingGroupOutput struct {
31730	_ struct{} `type:"structure"`
31731}
31732
31733// String returns the string representation
31734func (s DeleteBillingGroupOutput) String() string {
31735	return awsutil.Prettify(s)
31736}
31737
31738// GoString returns the string representation
31739func (s DeleteBillingGroupOutput) GoString() string {
31740	return s.String()
31741}
31742
31743// Input for the DeleteCACertificate operation.
31744type DeleteCACertificateInput struct {
31745	_ struct{} `type:"structure"`
31746
31747	// The ID of the certificate to delete. (The last part of the certificate ARN
31748	// contains the certificate ID.)
31749	//
31750	// CertificateId is a required field
31751	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
31752}
31753
31754// String returns the string representation
31755func (s DeleteCACertificateInput) String() string {
31756	return awsutil.Prettify(s)
31757}
31758
31759// GoString returns the string representation
31760func (s DeleteCACertificateInput) GoString() string {
31761	return s.String()
31762}
31763
31764// Validate inspects the fields of the type to determine if they are valid.
31765func (s *DeleteCACertificateInput) Validate() error {
31766	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
31767	if s.CertificateId == nil {
31768		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
31769	}
31770	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
31771		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
31772	}
31773
31774	if invalidParams.Len() > 0 {
31775		return invalidParams
31776	}
31777	return nil
31778}
31779
31780// SetCertificateId sets the CertificateId field's value.
31781func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
31782	s.CertificateId = &v
31783	return s
31784}
31785
31786// The output for the DeleteCACertificate operation.
31787type DeleteCACertificateOutput struct {
31788	_ struct{} `type:"structure"`
31789}
31790
31791// String returns the string representation
31792func (s DeleteCACertificateOutput) String() string {
31793	return awsutil.Prettify(s)
31794}
31795
31796// GoString returns the string representation
31797func (s DeleteCACertificateOutput) GoString() string {
31798	return s.String()
31799}
31800
31801// The input for the DeleteCertificate operation.
31802type DeleteCertificateInput struct {
31803	_ struct{} `type:"structure"`
31804
31805	// The ID of the certificate. (The last part of the certificate ARN contains
31806	// the certificate ID.)
31807	//
31808	// CertificateId is a required field
31809	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
31810
31811	// Forces the deletion of a certificate if it is inactive and is not attached
31812	// to an IoT thing.
31813	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
31814}
31815
31816// String returns the string representation
31817func (s DeleteCertificateInput) String() string {
31818	return awsutil.Prettify(s)
31819}
31820
31821// GoString returns the string representation
31822func (s DeleteCertificateInput) GoString() string {
31823	return s.String()
31824}
31825
31826// Validate inspects the fields of the type to determine if they are valid.
31827func (s *DeleteCertificateInput) Validate() error {
31828	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
31829	if s.CertificateId == nil {
31830		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
31831	}
31832	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
31833		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
31834	}
31835
31836	if invalidParams.Len() > 0 {
31837		return invalidParams
31838	}
31839	return nil
31840}
31841
31842// SetCertificateId sets the CertificateId field's value.
31843func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
31844	s.CertificateId = &v
31845	return s
31846}
31847
31848// SetForceDelete sets the ForceDelete field's value.
31849func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
31850	s.ForceDelete = &v
31851	return s
31852}
31853
31854type DeleteCertificateOutput struct {
31855	_ struct{} `type:"structure"`
31856}
31857
31858// String returns the string representation
31859func (s DeleteCertificateOutput) String() string {
31860	return awsutil.Prettify(s)
31861}
31862
31863// GoString returns the string representation
31864func (s DeleteCertificateOutput) GoString() string {
31865	return s.String()
31866}
31867
31868// You can't delete the resource because it is attached to one or more resources.
31869type DeleteConflictException struct {
31870	_            struct{}                  `type:"structure"`
31871	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
31872
31873	// The message for the exception.
31874	Message_ *string `locationName:"message" type:"string"`
31875}
31876
31877// String returns the string representation
31878func (s DeleteConflictException) String() string {
31879	return awsutil.Prettify(s)
31880}
31881
31882// GoString returns the string representation
31883func (s DeleteConflictException) GoString() string {
31884	return s.String()
31885}
31886
31887func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
31888	return &DeleteConflictException{
31889		RespMetadata: v,
31890	}
31891}
31892
31893// Code returns the exception type name.
31894func (s *DeleteConflictException) Code() string {
31895	return "DeleteConflictException"
31896}
31897
31898// Message returns the exception's message.
31899func (s *DeleteConflictException) Message() string {
31900	if s.Message_ != nil {
31901		return *s.Message_
31902	}
31903	return ""
31904}
31905
31906// OrigErr always returns nil, satisfies awserr.Error interface.
31907func (s *DeleteConflictException) OrigErr() error {
31908	return nil
31909}
31910
31911func (s *DeleteConflictException) Error() string {
31912	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
31913}
31914
31915// Status code returns the HTTP status code for the request's response error.
31916func (s *DeleteConflictException) StatusCode() int {
31917	return s.RespMetadata.StatusCode
31918}
31919
31920// RequestID returns the service's response RequestID for request.
31921func (s *DeleteConflictException) RequestID() string {
31922	return s.RespMetadata.RequestID
31923}
31924
31925type DeleteCustomMetricInput struct {
31926	_ struct{} `type:"structure"`
31927
31928	// The name of the custom metric.
31929	//
31930	// MetricName is a required field
31931	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
31932}
31933
31934// String returns the string representation
31935func (s DeleteCustomMetricInput) String() string {
31936	return awsutil.Prettify(s)
31937}
31938
31939// GoString returns the string representation
31940func (s DeleteCustomMetricInput) GoString() string {
31941	return s.String()
31942}
31943
31944// Validate inspects the fields of the type to determine if they are valid.
31945func (s *DeleteCustomMetricInput) Validate() error {
31946	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
31947	if s.MetricName == nil {
31948		invalidParams.Add(request.NewErrParamRequired("MetricName"))
31949	}
31950	if s.MetricName != nil && len(*s.MetricName) < 1 {
31951		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
31952	}
31953
31954	if invalidParams.Len() > 0 {
31955		return invalidParams
31956	}
31957	return nil
31958}
31959
31960// SetMetricName sets the MetricName field's value.
31961func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
31962	s.MetricName = &v
31963	return s
31964}
31965
31966type DeleteCustomMetricOutput struct {
31967	_ struct{} `type:"structure"`
31968}
31969
31970// String returns the string representation
31971func (s DeleteCustomMetricOutput) String() string {
31972	return awsutil.Prettify(s)
31973}
31974
31975// GoString returns the string representation
31976func (s DeleteCustomMetricOutput) GoString() string {
31977	return s.String()
31978}
31979
31980type DeleteDimensionInput struct {
31981	_ struct{} `type:"structure"`
31982
31983	// The unique identifier for the dimension that you want to delete.
31984	//
31985	// Name is a required field
31986	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
31987}
31988
31989// String returns the string representation
31990func (s DeleteDimensionInput) String() string {
31991	return awsutil.Prettify(s)
31992}
31993
31994// GoString returns the string representation
31995func (s DeleteDimensionInput) GoString() string {
31996	return s.String()
31997}
31998
31999// Validate inspects the fields of the type to determine if they are valid.
32000func (s *DeleteDimensionInput) Validate() error {
32001	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
32002	if s.Name == nil {
32003		invalidParams.Add(request.NewErrParamRequired("Name"))
32004	}
32005	if s.Name != nil && len(*s.Name) < 1 {
32006		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
32007	}
32008
32009	if invalidParams.Len() > 0 {
32010		return invalidParams
32011	}
32012	return nil
32013}
32014
32015// SetName sets the Name field's value.
32016func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
32017	s.Name = &v
32018	return s
32019}
32020
32021type DeleteDimensionOutput struct {
32022	_ struct{} `type:"structure"`
32023}
32024
32025// String returns the string representation
32026func (s DeleteDimensionOutput) String() string {
32027	return awsutil.Prettify(s)
32028}
32029
32030// GoString returns the string representation
32031func (s DeleteDimensionOutput) GoString() string {
32032	return s.String()
32033}
32034
32035type DeleteDomainConfigurationInput struct {
32036	_ struct{} `type:"structure"`
32037
32038	// The name of the domain configuration to be deleted.
32039	//
32040	// DomainConfigurationName is a required field
32041	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
32042}
32043
32044// String returns the string representation
32045func (s DeleteDomainConfigurationInput) String() string {
32046	return awsutil.Prettify(s)
32047}
32048
32049// GoString returns the string representation
32050func (s DeleteDomainConfigurationInput) GoString() string {
32051	return s.String()
32052}
32053
32054// Validate inspects the fields of the type to determine if they are valid.
32055func (s *DeleteDomainConfigurationInput) Validate() error {
32056	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
32057	if s.DomainConfigurationName == nil {
32058		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
32059	}
32060	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
32061		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
32062	}
32063
32064	if invalidParams.Len() > 0 {
32065		return invalidParams
32066	}
32067	return nil
32068}
32069
32070// SetDomainConfigurationName sets the DomainConfigurationName field's value.
32071func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
32072	s.DomainConfigurationName = &v
32073	return s
32074}
32075
32076type DeleteDomainConfigurationOutput struct {
32077	_ struct{} `type:"structure"`
32078}
32079
32080// String returns the string representation
32081func (s DeleteDomainConfigurationOutput) String() string {
32082	return awsutil.Prettify(s)
32083}
32084
32085// GoString returns the string representation
32086func (s DeleteDomainConfigurationOutput) GoString() string {
32087	return s.String()
32088}
32089
32090type DeleteDynamicThingGroupInput struct {
32091	_ struct{} `type:"structure"`
32092
32093	// The expected version of the dynamic thing group to delete.
32094	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32095
32096	// The name of the dynamic thing group to delete.
32097	//
32098	// ThingGroupName is a required field
32099	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
32100}
32101
32102// String returns the string representation
32103func (s DeleteDynamicThingGroupInput) String() string {
32104	return awsutil.Prettify(s)
32105}
32106
32107// GoString returns the string representation
32108func (s DeleteDynamicThingGroupInput) GoString() string {
32109	return s.String()
32110}
32111
32112// Validate inspects the fields of the type to determine if they are valid.
32113func (s *DeleteDynamicThingGroupInput) Validate() error {
32114	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
32115	if s.ThingGroupName == nil {
32116		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
32117	}
32118	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
32119		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
32120	}
32121
32122	if invalidParams.Len() > 0 {
32123		return invalidParams
32124	}
32125	return nil
32126}
32127
32128// SetExpectedVersion sets the ExpectedVersion field's value.
32129func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
32130	s.ExpectedVersion = &v
32131	return s
32132}
32133
32134// SetThingGroupName sets the ThingGroupName field's value.
32135func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
32136	s.ThingGroupName = &v
32137	return s
32138}
32139
32140type DeleteDynamicThingGroupOutput struct {
32141	_ struct{} `type:"structure"`
32142}
32143
32144// String returns the string representation
32145func (s DeleteDynamicThingGroupOutput) String() string {
32146	return awsutil.Prettify(s)
32147}
32148
32149// GoString returns the string representation
32150func (s DeleteDynamicThingGroupOutput) GoString() string {
32151	return s.String()
32152}
32153
32154type DeleteJobExecutionInput struct {
32155	_ struct{} `type:"structure"`
32156
32157	// The ID of the job execution to be deleted. The executionNumber refers to
32158	// the execution of a particular job on a particular device.
32159	//
32160	// Note that once a job execution is deleted, the executionNumber may be reused
32161	// by IoT, so be sure you get and use the correct value here.
32162	//
32163	// ExecutionNumber is a required field
32164	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
32165
32166	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
32167	// Otherwise, you can only delete a job execution which is in a terminal state
32168	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
32169	// will occur. The default is false.
32170	//
32171	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
32172	// be unable to access job information or update the job execution status. Use
32173	// caution and ensure that the device is able to recover to a valid state.
32174	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32175
32176	// The ID of the job whose execution on a particular device will be deleted.
32177	//
32178	// JobId is a required field
32179	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32180
32181	// The namespace used to indicate that a job is a customer-managed job.
32182	//
32183	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32184	// to MQTT topics that contain the value in the following format.
32185	//
32186	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32187	//
32188	// The namespaceId feature is in public preview.
32189	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32190
32191	// The name of the thing whose job execution will be deleted.
32192	//
32193	// ThingName is a required field
32194	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
32195}
32196
32197// String returns the string representation
32198func (s DeleteJobExecutionInput) String() string {
32199	return awsutil.Prettify(s)
32200}
32201
32202// GoString returns the string representation
32203func (s DeleteJobExecutionInput) GoString() string {
32204	return s.String()
32205}
32206
32207// Validate inspects the fields of the type to determine if they are valid.
32208func (s *DeleteJobExecutionInput) Validate() error {
32209	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
32210	if s.ExecutionNumber == nil {
32211		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
32212	}
32213	if s.JobId == nil {
32214		invalidParams.Add(request.NewErrParamRequired("JobId"))
32215	}
32216	if s.JobId != nil && len(*s.JobId) < 1 {
32217		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32218	}
32219	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32220		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32221	}
32222	if s.ThingName == nil {
32223		invalidParams.Add(request.NewErrParamRequired("ThingName"))
32224	}
32225	if s.ThingName != nil && len(*s.ThingName) < 1 {
32226		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
32227	}
32228
32229	if invalidParams.Len() > 0 {
32230		return invalidParams
32231	}
32232	return nil
32233}
32234
32235// SetExecutionNumber sets the ExecutionNumber field's value.
32236func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
32237	s.ExecutionNumber = &v
32238	return s
32239}
32240
32241// SetForce sets the Force field's value.
32242func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
32243	s.Force = &v
32244	return s
32245}
32246
32247// SetJobId sets the JobId field's value.
32248func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
32249	s.JobId = &v
32250	return s
32251}
32252
32253// SetNamespaceId sets the NamespaceId field's value.
32254func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
32255	s.NamespaceId = &v
32256	return s
32257}
32258
32259// SetThingName sets the ThingName field's value.
32260func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
32261	s.ThingName = &v
32262	return s
32263}
32264
32265type DeleteJobExecutionOutput struct {
32266	_ struct{} `type:"structure"`
32267}
32268
32269// String returns the string representation
32270func (s DeleteJobExecutionOutput) String() string {
32271	return awsutil.Prettify(s)
32272}
32273
32274// GoString returns the string representation
32275func (s DeleteJobExecutionOutput) GoString() string {
32276	return s.String()
32277}
32278
32279type DeleteJobInput struct {
32280	_ struct{} `type:"structure"`
32281
32282	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
32283	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
32284	// or an exception will occur. The default is false.
32285	//
32286	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
32287	// the job to be unable to access job information or update the job execution
32288	// status. Use caution and ensure that each device executing a job which is
32289	// deleted is able to recover to a valid state.
32290	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32291
32292	// The ID of the job to be deleted.
32293	//
32294	// After a job deletion is completed, you may reuse this jobId when you create
32295	// a new job. However, this is not recommended, and you must ensure that your
32296	// devices are not using the jobId to refer to the deleted job.
32297	//
32298	// JobId is a required field
32299	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32300
32301	// The namespace used to indicate that a job is a customer-managed job.
32302	//
32303	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32304	// to MQTT topics that contain the value in the following format.
32305	//
32306	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32307	//
32308	// The namespaceId feature is in public preview.
32309	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32310}
32311
32312// String returns the string representation
32313func (s DeleteJobInput) String() string {
32314	return awsutil.Prettify(s)
32315}
32316
32317// GoString returns the string representation
32318func (s DeleteJobInput) GoString() string {
32319	return s.String()
32320}
32321
32322// Validate inspects the fields of the type to determine if they are valid.
32323func (s *DeleteJobInput) Validate() error {
32324	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
32325	if s.JobId == nil {
32326		invalidParams.Add(request.NewErrParamRequired("JobId"))
32327	}
32328	if s.JobId != nil && len(*s.JobId) < 1 {
32329		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32330	}
32331	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32332		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32333	}
32334
32335	if invalidParams.Len() > 0 {
32336		return invalidParams
32337	}
32338	return nil
32339}
32340
32341// SetForce sets the Force field's value.
32342func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
32343	s.Force = &v
32344	return s
32345}
32346
32347// SetJobId sets the JobId field's value.
32348func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
32349	s.JobId = &v
32350	return s
32351}
32352
32353// SetNamespaceId sets the NamespaceId field's value.
32354func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
32355	s.NamespaceId = &v
32356	return s
32357}
32358
32359type DeleteJobOutput struct {
32360	_ struct{} `type:"structure"`
32361}
32362
32363// String returns the string representation
32364func (s DeleteJobOutput) String() string {
32365	return awsutil.Prettify(s)
32366}
32367
32368// GoString returns the string representation
32369func (s DeleteJobOutput) GoString() string {
32370	return s.String()
32371}
32372
32373type DeleteMitigationActionInput struct {
32374	_ struct{} `type:"structure"`
32375
32376	// The name of the mitigation action that you want to delete.
32377	//
32378	// ActionName is a required field
32379	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
32380}
32381
32382// String returns the string representation
32383func (s DeleteMitigationActionInput) String() string {
32384	return awsutil.Prettify(s)
32385}
32386
32387// GoString returns the string representation
32388func (s DeleteMitigationActionInput) GoString() string {
32389	return s.String()
32390}
32391
32392// Validate inspects the fields of the type to determine if they are valid.
32393func (s *DeleteMitigationActionInput) Validate() error {
32394	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
32395	if s.ActionName == nil {
32396		invalidParams.Add(request.NewErrParamRequired("ActionName"))
32397	}
32398	if s.ActionName != nil && len(*s.ActionName) < 1 {
32399		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
32400	}
32401
32402	if invalidParams.Len() > 0 {
32403		return invalidParams
32404	}
32405	return nil
32406}
32407
32408// SetActionName sets the ActionName field's value.
32409func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
32410	s.ActionName = &v
32411	return s
32412}
32413
32414type DeleteMitigationActionOutput struct {
32415	_ struct{} `type:"structure"`
32416}
32417
32418// String returns the string representation
32419func (s DeleteMitigationActionOutput) String() string {
32420	return awsutil.Prettify(s)
32421}
32422
32423// GoString returns the string representation
32424func (s DeleteMitigationActionOutput) GoString() string {
32425	return s.String()
32426}
32427
32428type DeleteOTAUpdateInput struct {
32429	_ struct{} `type:"structure"`
32430
32431	// When true, the stream created by the OTAUpdate process is deleted when the
32432	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
32433	// supplied by the user.
32434	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
32435
32436	// When true, deletes the AWS job created by the OTAUpdate process even if it
32437	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
32438	// or "CANCELED") an exception will occur. The default is false.
32439	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
32440
32441	// The ID of the OTA update to delete.
32442	//
32443	// OtaUpdateId is a required field
32444	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
32445}
32446
32447// String returns the string representation
32448func (s DeleteOTAUpdateInput) String() string {
32449	return awsutil.Prettify(s)
32450}
32451
32452// GoString returns the string representation
32453func (s DeleteOTAUpdateInput) GoString() string {
32454	return s.String()
32455}
32456
32457// Validate inspects the fields of the type to determine if they are valid.
32458func (s *DeleteOTAUpdateInput) Validate() error {
32459	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
32460	if s.OtaUpdateId == nil {
32461		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
32462	}
32463	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
32464		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
32465	}
32466
32467	if invalidParams.Len() > 0 {
32468		return invalidParams
32469	}
32470	return nil
32471}
32472
32473// SetDeleteStream sets the DeleteStream field's value.
32474func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
32475	s.DeleteStream = &v
32476	return s
32477}
32478
32479// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
32480func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
32481	s.ForceDeleteAWSJob = &v
32482	return s
32483}
32484
32485// SetOtaUpdateId sets the OtaUpdateId field's value.
32486func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
32487	s.OtaUpdateId = &v
32488	return s
32489}
32490
32491type DeleteOTAUpdateOutput struct {
32492	_ struct{} `type:"structure"`
32493}
32494
32495// String returns the string representation
32496func (s DeleteOTAUpdateOutput) String() string {
32497	return awsutil.Prettify(s)
32498}
32499
32500// GoString returns the string representation
32501func (s DeleteOTAUpdateOutput) GoString() string {
32502	return s.String()
32503}
32504
32505// The input for the DeletePolicy operation.
32506type DeletePolicyInput struct {
32507	_ struct{} `type:"structure"`
32508
32509	// The name of the policy to delete.
32510	//
32511	// PolicyName is a required field
32512	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32513}
32514
32515// String returns the string representation
32516func (s DeletePolicyInput) String() string {
32517	return awsutil.Prettify(s)
32518}
32519
32520// GoString returns the string representation
32521func (s DeletePolicyInput) GoString() string {
32522	return s.String()
32523}
32524
32525// Validate inspects the fields of the type to determine if they are valid.
32526func (s *DeletePolicyInput) Validate() error {
32527	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
32528	if s.PolicyName == nil {
32529		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32530	}
32531	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32532		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32533	}
32534
32535	if invalidParams.Len() > 0 {
32536		return invalidParams
32537	}
32538	return nil
32539}
32540
32541// SetPolicyName sets the PolicyName field's value.
32542func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
32543	s.PolicyName = &v
32544	return s
32545}
32546
32547type DeletePolicyOutput struct {
32548	_ struct{} `type:"structure"`
32549}
32550
32551// String returns the string representation
32552func (s DeletePolicyOutput) String() string {
32553	return awsutil.Prettify(s)
32554}
32555
32556// GoString returns the string representation
32557func (s DeletePolicyOutput) GoString() string {
32558	return s.String()
32559}
32560
32561// The input for the DeletePolicyVersion operation.
32562type DeletePolicyVersionInput struct {
32563	_ struct{} `type:"structure"`
32564
32565	// The name of the policy.
32566	//
32567	// PolicyName is a required field
32568	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32569
32570	// The policy version ID.
32571	//
32572	// PolicyVersionId is a required field
32573	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
32574}
32575
32576// String returns the string representation
32577func (s DeletePolicyVersionInput) String() string {
32578	return awsutil.Prettify(s)
32579}
32580
32581// GoString returns the string representation
32582func (s DeletePolicyVersionInput) GoString() string {
32583	return s.String()
32584}
32585
32586// Validate inspects the fields of the type to determine if they are valid.
32587func (s *DeletePolicyVersionInput) Validate() error {
32588	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
32589	if s.PolicyName == nil {
32590		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32591	}
32592	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32593		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32594	}
32595	if s.PolicyVersionId == nil {
32596		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
32597	}
32598	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
32599		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
32600	}
32601
32602	if invalidParams.Len() > 0 {
32603		return invalidParams
32604	}
32605	return nil
32606}
32607
32608// SetPolicyName sets the PolicyName field's value.
32609func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
32610	s.PolicyName = &v
32611	return s
32612}
32613
32614// SetPolicyVersionId sets the PolicyVersionId field's value.
32615func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
32616	s.PolicyVersionId = &v
32617	return s
32618}
32619
32620type DeletePolicyVersionOutput struct {
32621	_ struct{} `type:"structure"`
32622}
32623
32624// String returns the string representation
32625func (s DeletePolicyVersionOutput) String() string {
32626	return awsutil.Prettify(s)
32627}
32628
32629// GoString returns the string representation
32630func (s DeletePolicyVersionOutput) GoString() string {
32631	return s.String()
32632}
32633
32634type DeleteProvisioningTemplateInput struct {
32635	_ struct{} `type:"structure"`
32636
32637	// The name of the fleet provision template to delete.
32638	//
32639	// TemplateName is a required field
32640	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
32641}
32642
32643// String returns the string representation
32644func (s DeleteProvisioningTemplateInput) String() string {
32645	return awsutil.Prettify(s)
32646}
32647
32648// GoString returns the string representation
32649func (s DeleteProvisioningTemplateInput) GoString() string {
32650	return s.String()
32651}
32652
32653// Validate inspects the fields of the type to determine if they are valid.
32654func (s *DeleteProvisioningTemplateInput) Validate() error {
32655	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
32656	if s.TemplateName == nil {
32657		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
32658	}
32659	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
32660		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
32661	}
32662
32663	if invalidParams.Len() > 0 {
32664		return invalidParams
32665	}
32666	return nil
32667}
32668
32669// SetTemplateName sets the TemplateName field's value.
32670func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
32671	s.TemplateName = &v
32672	return s
32673}
32674
32675type DeleteProvisioningTemplateOutput struct {
32676	_ struct{} `type:"structure"`
32677}
32678
32679// String returns the string representation
32680func (s DeleteProvisioningTemplateOutput) String() string {
32681	return awsutil.Prettify(s)
32682}
32683
32684// GoString returns the string representation
32685func (s DeleteProvisioningTemplateOutput) GoString() string {
32686	return s.String()
32687}
32688
32689type DeleteProvisioningTemplateVersionInput struct {
32690	_ struct{} `type:"structure"`
32691
32692	// The name of the fleet provisioning template version to delete.
32693	//
32694	// TemplateName is a required field
32695	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
32696
32697	// The fleet provisioning template version ID to delete.
32698	//
32699	// VersionId is a required field
32700	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
32701}
32702
32703// String returns the string representation
32704func (s DeleteProvisioningTemplateVersionInput) String() string {
32705	return awsutil.Prettify(s)
32706}
32707
32708// GoString returns the string representation
32709func (s DeleteProvisioningTemplateVersionInput) GoString() string {
32710	return s.String()
32711}
32712
32713// Validate inspects the fields of the type to determine if they are valid.
32714func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
32715	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
32716	if s.TemplateName == nil {
32717		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
32718	}
32719	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
32720		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
32721	}
32722	if s.VersionId == nil {
32723		invalidParams.Add(request.NewErrParamRequired("VersionId"))
32724	}
32725
32726	if invalidParams.Len() > 0 {
32727		return invalidParams
32728	}
32729	return nil
32730}
32731
32732// SetTemplateName sets the TemplateName field's value.
32733func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
32734	s.TemplateName = &v
32735	return s
32736}
32737
32738// SetVersionId sets the VersionId field's value.
32739func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
32740	s.VersionId = &v
32741	return s
32742}
32743
32744type DeleteProvisioningTemplateVersionOutput struct {
32745	_ struct{} `type:"structure"`
32746}
32747
32748// String returns the string representation
32749func (s DeleteProvisioningTemplateVersionOutput) String() string {
32750	return awsutil.Prettify(s)
32751}
32752
32753// GoString returns the string representation
32754func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
32755	return s.String()
32756}
32757
32758// The input for the DeleteRegistrationCode operation.
32759type DeleteRegistrationCodeInput struct {
32760	_ struct{} `type:"structure"`
32761}
32762
32763// String returns the string representation
32764func (s DeleteRegistrationCodeInput) String() string {
32765	return awsutil.Prettify(s)
32766}
32767
32768// GoString returns the string representation
32769func (s DeleteRegistrationCodeInput) GoString() string {
32770	return s.String()
32771}
32772
32773// The output for the DeleteRegistrationCode operation.
32774type DeleteRegistrationCodeOutput struct {
32775	_ struct{} `type:"structure"`
32776}
32777
32778// String returns the string representation
32779func (s DeleteRegistrationCodeOutput) String() string {
32780	return awsutil.Prettify(s)
32781}
32782
32783// GoString returns the string representation
32784func (s DeleteRegistrationCodeOutput) GoString() string {
32785	return s.String()
32786}
32787
32788type DeleteRoleAliasInput struct {
32789	_ struct{} `type:"structure"`
32790
32791	// The role alias to delete.
32792	//
32793	// RoleAlias is a required field
32794	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
32795}
32796
32797// String returns the string representation
32798func (s DeleteRoleAliasInput) String() string {
32799	return awsutil.Prettify(s)
32800}
32801
32802// GoString returns the string representation
32803func (s DeleteRoleAliasInput) GoString() string {
32804	return s.String()
32805}
32806
32807// Validate inspects the fields of the type to determine if they are valid.
32808func (s *DeleteRoleAliasInput) Validate() error {
32809	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
32810	if s.RoleAlias == nil {
32811		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
32812	}
32813	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
32814		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
32815	}
32816
32817	if invalidParams.Len() > 0 {
32818		return invalidParams
32819	}
32820	return nil
32821}
32822
32823// SetRoleAlias sets the RoleAlias field's value.
32824func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
32825	s.RoleAlias = &v
32826	return s
32827}
32828
32829type DeleteRoleAliasOutput struct {
32830	_ struct{} `type:"structure"`
32831}
32832
32833// String returns the string representation
32834func (s DeleteRoleAliasOutput) String() string {
32835	return awsutil.Prettify(s)
32836}
32837
32838// GoString returns the string representation
32839func (s DeleteRoleAliasOutput) GoString() string {
32840	return s.String()
32841}
32842
32843type DeleteScheduledAuditInput struct {
32844	_ struct{} `type:"structure"`
32845
32846	// The name of the scheduled audit you want to delete.
32847	//
32848	// ScheduledAuditName is a required field
32849	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
32850}
32851
32852// String returns the string representation
32853func (s DeleteScheduledAuditInput) String() string {
32854	return awsutil.Prettify(s)
32855}
32856
32857// GoString returns the string representation
32858func (s DeleteScheduledAuditInput) GoString() string {
32859	return s.String()
32860}
32861
32862// Validate inspects the fields of the type to determine if they are valid.
32863func (s *DeleteScheduledAuditInput) Validate() error {
32864	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
32865	if s.ScheduledAuditName == nil {
32866		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
32867	}
32868	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
32869		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
32870	}
32871
32872	if invalidParams.Len() > 0 {
32873		return invalidParams
32874	}
32875	return nil
32876}
32877
32878// SetScheduledAuditName sets the ScheduledAuditName field's value.
32879func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
32880	s.ScheduledAuditName = &v
32881	return s
32882}
32883
32884type DeleteScheduledAuditOutput struct {
32885	_ struct{} `type:"structure"`
32886}
32887
32888// String returns the string representation
32889func (s DeleteScheduledAuditOutput) String() string {
32890	return awsutil.Prettify(s)
32891}
32892
32893// GoString returns the string representation
32894func (s DeleteScheduledAuditOutput) GoString() string {
32895	return s.String()
32896}
32897
32898type DeleteSecurityProfileInput struct {
32899	_ struct{} `type:"structure"`
32900
32901	// The expected version of the security profile. A new version is generated
32902	// whenever the security profile is updated. If you specify a value that is
32903	// different from the actual version, a VersionConflictException is thrown.
32904	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32905
32906	// The name of the security profile to be deleted.
32907	//
32908	// SecurityProfileName is a required field
32909	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
32910}
32911
32912// String returns the string representation
32913func (s DeleteSecurityProfileInput) String() string {
32914	return awsutil.Prettify(s)
32915}
32916
32917// GoString returns the string representation
32918func (s DeleteSecurityProfileInput) GoString() string {
32919	return s.String()
32920}
32921
32922// Validate inspects the fields of the type to determine if they are valid.
32923func (s *DeleteSecurityProfileInput) Validate() error {
32924	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
32925	if s.SecurityProfileName == nil {
32926		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
32927	}
32928	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
32929		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
32930	}
32931
32932	if invalidParams.Len() > 0 {
32933		return invalidParams
32934	}
32935	return nil
32936}
32937
32938// SetExpectedVersion sets the ExpectedVersion field's value.
32939func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
32940	s.ExpectedVersion = &v
32941	return s
32942}
32943
32944// SetSecurityProfileName sets the SecurityProfileName field's value.
32945func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
32946	s.SecurityProfileName = &v
32947	return s
32948}
32949
32950type DeleteSecurityProfileOutput struct {
32951	_ struct{} `type:"structure"`
32952}
32953
32954// String returns the string representation
32955func (s DeleteSecurityProfileOutput) String() string {
32956	return awsutil.Prettify(s)
32957}
32958
32959// GoString returns the string representation
32960func (s DeleteSecurityProfileOutput) GoString() string {
32961	return s.String()
32962}
32963
32964type DeleteStreamInput struct {
32965	_ struct{} `type:"structure"`
32966
32967	// The stream ID.
32968	//
32969	// StreamId is a required field
32970	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
32971}
32972
32973// String returns the string representation
32974func (s DeleteStreamInput) String() string {
32975	return awsutil.Prettify(s)
32976}
32977
32978// GoString returns the string representation
32979func (s DeleteStreamInput) GoString() string {
32980	return s.String()
32981}
32982
32983// Validate inspects the fields of the type to determine if they are valid.
32984func (s *DeleteStreamInput) Validate() error {
32985	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
32986	if s.StreamId == nil {
32987		invalidParams.Add(request.NewErrParamRequired("StreamId"))
32988	}
32989	if s.StreamId != nil && len(*s.StreamId) < 1 {
32990		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
32991	}
32992
32993	if invalidParams.Len() > 0 {
32994		return invalidParams
32995	}
32996	return nil
32997}
32998
32999// SetStreamId sets the StreamId field's value.
33000func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
33001	s.StreamId = &v
33002	return s
33003}
33004
33005type DeleteStreamOutput struct {
33006	_ struct{} `type:"structure"`
33007}
33008
33009// String returns the string representation
33010func (s DeleteStreamOutput) String() string {
33011	return awsutil.Prettify(s)
33012}
33013
33014// GoString returns the string representation
33015func (s DeleteStreamOutput) GoString() string {
33016	return s.String()
33017}
33018
33019type DeleteThingGroupInput struct {
33020	_ struct{} `type:"structure"`
33021
33022	// The expected version of the thing group to delete.
33023	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33024
33025	// The name of the thing group to delete.
33026	//
33027	// ThingGroupName is a required field
33028	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
33029}
33030
33031// String returns the string representation
33032func (s DeleteThingGroupInput) String() string {
33033	return awsutil.Prettify(s)
33034}
33035
33036// GoString returns the string representation
33037func (s DeleteThingGroupInput) GoString() string {
33038	return s.String()
33039}
33040
33041// Validate inspects the fields of the type to determine if they are valid.
33042func (s *DeleteThingGroupInput) Validate() error {
33043	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
33044	if s.ThingGroupName == nil {
33045		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
33046	}
33047	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
33048		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
33049	}
33050
33051	if invalidParams.Len() > 0 {
33052		return invalidParams
33053	}
33054	return nil
33055}
33056
33057// SetExpectedVersion sets the ExpectedVersion field's value.
33058func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
33059	s.ExpectedVersion = &v
33060	return s
33061}
33062
33063// SetThingGroupName sets the ThingGroupName field's value.
33064func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
33065	s.ThingGroupName = &v
33066	return s
33067}
33068
33069type DeleteThingGroupOutput struct {
33070	_ struct{} `type:"structure"`
33071}
33072
33073// String returns the string representation
33074func (s DeleteThingGroupOutput) String() string {
33075	return awsutil.Prettify(s)
33076}
33077
33078// GoString returns the string representation
33079func (s DeleteThingGroupOutput) GoString() string {
33080	return s.String()
33081}
33082
33083// The input for the DeleteThing operation.
33084type DeleteThingInput struct {
33085	_ struct{} `type:"structure"`
33086
33087	// The expected version of the thing record in the registry. If the version
33088	// of the record in the registry does not match the expected version specified
33089	// in the request, the DeleteThing request is rejected with a VersionConflictException.
33090	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33091
33092	// The name of the thing to delete.
33093	//
33094	// ThingName is a required field
33095	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
33096}
33097
33098// String returns the string representation
33099func (s DeleteThingInput) String() string {
33100	return awsutil.Prettify(s)
33101}
33102
33103// GoString returns the string representation
33104func (s DeleteThingInput) GoString() string {
33105	return s.String()
33106}
33107
33108// Validate inspects the fields of the type to determine if they are valid.
33109func (s *DeleteThingInput) Validate() error {
33110	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
33111	if s.ThingName == nil {
33112		invalidParams.Add(request.NewErrParamRequired("ThingName"))
33113	}
33114	if s.ThingName != nil && len(*s.ThingName) < 1 {
33115		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
33116	}
33117
33118	if invalidParams.Len() > 0 {
33119		return invalidParams
33120	}
33121	return nil
33122}
33123
33124// SetExpectedVersion sets the ExpectedVersion field's value.
33125func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
33126	s.ExpectedVersion = &v
33127	return s
33128}
33129
33130// SetThingName sets the ThingName field's value.
33131func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
33132	s.ThingName = &v
33133	return s
33134}
33135
33136// The output of the DeleteThing operation.
33137type DeleteThingOutput struct {
33138	_ struct{} `type:"structure"`
33139}
33140
33141// String returns the string representation
33142func (s DeleteThingOutput) String() string {
33143	return awsutil.Prettify(s)
33144}
33145
33146// GoString returns the string representation
33147func (s DeleteThingOutput) GoString() string {
33148	return s.String()
33149}
33150
33151// The input for the DeleteThingType operation.
33152type DeleteThingTypeInput struct {
33153	_ struct{} `type:"structure"`
33154
33155	// The name of the thing type.
33156	//
33157	// ThingTypeName is a required field
33158	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
33159}
33160
33161// String returns the string representation
33162func (s DeleteThingTypeInput) String() string {
33163	return awsutil.Prettify(s)
33164}
33165
33166// GoString returns the string representation
33167func (s DeleteThingTypeInput) GoString() string {
33168	return s.String()
33169}
33170
33171// Validate inspects the fields of the type to determine if they are valid.
33172func (s *DeleteThingTypeInput) Validate() error {
33173	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
33174	if s.ThingTypeName == nil {
33175		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
33176	}
33177	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33178		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33179	}
33180
33181	if invalidParams.Len() > 0 {
33182		return invalidParams
33183	}
33184	return nil
33185}
33186
33187// SetThingTypeName sets the ThingTypeName field's value.
33188func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
33189	s.ThingTypeName = &v
33190	return s
33191}
33192
33193// The output for the DeleteThingType operation.
33194type DeleteThingTypeOutput struct {
33195	_ struct{} `type:"structure"`
33196}
33197
33198// String returns the string representation
33199func (s DeleteThingTypeOutput) String() string {
33200	return awsutil.Prettify(s)
33201}
33202
33203// GoString returns the string representation
33204func (s DeleteThingTypeOutput) GoString() string {
33205	return s.String()
33206}
33207
33208type DeleteTopicRuleDestinationInput struct {
33209	_ struct{} `type:"structure"`
33210
33211	// The ARN of the topic rule destination to delete.
33212	//
33213	// Arn is a required field
33214	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
33215}
33216
33217// String returns the string representation
33218func (s DeleteTopicRuleDestinationInput) String() string {
33219	return awsutil.Prettify(s)
33220}
33221
33222// GoString returns the string representation
33223func (s DeleteTopicRuleDestinationInput) GoString() string {
33224	return s.String()
33225}
33226
33227// Validate inspects the fields of the type to determine if they are valid.
33228func (s *DeleteTopicRuleDestinationInput) Validate() error {
33229	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
33230	if s.Arn == nil {
33231		invalidParams.Add(request.NewErrParamRequired("Arn"))
33232	}
33233	if s.Arn != nil && len(*s.Arn) < 1 {
33234		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
33235	}
33236
33237	if invalidParams.Len() > 0 {
33238		return invalidParams
33239	}
33240	return nil
33241}
33242
33243// SetArn sets the Arn field's value.
33244func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
33245	s.Arn = &v
33246	return s
33247}
33248
33249type DeleteTopicRuleDestinationOutput struct {
33250	_ struct{} `type:"structure"`
33251}
33252
33253// String returns the string representation
33254func (s DeleteTopicRuleDestinationOutput) String() string {
33255	return awsutil.Prettify(s)
33256}
33257
33258// GoString returns the string representation
33259func (s DeleteTopicRuleDestinationOutput) GoString() string {
33260	return s.String()
33261}
33262
33263// The input for the DeleteTopicRule operation.
33264type DeleteTopicRuleInput struct {
33265	_ struct{} `type:"structure"`
33266
33267	// The name of the rule.
33268	//
33269	// RuleName is a required field
33270	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
33271}
33272
33273// String returns the string representation
33274func (s DeleteTopicRuleInput) String() string {
33275	return awsutil.Prettify(s)
33276}
33277
33278// GoString returns the string representation
33279func (s DeleteTopicRuleInput) GoString() string {
33280	return s.String()
33281}
33282
33283// Validate inspects the fields of the type to determine if they are valid.
33284func (s *DeleteTopicRuleInput) Validate() error {
33285	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
33286	if s.RuleName == nil {
33287		invalidParams.Add(request.NewErrParamRequired("RuleName"))
33288	}
33289	if s.RuleName != nil && len(*s.RuleName) < 1 {
33290		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
33291	}
33292
33293	if invalidParams.Len() > 0 {
33294		return invalidParams
33295	}
33296	return nil
33297}
33298
33299// SetRuleName sets the RuleName field's value.
33300func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
33301	s.RuleName = &v
33302	return s
33303}
33304
33305type DeleteTopicRuleOutput struct {
33306	_ struct{} `type:"structure"`
33307}
33308
33309// String returns the string representation
33310func (s DeleteTopicRuleOutput) String() string {
33311	return awsutil.Prettify(s)
33312}
33313
33314// GoString returns the string representation
33315func (s DeleteTopicRuleOutput) GoString() string {
33316	return s.String()
33317}
33318
33319type DeleteV2LoggingLevelInput struct {
33320	_ struct{} `type:"structure"`
33321
33322	// The name of the resource for which you are configuring logging.
33323	//
33324	// TargetName is a required field
33325	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
33326
33327	// The type of resource for which you are configuring logging. Must be THING_Group.
33328	//
33329	// TargetType is a required field
33330	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
33331}
33332
33333// String returns the string representation
33334func (s DeleteV2LoggingLevelInput) String() string {
33335	return awsutil.Prettify(s)
33336}
33337
33338// GoString returns the string representation
33339func (s DeleteV2LoggingLevelInput) GoString() string {
33340	return s.String()
33341}
33342
33343// Validate inspects the fields of the type to determine if they are valid.
33344func (s *DeleteV2LoggingLevelInput) Validate() error {
33345	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
33346	if s.TargetName == nil {
33347		invalidParams.Add(request.NewErrParamRequired("TargetName"))
33348	}
33349	if s.TargetType == nil {
33350		invalidParams.Add(request.NewErrParamRequired("TargetType"))
33351	}
33352
33353	if invalidParams.Len() > 0 {
33354		return invalidParams
33355	}
33356	return nil
33357}
33358
33359// SetTargetName sets the TargetName field's value.
33360func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
33361	s.TargetName = &v
33362	return s
33363}
33364
33365// SetTargetType sets the TargetType field's value.
33366func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
33367	s.TargetType = &v
33368	return s
33369}
33370
33371type DeleteV2LoggingLevelOutput struct {
33372	_ struct{} `type:"structure"`
33373}
33374
33375// String returns the string representation
33376func (s DeleteV2LoggingLevelOutput) String() string {
33377	return awsutil.Prettify(s)
33378}
33379
33380// GoString returns the string representation
33381func (s DeleteV2LoggingLevelOutput) GoString() string {
33382	return s.String()
33383}
33384
33385// Contains information that denied the authorization.
33386type Denied struct {
33387	_ struct{} `type:"structure"`
33388
33389	// Information that explicitly denies the authorization.
33390	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
33391
33392	// Information that implicitly denies the authorization. When a policy doesn't
33393	// explicitly deny or allow an action on a resource it is considered an implicit
33394	// deny.
33395	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
33396}
33397
33398// String returns the string representation
33399func (s Denied) String() string {
33400	return awsutil.Prettify(s)
33401}
33402
33403// GoString returns the string representation
33404func (s Denied) GoString() string {
33405	return s.String()
33406}
33407
33408// SetExplicitDeny sets the ExplicitDeny field's value.
33409func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
33410	s.ExplicitDeny = v
33411	return s
33412}
33413
33414// SetImplicitDeny sets the ImplicitDeny field's value.
33415func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
33416	s.ImplicitDeny = v
33417	return s
33418}
33419
33420// The input for the DeprecateThingType operation.
33421type DeprecateThingTypeInput struct {
33422	_ struct{} `type:"structure"`
33423
33424	// The name of the thing type to deprecate.
33425	//
33426	// ThingTypeName is a required field
33427	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
33428
33429	// Whether to undeprecate a deprecated thing type. If true, the thing type will
33430	// not be deprecated anymore and you can associate it with things.
33431	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
33432}
33433
33434// String returns the string representation
33435func (s DeprecateThingTypeInput) String() string {
33436	return awsutil.Prettify(s)
33437}
33438
33439// GoString returns the string representation
33440func (s DeprecateThingTypeInput) GoString() string {
33441	return s.String()
33442}
33443
33444// Validate inspects the fields of the type to determine if they are valid.
33445func (s *DeprecateThingTypeInput) Validate() error {
33446	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
33447	if s.ThingTypeName == nil {
33448		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
33449	}
33450	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33451		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33452	}
33453
33454	if invalidParams.Len() > 0 {
33455		return invalidParams
33456	}
33457	return nil
33458}
33459
33460// SetThingTypeName sets the ThingTypeName field's value.
33461func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
33462	s.ThingTypeName = &v
33463	return s
33464}
33465
33466// SetUndoDeprecate sets the UndoDeprecate field's value.
33467func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
33468	s.UndoDeprecate = &v
33469	return s
33470}
33471
33472// The output for the DeprecateThingType operation.
33473type DeprecateThingTypeOutput struct {
33474	_ struct{} `type:"structure"`
33475}
33476
33477// String returns the string representation
33478func (s DeprecateThingTypeOutput) String() string {
33479	return awsutil.Prettify(s)
33480}
33481
33482// GoString returns the string representation
33483func (s DeprecateThingTypeOutput) GoString() string {
33484	return s.String()
33485}
33486
33487type DescribeAccountAuditConfigurationInput struct {
33488	_ struct{} `type:"structure"`
33489}
33490
33491// String returns the string representation
33492func (s DescribeAccountAuditConfigurationInput) String() string {
33493	return awsutil.Prettify(s)
33494}
33495
33496// GoString returns the string representation
33497func (s DescribeAccountAuditConfigurationInput) GoString() string {
33498	return s.String()
33499}
33500
33501type DescribeAccountAuditConfigurationOutput struct {
33502	_ struct{} `type:"structure"`
33503
33504	// Which audit checks are enabled and disabled for this account.
33505	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
33506
33507	// Information about the targets to which audit notifications are sent for this
33508	// account.
33509	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
33510
33511	// The ARN of the role that grants permission to AWS IoT to access information
33512	// about your devices, policies, certificates, and other items as required when
33513	// performing an audit.
33514	//
33515	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
33516	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
33517}
33518
33519// String returns the string representation
33520func (s DescribeAccountAuditConfigurationOutput) String() string {
33521	return awsutil.Prettify(s)
33522}
33523
33524// GoString returns the string representation
33525func (s DescribeAccountAuditConfigurationOutput) GoString() string {
33526	return s.String()
33527}
33528
33529// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
33530func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
33531	s.AuditCheckConfigurations = v
33532	return s
33533}
33534
33535// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
33536func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
33537	s.AuditNotificationTargetConfigurations = v
33538	return s
33539}
33540
33541// SetRoleArn sets the RoleArn field's value.
33542func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
33543	s.RoleArn = &v
33544	return s
33545}
33546
33547type DescribeAuditFindingInput struct {
33548	_ struct{} `type:"structure"`
33549
33550	// A unique identifier for a single audit finding. You can use this identifier
33551	// to apply mitigation actions to the finding.
33552	//
33553	// FindingId is a required field
33554	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
33555}
33556
33557// String returns the string representation
33558func (s DescribeAuditFindingInput) String() string {
33559	return awsutil.Prettify(s)
33560}
33561
33562// GoString returns the string representation
33563func (s DescribeAuditFindingInput) GoString() string {
33564	return s.String()
33565}
33566
33567// Validate inspects the fields of the type to determine if they are valid.
33568func (s *DescribeAuditFindingInput) Validate() error {
33569	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
33570	if s.FindingId == nil {
33571		invalidParams.Add(request.NewErrParamRequired("FindingId"))
33572	}
33573	if s.FindingId != nil && len(*s.FindingId) < 1 {
33574		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
33575	}
33576
33577	if invalidParams.Len() > 0 {
33578		return invalidParams
33579	}
33580	return nil
33581}
33582
33583// SetFindingId sets the FindingId field's value.
33584func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
33585	s.FindingId = &v
33586	return s
33587}
33588
33589type DescribeAuditFindingOutput struct {
33590	_ struct{} `type:"structure"`
33591
33592	// The findings (results) of the audit.
33593	Finding *AuditFinding `locationName:"finding" type:"structure"`
33594}
33595
33596// String returns the string representation
33597func (s DescribeAuditFindingOutput) String() string {
33598	return awsutil.Prettify(s)
33599}
33600
33601// GoString returns the string representation
33602func (s DescribeAuditFindingOutput) GoString() string {
33603	return s.String()
33604}
33605
33606// SetFinding sets the Finding field's value.
33607func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
33608	s.Finding = v
33609	return s
33610}
33611
33612type DescribeAuditMitigationActionsTaskInput struct {
33613	_ struct{} `type:"structure"`
33614
33615	// The unique identifier for the audit mitigation task.
33616	//
33617	// TaskId is a required field
33618	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
33619}
33620
33621// String returns the string representation
33622func (s DescribeAuditMitigationActionsTaskInput) String() string {
33623	return awsutil.Prettify(s)
33624}
33625
33626// GoString returns the string representation
33627func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
33628	return s.String()
33629}
33630
33631// Validate inspects the fields of the type to determine if they are valid.
33632func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
33633	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
33634	if s.TaskId == nil {
33635		invalidParams.Add(request.NewErrParamRequired("TaskId"))
33636	}
33637	if s.TaskId != nil && len(*s.TaskId) < 1 {
33638		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
33639	}
33640
33641	if invalidParams.Len() > 0 {
33642		return invalidParams
33643	}
33644	return nil
33645}
33646
33647// SetTaskId sets the TaskId field's value.
33648func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
33649	s.TaskId = &v
33650	return s
33651}
33652
33653type DescribeAuditMitigationActionsTaskOutput struct {
33654	_ struct{} `type:"structure"`
33655
33656	// Specifies the mitigation actions and their parameters that are applied as
33657	// part of this task.
33658	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
33659
33660	// Specifies the mitigation actions that should be applied to specific audit
33661	// checks.
33662	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
33663
33664	// The date and time when the task was completed or canceled.
33665	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
33666
33667	// The date and time when the task was started.
33668	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
33669
33670	// Identifies the findings to which the mitigation actions are applied. This
33671	// can be by audit checks, by audit task, or a set of findings.
33672	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
33673
33674	// Aggregate counts of the results when the mitigation tasks were applied to
33675	// the findings for this audit mitigation actions task.
33676	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
33677
33678	// The current status of the task.
33679	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
33680}
33681
33682// String returns the string representation
33683func (s DescribeAuditMitigationActionsTaskOutput) String() string {
33684	return awsutil.Prettify(s)
33685}
33686
33687// GoString returns the string representation
33688func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
33689	return s.String()
33690}
33691
33692// SetActionsDefinition sets the ActionsDefinition field's value.
33693func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
33694	s.ActionsDefinition = v
33695	return s
33696}
33697
33698// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
33699func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
33700	s.AuditCheckToActionsMapping = v
33701	return s
33702}
33703
33704// SetEndTime sets the EndTime field's value.
33705func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
33706	s.EndTime = &v
33707	return s
33708}
33709
33710// SetStartTime sets the StartTime field's value.
33711func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
33712	s.StartTime = &v
33713	return s
33714}
33715
33716// SetTarget sets the Target field's value.
33717func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
33718	s.Target = v
33719	return s
33720}
33721
33722// SetTaskStatistics sets the TaskStatistics field's value.
33723func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
33724	s.TaskStatistics = v
33725	return s
33726}
33727
33728// SetTaskStatus sets the TaskStatus field's value.
33729func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
33730	s.TaskStatus = &v
33731	return s
33732}
33733
33734type DescribeAuditSuppressionInput struct {
33735	_ struct{} `type:"structure"`
33736
33737	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
33738	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
33739	// to select which checks are enabled.)
33740	//
33741	// CheckName is a required field
33742	CheckName *string `locationName:"checkName" type:"string" required:"true"`
33743
33744	// Information that identifies the noncompliant resource.
33745	//
33746	// ResourceIdentifier is a required field
33747	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
33748}
33749
33750// String returns the string representation
33751func (s DescribeAuditSuppressionInput) String() string {
33752	return awsutil.Prettify(s)
33753}
33754
33755// GoString returns the string representation
33756func (s DescribeAuditSuppressionInput) GoString() string {
33757	return s.String()
33758}
33759
33760// Validate inspects the fields of the type to determine if they are valid.
33761func (s *DescribeAuditSuppressionInput) Validate() error {
33762	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
33763	if s.CheckName == nil {
33764		invalidParams.Add(request.NewErrParamRequired("CheckName"))
33765	}
33766	if s.ResourceIdentifier == nil {
33767		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
33768	}
33769	if s.ResourceIdentifier != nil {
33770		if err := s.ResourceIdentifier.Validate(); err != nil {
33771			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
33772		}
33773	}
33774
33775	if invalidParams.Len() > 0 {
33776		return invalidParams
33777	}
33778	return nil
33779}
33780
33781// SetCheckName sets the CheckName field's value.
33782func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
33783	s.CheckName = &v
33784	return s
33785}
33786
33787// SetResourceIdentifier sets the ResourceIdentifier field's value.
33788func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
33789	s.ResourceIdentifier = v
33790	return s
33791}
33792
33793type DescribeAuditSuppressionOutput struct {
33794	_ struct{} `type:"structure"`
33795
33796	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
33797	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
33798	// to select which checks are enabled.)
33799	CheckName *string `locationName:"checkName" type:"string"`
33800
33801	// The description of the audit suppression.
33802	Description *string `locationName:"description" type:"string"`
33803
33804	// The epoch timestamp in seconds at which this suppression expires.
33805	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
33806
33807	// Information that identifies the noncompliant resource.
33808	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
33809
33810	// Indicates whether a suppression should exist indefinitely or not.
33811	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
33812}
33813
33814// String returns the string representation
33815func (s DescribeAuditSuppressionOutput) String() string {
33816	return awsutil.Prettify(s)
33817}
33818
33819// GoString returns the string representation
33820func (s DescribeAuditSuppressionOutput) GoString() string {
33821	return s.String()
33822}
33823
33824// SetCheckName sets the CheckName field's value.
33825func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
33826	s.CheckName = &v
33827	return s
33828}
33829
33830// SetDescription sets the Description field's value.
33831func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
33832	s.Description = &v
33833	return s
33834}
33835
33836// SetExpirationDate sets the ExpirationDate field's value.
33837func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
33838	s.ExpirationDate = &v
33839	return s
33840}
33841
33842// SetResourceIdentifier sets the ResourceIdentifier field's value.
33843func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
33844	s.ResourceIdentifier = v
33845	return s
33846}
33847
33848// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
33849func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
33850	s.SuppressIndefinitely = &v
33851	return s
33852}
33853
33854type DescribeAuditTaskInput struct {
33855	_ struct{} `type:"structure"`
33856
33857	// The ID of the audit whose information you want to get.
33858	//
33859	// TaskId is a required field
33860	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
33861}
33862
33863// String returns the string representation
33864func (s DescribeAuditTaskInput) String() string {
33865	return awsutil.Prettify(s)
33866}
33867
33868// GoString returns the string representation
33869func (s DescribeAuditTaskInput) GoString() string {
33870	return s.String()
33871}
33872
33873// Validate inspects the fields of the type to determine if they are valid.
33874func (s *DescribeAuditTaskInput) Validate() error {
33875	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
33876	if s.TaskId == nil {
33877		invalidParams.Add(request.NewErrParamRequired("TaskId"))
33878	}
33879	if s.TaskId != nil && len(*s.TaskId) < 1 {
33880		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
33881	}
33882
33883	if invalidParams.Len() > 0 {
33884		return invalidParams
33885	}
33886	return nil
33887}
33888
33889// SetTaskId sets the TaskId field's value.
33890func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
33891	s.TaskId = &v
33892	return s
33893}
33894
33895type DescribeAuditTaskOutput struct {
33896	_ struct{} `type:"structure"`
33897
33898	// Detailed information about each check performed during this audit.
33899	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
33900
33901	// The name of the scheduled audit (only if the audit was a scheduled audit).
33902	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
33903
33904	// The time the audit started.
33905	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
33906
33907	// Statistical information about the audit.
33908	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
33909
33910	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
33911	// "CANCELED".
33912	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
33913
33914	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
33915	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
33916}
33917
33918// String returns the string representation
33919func (s DescribeAuditTaskOutput) String() string {
33920	return awsutil.Prettify(s)
33921}
33922
33923// GoString returns the string representation
33924func (s DescribeAuditTaskOutput) GoString() string {
33925	return s.String()
33926}
33927
33928// SetAuditDetails sets the AuditDetails field's value.
33929func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
33930	s.AuditDetails = v
33931	return s
33932}
33933
33934// SetScheduledAuditName sets the ScheduledAuditName field's value.
33935func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
33936	s.ScheduledAuditName = &v
33937	return s
33938}
33939
33940// SetTaskStartTime sets the TaskStartTime field's value.
33941func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
33942	s.TaskStartTime = &v
33943	return s
33944}
33945
33946// SetTaskStatistics sets the TaskStatistics field's value.
33947func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
33948	s.TaskStatistics = v
33949	return s
33950}
33951
33952// SetTaskStatus sets the TaskStatus field's value.
33953func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
33954	s.TaskStatus = &v
33955	return s
33956}
33957
33958// SetTaskType sets the TaskType field's value.
33959func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
33960	s.TaskType = &v
33961	return s
33962}
33963
33964type DescribeAuthorizerInput struct {
33965	_ struct{} `type:"structure"`
33966
33967	// The name of the authorizer to describe.
33968	//
33969	// AuthorizerName is a required field
33970	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
33971}
33972
33973// String returns the string representation
33974func (s DescribeAuthorizerInput) String() string {
33975	return awsutil.Prettify(s)
33976}
33977
33978// GoString returns the string representation
33979func (s DescribeAuthorizerInput) GoString() string {
33980	return s.String()
33981}
33982
33983// Validate inspects the fields of the type to determine if they are valid.
33984func (s *DescribeAuthorizerInput) Validate() error {
33985	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
33986	if s.AuthorizerName == nil {
33987		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
33988	}
33989	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
33990		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
33991	}
33992
33993	if invalidParams.Len() > 0 {
33994		return invalidParams
33995	}
33996	return nil
33997}
33998
33999// SetAuthorizerName sets the AuthorizerName field's value.
34000func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
34001	s.AuthorizerName = &v
34002	return s
34003}
34004
34005type DescribeAuthorizerOutput struct {
34006	_ struct{} `type:"structure"`
34007
34008	// The authorizer description.
34009	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
34010}
34011
34012// String returns the string representation
34013func (s DescribeAuthorizerOutput) String() string {
34014	return awsutil.Prettify(s)
34015}
34016
34017// GoString returns the string representation
34018func (s DescribeAuthorizerOutput) GoString() string {
34019	return s.String()
34020}
34021
34022// SetAuthorizerDescription sets the AuthorizerDescription field's value.
34023func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
34024	s.AuthorizerDescription = v
34025	return s
34026}
34027
34028type DescribeBillingGroupInput struct {
34029	_ struct{} `type:"structure"`
34030
34031	// The name of the billing group.
34032	//
34033	// BillingGroupName is a required field
34034	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
34035}
34036
34037// String returns the string representation
34038func (s DescribeBillingGroupInput) String() string {
34039	return awsutil.Prettify(s)
34040}
34041
34042// GoString returns the string representation
34043func (s DescribeBillingGroupInput) GoString() string {
34044	return s.String()
34045}
34046
34047// Validate inspects the fields of the type to determine if they are valid.
34048func (s *DescribeBillingGroupInput) Validate() error {
34049	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
34050	if s.BillingGroupName == nil {
34051		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
34052	}
34053	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
34054		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
34055	}
34056
34057	if invalidParams.Len() > 0 {
34058		return invalidParams
34059	}
34060	return nil
34061}
34062
34063// SetBillingGroupName sets the BillingGroupName field's value.
34064func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
34065	s.BillingGroupName = &v
34066	return s
34067}
34068
34069type DescribeBillingGroupOutput struct {
34070	_ struct{} `type:"structure"`
34071
34072	// The ARN of the billing group.
34073	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
34074
34075	// The ID of the billing group.
34076	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
34077
34078	// Additional information about the billing group.
34079	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
34080
34081	// The name of the billing group.
34082	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
34083
34084	// The properties of the billing group.
34085	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
34086
34087	// The version of the billing group.
34088	Version *int64 `locationName:"version" type:"long"`
34089}
34090
34091// String returns the string representation
34092func (s DescribeBillingGroupOutput) String() string {
34093	return awsutil.Prettify(s)
34094}
34095
34096// GoString returns the string representation
34097func (s DescribeBillingGroupOutput) GoString() string {
34098	return s.String()
34099}
34100
34101// SetBillingGroupArn sets the BillingGroupArn field's value.
34102func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
34103	s.BillingGroupArn = &v
34104	return s
34105}
34106
34107// SetBillingGroupId sets the BillingGroupId field's value.
34108func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
34109	s.BillingGroupId = &v
34110	return s
34111}
34112
34113// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
34114func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
34115	s.BillingGroupMetadata = v
34116	return s
34117}
34118
34119// SetBillingGroupName sets the BillingGroupName field's value.
34120func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
34121	s.BillingGroupName = &v
34122	return s
34123}
34124
34125// SetBillingGroupProperties sets the BillingGroupProperties field's value.
34126func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
34127	s.BillingGroupProperties = v
34128	return s
34129}
34130
34131// SetVersion sets the Version field's value.
34132func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
34133	s.Version = &v
34134	return s
34135}
34136
34137// The input for the DescribeCACertificate operation.
34138type DescribeCACertificateInput struct {
34139	_ struct{} `type:"structure"`
34140
34141	// The CA certificate identifier.
34142	//
34143	// CertificateId is a required field
34144	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
34145}
34146
34147// String returns the string representation
34148func (s DescribeCACertificateInput) String() string {
34149	return awsutil.Prettify(s)
34150}
34151
34152// GoString returns the string representation
34153func (s DescribeCACertificateInput) GoString() string {
34154	return s.String()
34155}
34156
34157// Validate inspects the fields of the type to determine if they are valid.
34158func (s *DescribeCACertificateInput) Validate() error {
34159	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
34160	if s.CertificateId == nil {
34161		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34162	}
34163	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34164		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34165	}
34166
34167	if invalidParams.Len() > 0 {
34168		return invalidParams
34169	}
34170	return nil
34171}
34172
34173// SetCertificateId sets the CertificateId field's value.
34174func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
34175	s.CertificateId = &v
34176	return s
34177}
34178
34179// The output from the DescribeCACertificate operation.
34180type DescribeCACertificateOutput struct {
34181	_ struct{} `type:"structure"`
34182
34183	// The CA certificate description.
34184	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
34185
34186	// Information about the registration configuration.
34187	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
34188}
34189
34190// String returns the string representation
34191func (s DescribeCACertificateOutput) String() string {
34192	return awsutil.Prettify(s)
34193}
34194
34195// GoString returns the string representation
34196func (s DescribeCACertificateOutput) GoString() string {
34197	return s.String()
34198}
34199
34200// SetCertificateDescription sets the CertificateDescription field's value.
34201func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
34202	s.CertificateDescription = v
34203	return s
34204}
34205
34206// SetRegistrationConfig sets the RegistrationConfig field's value.
34207func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
34208	s.RegistrationConfig = v
34209	return s
34210}
34211
34212// The input for the DescribeCertificate operation.
34213type DescribeCertificateInput struct {
34214	_ struct{} `type:"structure"`
34215
34216	// The ID of the certificate. (The last part of the certificate ARN contains
34217	// the certificate ID.)
34218	//
34219	// CertificateId is a required field
34220	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
34221}
34222
34223// String returns the string representation
34224func (s DescribeCertificateInput) String() string {
34225	return awsutil.Prettify(s)
34226}
34227
34228// GoString returns the string representation
34229func (s DescribeCertificateInput) GoString() string {
34230	return s.String()
34231}
34232
34233// Validate inspects the fields of the type to determine if they are valid.
34234func (s *DescribeCertificateInput) Validate() error {
34235	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
34236	if s.CertificateId == nil {
34237		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34238	}
34239	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34240		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34241	}
34242
34243	if invalidParams.Len() > 0 {
34244		return invalidParams
34245	}
34246	return nil
34247}
34248
34249// SetCertificateId sets the CertificateId field's value.
34250func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
34251	s.CertificateId = &v
34252	return s
34253}
34254
34255// The output of the DescribeCertificate operation.
34256type DescribeCertificateOutput struct {
34257	_ struct{} `type:"structure"`
34258
34259	// The description of the certificate.
34260	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
34261}
34262
34263// String returns the string representation
34264func (s DescribeCertificateOutput) String() string {
34265	return awsutil.Prettify(s)
34266}
34267
34268// GoString returns the string representation
34269func (s DescribeCertificateOutput) GoString() string {
34270	return s.String()
34271}
34272
34273// SetCertificateDescription sets the CertificateDescription field's value.
34274func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
34275	s.CertificateDescription = v
34276	return s
34277}
34278
34279type DescribeCustomMetricInput struct {
34280	_ struct{} `type:"structure"`
34281
34282	// The name of the custom metric.
34283	//
34284	// MetricName is a required field
34285	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
34286}
34287
34288// String returns the string representation
34289func (s DescribeCustomMetricInput) String() string {
34290	return awsutil.Prettify(s)
34291}
34292
34293// GoString returns the string representation
34294func (s DescribeCustomMetricInput) GoString() string {
34295	return s.String()
34296}
34297
34298// Validate inspects the fields of the type to determine if they are valid.
34299func (s *DescribeCustomMetricInput) Validate() error {
34300	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
34301	if s.MetricName == nil {
34302		invalidParams.Add(request.NewErrParamRequired("MetricName"))
34303	}
34304	if s.MetricName != nil && len(*s.MetricName) < 1 {
34305		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
34306	}
34307
34308	if invalidParams.Len() > 0 {
34309		return invalidParams
34310	}
34311	return nil
34312}
34313
34314// SetMetricName sets the MetricName field's value.
34315func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
34316	s.MetricName = &v
34317	return s
34318}
34319
34320type DescribeCustomMetricOutput struct {
34321	_ struct{} `type:"structure"`
34322
34323	// The creation date of the custom metric in milliseconds since epoch.
34324	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
34325
34326	// Field represents a friendly name in the console for the custom metric; doesn't
34327	// have to be unique. Don't use this name as the metric identifier in the device
34328	// metric report. Can be updated.
34329	DisplayName *string `locationName:"displayName" type:"string"`
34330
34331	// The time the custom metric was last modified in milliseconds since epoch.
34332	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
34333
34334	// The Amazon Resource Number (ARN) of the custom metric.
34335	MetricArn *string `locationName:"metricArn" type:"string"`
34336
34337	// The name of the custom metric.
34338	MetricName *string `locationName:"metricName" min:"1" type:"string"`
34339
34340	// The type of the custom metric. Types include string-list, ip-address-list,
34341	// number-list, and number.
34342	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
34343}
34344
34345// String returns the string representation
34346func (s DescribeCustomMetricOutput) String() string {
34347	return awsutil.Prettify(s)
34348}
34349
34350// GoString returns the string representation
34351func (s DescribeCustomMetricOutput) GoString() string {
34352	return s.String()
34353}
34354
34355// SetCreationDate sets the CreationDate field's value.
34356func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
34357	s.CreationDate = &v
34358	return s
34359}
34360
34361// SetDisplayName sets the DisplayName field's value.
34362func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
34363	s.DisplayName = &v
34364	return s
34365}
34366
34367// SetLastModifiedDate sets the LastModifiedDate field's value.
34368func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
34369	s.LastModifiedDate = &v
34370	return s
34371}
34372
34373// SetMetricArn sets the MetricArn field's value.
34374func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
34375	s.MetricArn = &v
34376	return s
34377}
34378
34379// SetMetricName sets the MetricName field's value.
34380func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
34381	s.MetricName = &v
34382	return s
34383}
34384
34385// SetMetricType sets the MetricType field's value.
34386func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
34387	s.MetricType = &v
34388	return s
34389}
34390
34391type DescribeDefaultAuthorizerInput struct {
34392	_ struct{} `type:"structure"`
34393}
34394
34395// String returns the string representation
34396func (s DescribeDefaultAuthorizerInput) String() string {
34397	return awsutil.Prettify(s)
34398}
34399
34400// GoString returns the string representation
34401func (s DescribeDefaultAuthorizerInput) GoString() string {
34402	return s.String()
34403}
34404
34405type DescribeDefaultAuthorizerOutput struct {
34406	_ struct{} `type:"structure"`
34407
34408	// The default authorizer's description.
34409	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
34410}
34411
34412// String returns the string representation
34413func (s DescribeDefaultAuthorizerOutput) String() string {
34414	return awsutil.Prettify(s)
34415}
34416
34417// GoString returns the string representation
34418func (s DescribeDefaultAuthorizerOutput) GoString() string {
34419	return s.String()
34420}
34421
34422// SetAuthorizerDescription sets the AuthorizerDescription field's value.
34423func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
34424	s.AuthorizerDescription = v
34425	return s
34426}
34427
34428type DescribeDetectMitigationActionsTaskInput struct {
34429	_ struct{} `type:"structure"`
34430
34431	// The unique identifier of the task.
34432	//
34433	// TaskId is a required field
34434	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
34435}
34436
34437// String returns the string representation
34438func (s DescribeDetectMitigationActionsTaskInput) String() string {
34439	return awsutil.Prettify(s)
34440}
34441
34442// GoString returns the string representation
34443func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
34444	return s.String()
34445}
34446
34447// Validate inspects the fields of the type to determine if they are valid.
34448func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
34449	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
34450	if s.TaskId == nil {
34451		invalidParams.Add(request.NewErrParamRequired("TaskId"))
34452	}
34453	if s.TaskId != nil && len(*s.TaskId) < 1 {
34454		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
34455	}
34456
34457	if invalidParams.Len() > 0 {
34458		return invalidParams
34459	}
34460	return nil
34461}
34462
34463// SetTaskId sets the TaskId field's value.
34464func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
34465	s.TaskId = &v
34466	return s
34467}
34468
34469type DescribeDetectMitigationActionsTaskOutput struct {
34470	_ struct{} `type:"structure"`
34471
34472	// The description of a task.
34473	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
34474}
34475
34476// String returns the string representation
34477func (s DescribeDetectMitigationActionsTaskOutput) String() string {
34478	return awsutil.Prettify(s)
34479}
34480
34481// GoString returns the string representation
34482func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
34483	return s.String()
34484}
34485
34486// SetTaskSummary sets the TaskSummary field's value.
34487func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
34488	s.TaskSummary = v
34489	return s
34490}
34491
34492type DescribeDimensionInput struct {
34493	_ struct{} `type:"structure"`
34494
34495	// The unique identifier for the dimension.
34496	//
34497	// Name is a required field
34498	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
34499}
34500
34501// String returns the string representation
34502func (s DescribeDimensionInput) String() string {
34503	return awsutil.Prettify(s)
34504}
34505
34506// GoString returns the string representation
34507func (s DescribeDimensionInput) GoString() string {
34508	return s.String()
34509}
34510
34511// Validate inspects the fields of the type to determine if they are valid.
34512func (s *DescribeDimensionInput) Validate() error {
34513	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
34514	if s.Name == nil {
34515		invalidParams.Add(request.NewErrParamRequired("Name"))
34516	}
34517	if s.Name != nil && len(*s.Name) < 1 {
34518		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
34519	}
34520
34521	if invalidParams.Len() > 0 {
34522		return invalidParams
34523	}
34524	return nil
34525}
34526
34527// SetName sets the Name field's value.
34528func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
34529	s.Name = &v
34530	return s
34531}
34532
34533type DescribeDimensionOutput struct {
34534	_ struct{} `type:"structure"`
34535
34536	// The Amazon Resource Name (ARN) for the dimension.
34537	Arn *string `locationName:"arn" type:"string"`
34538
34539	// The date the dimension was created.
34540	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
34541
34542	// The date the dimension was last modified.
34543	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
34544
34545	// The unique identifier for the dimension.
34546	Name *string `locationName:"name" min:"1" type:"string"`
34547
34548	// The value or list of values used to scope the dimension. For example, for
34549	// topic filters, this is the pattern used to match the MQTT topic name.
34550	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
34551
34552	// The type of the dimension.
34553	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
34554}
34555
34556// String returns the string representation
34557func (s DescribeDimensionOutput) String() string {
34558	return awsutil.Prettify(s)
34559}
34560
34561// GoString returns the string representation
34562func (s DescribeDimensionOutput) GoString() string {
34563	return s.String()
34564}
34565
34566// SetArn sets the Arn field's value.
34567func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
34568	s.Arn = &v
34569	return s
34570}
34571
34572// SetCreationDate sets the CreationDate field's value.
34573func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
34574	s.CreationDate = &v
34575	return s
34576}
34577
34578// SetLastModifiedDate sets the LastModifiedDate field's value.
34579func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
34580	s.LastModifiedDate = &v
34581	return s
34582}
34583
34584// SetName sets the Name field's value.
34585func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
34586	s.Name = &v
34587	return s
34588}
34589
34590// SetStringValues sets the StringValues field's value.
34591func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
34592	s.StringValues = v
34593	return s
34594}
34595
34596// SetType sets the Type field's value.
34597func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
34598	s.Type = &v
34599	return s
34600}
34601
34602type DescribeDomainConfigurationInput struct {
34603	_ struct{} `type:"structure"`
34604
34605	// The name of the domain configuration.
34606	//
34607	// DomainConfigurationName is a required field
34608	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
34609}
34610
34611// String returns the string representation
34612func (s DescribeDomainConfigurationInput) String() string {
34613	return awsutil.Prettify(s)
34614}
34615
34616// GoString returns the string representation
34617func (s DescribeDomainConfigurationInput) GoString() string {
34618	return s.String()
34619}
34620
34621// Validate inspects the fields of the type to determine if they are valid.
34622func (s *DescribeDomainConfigurationInput) Validate() error {
34623	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
34624	if s.DomainConfigurationName == nil {
34625		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
34626	}
34627	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
34628		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
34629	}
34630
34631	if invalidParams.Len() > 0 {
34632		return invalidParams
34633	}
34634	return nil
34635}
34636
34637// SetDomainConfigurationName sets the DomainConfigurationName field's value.
34638func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
34639	s.DomainConfigurationName = &v
34640	return s
34641}
34642
34643type DescribeDomainConfigurationOutput struct {
34644	_ struct{} `type:"structure"`
34645
34646	// An object that specifies the authorization service for a domain.
34647	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
34648
34649	// The ARN of the domain configuration.
34650	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
34651
34652	// The name of the domain configuration.
34653	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
34654
34655	// A Boolean value that specifies the current state of the domain configuration.
34656	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
34657
34658	// The name of the domain.
34659	DomainName *string `locationName:"domainName" min:"1" type:"string"`
34660
34661	// The type of the domain.
34662	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
34663
34664	// The date and time the domain configuration's status was last changed.
34665	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
34666
34667	// A list containing summary information about the server certificate included
34668	// in the domain configuration.
34669	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
34670
34671	// The type of service delivered by the endpoint.
34672	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
34673}
34674
34675// String returns the string representation
34676func (s DescribeDomainConfigurationOutput) String() string {
34677	return awsutil.Prettify(s)
34678}
34679
34680// GoString returns the string representation
34681func (s DescribeDomainConfigurationOutput) GoString() string {
34682	return s.String()
34683}
34684
34685// SetAuthorizerConfig sets the AuthorizerConfig field's value.
34686func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
34687	s.AuthorizerConfig = v
34688	return s
34689}
34690
34691// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
34692func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
34693	s.DomainConfigurationArn = &v
34694	return s
34695}
34696
34697// SetDomainConfigurationName sets the DomainConfigurationName field's value.
34698func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
34699	s.DomainConfigurationName = &v
34700	return s
34701}
34702
34703// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
34704func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
34705	s.DomainConfigurationStatus = &v
34706	return s
34707}
34708
34709// SetDomainName sets the DomainName field's value.
34710func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
34711	s.DomainName = &v
34712	return s
34713}
34714
34715// SetDomainType sets the DomainType field's value.
34716func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
34717	s.DomainType = &v
34718	return s
34719}
34720
34721// SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
34722func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
34723	s.LastStatusChangeDate = &v
34724	return s
34725}
34726
34727// SetServerCertificates sets the ServerCertificates field's value.
34728func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
34729	s.ServerCertificates = v
34730	return s
34731}
34732
34733// SetServiceType sets the ServiceType field's value.
34734func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
34735	s.ServiceType = &v
34736	return s
34737}
34738
34739// The input for the DescribeEndpoint operation.
34740type DescribeEndpointInput struct {
34741	_ struct{} `type:"structure"`
34742
34743	// The endpoint type. Valid endpoint types include:
34744	//
34745	//    * iot:Data - Returns a VeriSign signed data endpoint.
34746	//
34747	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
34748	//
34749	//    * iot:CredentialProvider - Returns an AWS IoT credentials provider API
34750	//    endpoint.
34751	//
34752	//    * iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.
34753	//
34754	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
34755	// type to avoid issues related to the widespread distrust of Symantec certificate
34756	// authorities.
34757	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
34758}
34759
34760// String returns the string representation
34761func (s DescribeEndpointInput) String() string {
34762	return awsutil.Prettify(s)
34763}
34764
34765// GoString returns the string representation
34766func (s DescribeEndpointInput) GoString() string {
34767	return s.String()
34768}
34769
34770// SetEndpointType sets the EndpointType field's value.
34771func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
34772	s.EndpointType = &v
34773	return s
34774}
34775
34776// The output from the DescribeEndpoint operation.
34777type DescribeEndpointOutput struct {
34778	_ struct{} `type:"structure"`
34779
34780	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
34781	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
34782}
34783
34784// String returns the string representation
34785func (s DescribeEndpointOutput) String() string {
34786	return awsutil.Prettify(s)
34787}
34788
34789// GoString returns the string representation
34790func (s DescribeEndpointOutput) GoString() string {
34791	return s.String()
34792}
34793
34794// SetEndpointAddress sets the EndpointAddress field's value.
34795func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
34796	s.EndpointAddress = &v
34797	return s
34798}
34799
34800type DescribeEventConfigurationsInput struct {
34801	_ struct{} `type:"structure"`
34802}
34803
34804// String returns the string representation
34805func (s DescribeEventConfigurationsInput) String() string {
34806	return awsutil.Prettify(s)
34807}
34808
34809// GoString returns the string representation
34810func (s DescribeEventConfigurationsInput) GoString() string {
34811	return s.String()
34812}
34813
34814type DescribeEventConfigurationsOutput struct {
34815	_ struct{} `type:"structure"`
34816
34817	// The creation date of the event configuration.
34818	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
34819
34820	// The event configurations.
34821	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
34822
34823	// The date the event configurations were last modified.
34824	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
34825}
34826
34827// String returns the string representation
34828func (s DescribeEventConfigurationsOutput) String() string {
34829	return awsutil.Prettify(s)
34830}
34831
34832// GoString returns the string representation
34833func (s DescribeEventConfigurationsOutput) GoString() string {
34834	return s.String()
34835}
34836
34837// SetCreationDate sets the CreationDate field's value.
34838func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
34839	s.CreationDate = &v
34840	return s
34841}
34842
34843// SetEventConfigurations sets the EventConfigurations field's value.
34844func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
34845	s.EventConfigurations = v
34846	return s
34847}
34848
34849// SetLastModifiedDate sets the LastModifiedDate field's value.
34850func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
34851	s.LastModifiedDate = &v
34852	return s
34853}
34854
34855type DescribeIndexInput struct {
34856	_ struct{} `type:"structure"`
34857
34858	// The index name.
34859	//
34860	// IndexName is a required field
34861	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
34862}
34863
34864// String returns the string representation
34865func (s DescribeIndexInput) String() string {
34866	return awsutil.Prettify(s)
34867}
34868
34869// GoString returns the string representation
34870func (s DescribeIndexInput) GoString() string {
34871	return s.String()
34872}
34873
34874// Validate inspects the fields of the type to determine if they are valid.
34875func (s *DescribeIndexInput) Validate() error {
34876	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
34877	if s.IndexName == nil {
34878		invalidParams.Add(request.NewErrParamRequired("IndexName"))
34879	}
34880	if s.IndexName != nil && len(*s.IndexName) < 1 {
34881		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
34882	}
34883
34884	if invalidParams.Len() > 0 {
34885		return invalidParams
34886	}
34887	return nil
34888}
34889
34890// SetIndexName sets the IndexName field's value.
34891func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
34892	s.IndexName = &v
34893	return s
34894}
34895
34896type DescribeIndexOutput struct {
34897	_ struct{} `type:"structure"`
34898
34899	// The index name.
34900	IndexName *string `locationName:"indexName" min:"1" type:"string"`
34901
34902	// The index status.
34903	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
34904
34905	// Contains a value that specifies the type of indexing performed. Valid values
34906	// are:
34907	//
34908	//    * REGISTRY – Your thing index contains only registry data.
34909	//
34910	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
34911	//    data.
34912	//
34913	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
34914	//    data and thing connectivity status data.
34915	//
34916	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
34917	//    registry data, shadow data, and thing connectivity status data.
34918	Schema *string `locationName:"schema" type:"string"`
34919}
34920
34921// String returns the string representation
34922func (s DescribeIndexOutput) String() string {
34923	return awsutil.Prettify(s)
34924}
34925
34926// GoString returns the string representation
34927func (s DescribeIndexOutput) GoString() string {
34928	return s.String()
34929}
34930
34931// SetIndexName sets the IndexName field's value.
34932func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
34933	s.IndexName = &v
34934	return s
34935}
34936
34937// SetIndexStatus sets the IndexStatus field's value.
34938func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
34939	s.IndexStatus = &v
34940	return s
34941}
34942
34943// SetSchema sets the Schema field's value.
34944func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
34945	s.Schema = &v
34946	return s
34947}
34948
34949type DescribeJobExecutionInput struct {
34950	_ struct{} `type:"structure"`
34951
34952	// A string (consisting of the digits "0" through "9" which is used to specify
34953	// a particular job execution on a particular device.
34954	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
34955
34956	// The unique identifier you assigned to this job when it was created.
34957	//
34958	// JobId is a required field
34959	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
34960
34961	// The name of the thing on which the job execution is running.
34962	//
34963	// ThingName is a required field
34964	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
34965}
34966
34967// String returns the string representation
34968func (s DescribeJobExecutionInput) String() string {
34969	return awsutil.Prettify(s)
34970}
34971
34972// GoString returns the string representation
34973func (s DescribeJobExecutionInput) GoString() string {
34974	return s.String()
34975}
34976
34977// Validate inspects the fields of the type to determine if they are valid.
34978func (s *DescribeJobExecutionInput) Validate() error {
34979	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
34980	if s.JobId == nil {
34981		invalidParams.Add(request.NewErrParamRequired("JobId"))
34982	}
34983	if s.JobId != nil && len(*s.JobId) < 1 {
34984		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
34985	}
34986	if s.ThingName == nil {
34987		invalidParams.Add(request.NewErrParamRequired("ThingName"))
34988	}
34989	if s.ThingName != nil && len(*s.ThingName) < 1 {
34990		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
34991	}
34992
34993	if invalidParams.Len() > 0 {
34994		return invalidParams
34995	}
34996	return nil
34997}
34998
34999// SetExecutionNumber sets the ExecutionNumber field's value.
35000func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
35001	s.ExecutionNumber = &v
35002	return s
35003}
35004
35005// SetJobId sets the JobId field's value.
35006func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
35007	s.JobId = &v
35008	return s
35009}
35010
35011// SetThingName sets the ThingName field's value.
35012func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
35013	s.ThingName = &v
35014	return s
35015}
35016
35017type DescribeJobExecutionOutput struct {
35018	_ struct{} `type:"structure"`
35019
35020	// Information about the job execution.
35021	Execution *JobExecution `locationName:"execution" type:"structure"`
35022}
35023
35024// String returns the string representation
35025func (s DescribeJobExecutionOutput) String() string {
35026	return awsutil.Prettify(s)
35027}
35028
35029// GoString returns the string representation
35030func (s DescribeJobExecutionOutput) GoString() string {
35031	return s.String()
35032}
35033
35034// SetExecution sets the Execution field's value.
35035func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
35036	s.Execution = v
35037	return s
35038}
35039
35040type DescribeJobInput struct {
35041	_ struct{} `type:"structure"`
35042
35043	// The unique identifier you assigned to this job when it was created.
35044	//
35045	// JobId is a required field
35046	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
35047}
35048
35049// String returns the string representation
35050func (s DescribeJobInput) String() string {
35051	return awsutil.Prettify(s)
35052}
35053
35054// GoString returns the string representation
35055func (s DescribeJobInput) GoString() string {
35056	return s.String()
35057}
35058
35059// Validate inspects the fields of the type to determine if they are valid.
35060func (s *DescribeJobInput) Validate() error {
35061	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
35062	if s.JobId == nil {
35063		invalidParams.Add(request.NewErrParamRequired("JobId"))
35064	}
35065	if s.JobId != nil && len(*s.JobId) < 1 {
35066		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
35067	}
35068
35069	if invalidParams.Len() > 0 {
35070		return invalidParams
35071	}
35072	return nil
35073}
35074
35075// SetJobId sets the JobId field's value.
35076func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
35077	s.JobId = &v
35078	return s
35079}
35080
35081type DescribeJobOutput struct {
35082	_ struct{} `type:"structure"`
35083
35084	// An S3 link to the job document.
35085	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
35086
35087	// Information about the job.
35088	Job *Job `locationName:"job" type:"structure"`
35089}
35090
35091// String returns the string representation
35092func (s DescribeJobOutput) String() string {
35093	return awsutil.Prettify(s)
35094}
35095
35096// GoString returns the string representation
35097func (s DescribeJobOutput) GoString() string {
35098	return s.String()
35099}
35100
35101// SetDocumentSource sets the DocumentSource field's value.
35102func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
35103	s.DocumentSource = &v
35104	return s
35105}
35106
35107// SetJob sets the Job field's value.
35108func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
35109	s.Job = v
35110	return s
35111}
35112
35113type DescribeMitigationActionInput struct {
35114	_ struct{} `type:"structure"`
35115
35116	// The friendly name that uniquely identifies the mitigation action.
35117	//
35118	// ActionName is a required field
35119	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
35120}
35121
35122// String returns the string representation
35123func (s DescribeMitigationActionInput) String() string {
35124	return awsutil.Prettify(s)
35125}
35126
35127// GoString returns the string representation
35128func (s DescribeMitigationActionInput) GoString() string {
35129	return s.String()
35130}
35131
35132// Validate inspects the fields of the type to determine if they are valid.
35133func (s *DescribeMitigationActionInput) Validate() error {
35134	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
35135	if s.ActionName == nil {
35136		invalidParams.Add(request.NewErrParamRequired("ActionName"))
35137	}
35138	if s.ActionName != nil && len(*s.ActionName) < 1 {
35139		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
35140	}
35141
35142	if invalidParams.Len() > 0 {
35143		return invalidParams
35144	}
35145	return nil
35146}
35147
35148// SetActionName sets the ActionName field's value.
35149func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
35150	s.ActionName = &v
35151	return s
35152}
35153
35154type DescribeMitigationActionOutput struct {
35155	_ struct{} `type:"structure"`
35156
35157	// The ARN that identifies this migration action.
35158	ActionArn *string `locationName:"actionArn" type:"string"`
35159
35160	// A unique identifier for this action.
35161	ActionId *string `locationName:"actionId" type:"string"`
35162
35163	// The friendly name that uniquely identifies the mitigation action.
35164	ActionName *string `locationName:"actionName" type:"string"`
35165
35166	// Parameters that control how the mitigation action is applied, specific to
35167	// the type of mitigation action.
35168	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
35169
35170	// The type of mitigation action.
35171	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
35172
35173	// The date and time when the mitigation action was added to your AWS account.
35174	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35175
35176	// The date and time when the mitigation action was last changed.
35177	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35178
35179	// The ARN of the IAM role used to apply this action.
35180	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
35181}
35182
35183// String returns the string representation
35184func (s DescribeMitigationActionOutput) String() string {
35185	return awsutil.Prettify(s)
35186}
35187
35188// GoString returns the string representation
35189func (s DescribeMitigationActionOutput) GoString() string {
35190	return s.String()
35191}
35192
35193// SetActionArn sets the ActionArn field's value.
35194func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
35195	s.ActionArn = &v
35196	return s
35197}
35198
35199// SetActionId sets the ActionId field's value.
35200func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
35201	s.ActionId = &v
35202	return s
35203}
35204
35205// SetActionName sets the ActionName field's value.
35206func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
35207	s.ActionName = &v
35208	return s
35209}
35210
35211// SetActionParams sets the ActionParams field's value.
35212func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
35213	s.ActionParams = v
35214	return s
35215}
35216
35217// SetActionType sets the ActionType field's value.
35218func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
35219	s.ActionType = &v
35220	return s
35221}
35222
35223// SetCreationDate sets the CreationDate field's value.
35224func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
35225	s.CreationDate = &v
35226	return s
35227}
35228
35229// SetLastModifiedDate sets the LastModifiedDate field's value.
35230func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
35231	s.LastModifiedDate = &v
35232	return s
35233}
35234
35235// SetRoleArn sets the RoleArn field's value.
35236func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
35237	s.RoleArn = &v
35238	return s
35239}
35240
35241type DescribeProvisioningTemplateInput struct {
35242	_ struct{} `type:"structure"`
35243
35244	// The name of the fleet provisioning template.
35245	//
35246	// TemplateName is a required field
35247	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
35248}
35249
35250// String returns the string representation
35251func (s DescribeProvisioningTemplateInput) String() string {
35252	return awsutil.Prettify(s)
35253}
35254
35255// GoString returns the string representation
35256func (s DescribeProvisioningTemplateInput) GoString() string {
35257	return s.String()
35258}
35259
35260// Validate inspects the fields of the type to determine if they are valid.
35261func (s *DescribeProvisioningTemplateInput) Validate() error {
35262	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
35263	if s.TemplateName == nil {
35264		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
35265	}
35266	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
35267		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
35268	}
35269
35270	if invalidParams.Len() > 0 {
35271		return invalidParams
35272	}
35273	return nil
35274}
35275
35276// SetTemplateName sets the TemplateName field's value.
35277func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
35278	s.TemplateName = &v
35279	return s
35280}
35281
35282type DescribeProvisioningTemplateOutput struct {
35283	_ struct{} `type:"structure"`
35284
35285	// The date when the fleet provisioning template was created.
35286	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35287
35288	// The default fleet template version ID.
35289	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
35290
35291	// The description of the fleet provisioning template.
35292	Description *string `locationName:"description" type:"string"`
35293
35294	// True if the fleet provisioning template is enabled, otherwise false.
35295	Enabled *bool `locationName:"enabled" type:"boolean"`
35296
35297	// The date when the fleet provisioning template was last modified.
35298	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35299
35300	// Gets information about a pre-provisioned hook.
35301	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
35302
35303	// The ARN of the role associated with the provisioning template. This IoT role
35304	// grants permission to provision a device.
35305	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
35306
35307	// The ARN of the fleet provisioning template.
35308	TemplateArn *string `locationName:"templateArn" type:"string"`
35309
35310	// The JSON formatted contents of the fleet provisioning template.
35311	TemplateBody *string `locationName:"templateBody" type:"string"`
35312
35313	// The name of the fleet provisioning template.
35314	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
35315}
35316
35317// String returns the string representation
35318func (s DescribeProvisioningTemplateOutput) String() string {
35319	return awsutil.Prettify(s)
35320}
35321
35322// GoString returns the string representation
35323func (s DescribeProvisioningTemplateOutput) GoString() string {
35324	return s.String()
35325}
35326
35327// SetCreationDate sets the CreationDate field's value.
35328func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
35329	s.CreationDate = &v
35330	return s
35331}
35332
35333// SetDefaultVersionId sets the DefaultVersionId field's value.
35334func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
35335	s.DefaultVersionId = &v
35336	return s
35337}
35338
35339// SetDescription sets the Description field's value.
35340func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
35341	s.Description = &v
35342	return s
35343}
35344
35345// SetEnabled sets the Enabled field's value.
35346func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
35347	s.Enabled = &v
35348	return s
35349}
35350
35351// SetLastModifiedDate sets the LastModifiedDate field's value.
35352func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
35353	s.LastModifiedDate = &v
35354	return s
35355}
35356
35357// SetPreProvisioningHook sets the PreProvisioningHook field's value.
35358func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
35359	s.PreProvisioningHook = v
35360	return s
35361}
35362
35363// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
35364func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
35365	s.ProvisioningRoleArn = &v
35366	return s
35367}
35368
35369// SetTemplateArn sets the TemplateArn field's value.
35370func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
35371	s.TemplateArn = &v
35372	return s
35373}
35374
35375// SetTemplateBody sets the TemplateBody field's value.
35376func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
35377	s.TemplateBody = &v
35378	return s
35379}
35380
35381// SetTemplateName sets the TemplateName field's value.
35382func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
35383	s.TemplateName = &v
35384	return s
35385}
35386
35387type DescribeProvisioningTemplateVersionInput struct {
35388	_ struct{} `type:"structure"`
35389
35390	// The template name.
35391	//
35392	// TemplateName is a required field
35393	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
35394
35395	// The fleet provisioning template version ID.
35396	//
35397	// VersionId is a required field
35398	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
35399}
35400
35401// String returns the string representation
35402func (s DescribeProvisioningTemplateVersionInput) String() string {
35403	return awsutil.Prettify(s)
35404}
35405
35406// GoString returns the string representation
35407func (s DescribeProvisioningTemplateVersionInput) GoString() string {
35408	return s.String()
35409}
35410
35411// Validate inspects the fields of the type to determine if they are valid.
35412func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
35413	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
35414	if s.TemplateName == nil {
35415		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
35416	}
35417	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
35418		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
35419	}
35420	if s.VersionId == nil {
35421		invalidParams.Add(request.NewErrParamRequired("VersionId"))
35422	}
35423
35424	if invalidParams.Len() > 0 {
35425		return invalidParams
35426	}
35427	return nil
35428}
35429
35430// SetTemplateName sets the TemplateName field's value.
35431func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
35432	s.TemplateName = &v
35433	return s
35434}
35435
35436// SetVersionId sets the VersionId field's value.
35437func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
35438	s.VersionId = &v
35439	return s
35440}
35441
35442type DescribeProvisioningTemplateVersionOutput struct {
35443	_ struct{} `type:"structure"`
35444
35445	// The date when the fleet provisioning template version was created.
35446	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35447
35448	// True if the fleet provisioning template version is the default version.
35449	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
35450
35451	// The JSON formatted contents of the fleet provisioning template version.
35452	TemplateBody *string `locationName:"templateBody" type:"string"`
35453
35454	// The fleet provisioning template version ID.
35455	VersionId *int64 `locationName:"versionId" type:"integer"`
35456}
35457
35458// String returns the string representation
35459func (s DescribeProvisioningTemplateVersionOutput) String() string {
35460	return awsutil.Prettify(s)
35461}
35462
35463// GoString returns the string representation
35464func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
35465	return s.String()
35466}
35467
35468// SetCreationDate sets the CreationDate field's value.
35469func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
35470	s.CreationDate = &v
35471	return s
35472}
35473
35474// SetIsDefaultVersion sets the IsDefaultVersion field's value.
35475func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
35476	s.IsDefaultVersion = &v
35477	return s
35478}
35479
35480// SetTemplateBody sets the TemplateBody field's value.
35481func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
35482	s.TemplateBody = &v
35483	return s
35484}
35485
35486// SetVersionId sets the VersionId field's value.
35487func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
35488	s.VersionId = &v
35489	return s
35490}
35491
35492type DescribeRoleAliasInput struct {
35493	_ struct{} `type:"structure"`
35494
35495	// The role alias to describe.
35496	//
35497	// RoleAlias is a required field
35498	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
35499}
35500
35501// String returns the string representation
35502func (s DescribeRoleAliasInput) String() string {
35503	return awsutil.Prettify(s)
35504}
35505
35506// GoString returns the string representation
35507func (s DescribeRoleAliasInput) GoString() string {
35508	return s.String()
35509}
35510
35511// Validate inspects the fields of the type to determine if they are valid.
35512func (s *DescribeRoleAliasInput) Validate() error {
35513	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
35514	if s.RoleAlias == nil {
35515		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
35516	}
35517	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
35518		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
35519	}
35520
35521	if invalidParams.Len() > 0 {
35522		return invalidParams
35523	}
35524	return nil
35525}
35526
35527// SetRoleAlias sets the RoleAlias field's value.
35528func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
35529	s.RoleAlias = &v
35530	return s
35531}
35532
35533type DescribeRoleAliasOutput struct {
35534	_ struct{} `type:"structure"`
35535
35536	// The role alias description.
35537	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
35538}
35539
35540// String returns the string representation
35541func (s DescribeRoleAliasOutput) String() string {
35542	return awsutil.Prettify(s)
35543}
35544
35545// GoString returns the string representation
35546func (s DescribeRoleAliasOutput) GoString() string {
35547	return s.String()
35548}
35549
35550// SetRoleAliasDescription sets the RoleAliasDescription field's value.
35551func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
35552	s.RoleAliasDescription = v
35553	return s
35554}
35555
35556type DescribeScheduledAuditInput struct {
35557	_ struct{} `type:"structure"`
35558
35559	// The name of the scheduled audit whose information you want to get.
35560	//
35561	// ScheduledAuditName is a required field
35562	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
35563}
35564
35565// String returns the string representation
35566func (s DescribeScheduledAuditInput) String() string {
35567	return awsutil.Prettify(s)
35568}
35569
35570// GoString returns the string representation
35571func (s DescribeScheduledAuditInput) GoString() string {
35572	return s.String()
35573}
35574
35575// Validate inspects the fields of the type to determine if they are valid.
35576func (s *DescribeScheduledAuditInput) Validate() error {
35577	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
35578	if s.ScheduledAuditName == nil {
35579		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
35580	}
35581	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
35582		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
35583	}
35584
35585	if invalidParams.Len() > 0 {
35586		return invalidParams
35587	}
35588	return nil
35589}
35590
35591// SetScheduledAuditName sets the ScheduledAuditName field's value.
35592func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
35593	s.ScheduledAuditName = &v
35594	return s
35595}
35596
35597type DescribeScheduledAuditOutput struct {
35598	_ struct{} `type:"structure"`
35599
35600	// The day of the month on which the scheduled audit takes place. This is will
35601	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
35602	// not have that many days, the audit takes place on the LAST day of the month.
35603	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
35604
35605	// The day of the week on which the scheduled audit takes place, either one
35606	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
35607	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
35608
35609	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
35610	// or MONTHLY. The start time of each audit is determined by the system.
35611	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
35612
35613	// The ARN of the scheduled audit.
35614	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
35615
35616	// The name of the scheduled audit.
35617	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
35618
35619	// Which checks are performed during the scheduled audit. Checks must be enabled
35620	// for your account. (Use DescribeAccountAuditConfiguration to see the list
35621	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
35622	// to select which checks are enabled.)
35623	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
35624}
35625
35626// String returns the string representation
35627func (s DescribeScheduledAuditOutput) String() string {
35628	return awsutil.Prettify(s)
35629}
35630
35631// GoString returns the string representation
35632func (s DescribeScheduledAuditOutput) GoString() string {
35633	return s.String()
35634}
35635
35636// SetDayOfMonth sets the DayOfMonth field's value.
35637func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
35638	s.DayOfMonth = &v
35639	return s
35640}
35641
35642// SetDayOfWeek sets the DayOfWeek field's value.
35643func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
35644	s.DayOfWeek = &v
35645	return s
35646}
35647
35648// SetFrequency sets the Frequency field's value.
35649func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
35650	s.Frequency = &v
35651	return s
35652}
35653
35654// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
35655func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
35656	s.ScheduledAuditArn = &v
35657	return s
35658}
35659
35660// SetScheduledAuditName sets the ScheduledAuditName field's value.
35661func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
35662	s.ScheduledAuditName = &v
35663	return s
35664}
35665
35666// SetTargetCheckNames sets the TargetCheckNames field's value.
35667func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
35668	s.TargetCheckNames = v
35669	return s
35670}
35671
35672type DescribeSecurityProfileInput struct {
35673	_ struct{} `type:"structure"`
35674
35675	// The name of the security profile whose information you want to get.
35676	//
35677	// SecurityProfileName is a required field
35678	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
35679}
35680
35681// String returns the string representation
35682func (s DescribeSecurityProfileInput) String() string {
35683	return awsutil.Prettify(s)
35684}
35685
35686// GoString returns the string representation
35687func (s DescribeSecurityProfileInput) GoString() string {
35688	return s.String()
35689}
35690
35691// Validate inspects the fields of the type to determine if they are valid.
35692func (s *DescribeSecurityProfileInput) Validate() error {
35693	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
35694	if s.SecurityProfileName == nil {
35695		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
35696	}
35697	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
35698		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
35699	}
35700
35701	if invalidParams.Len() > 0 {
35702		return invalidParams
35703	}
35704	return nil
35705}
35706
35707// SetSecurityProfileName sets the SecurityProfileName field's value.
35708func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
35709	s.SecurityProfileName = &v
35710	return s
35711}
35712
35713type DescribeSecurityProfileOutput struct {
35714	_ struct{} `type:"structure"`
35715
35716	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
35717	//
35718	// A list of metrics whose data is retained (stored). By default, data is retained
35719	// for any metric used in the profile's behaviors, but it is also retained for
35720	// any metric specified here.
35721	//
35722	// Deprecated: Use additionalMetricsToRetainV2.
35723	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
35724
35725	// A list of metrics whose data is retained (stored). By default, data is retained
35726	// for any metric used in the profile's behaviors, but it is also retained for
35727	// any metric specified here.
35728	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
35729
35730	// Where the alerts are sent. (Alerts are always sent to the console.)
35731	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
35732
35733	// Specifies the behaviors that, when violated by a device (thing), cause an
35734	// alert.
35735	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
35736
35737	// The time the security profile was created.
35738	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35739
35740	// The time the security profile was last modified.
35741	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35742
35743	// The ARN of the security profile.
35744	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
35745
35746	// A description of the security profile (associated with the security profile
35747	// when it was created or updated).
35748	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
35749
35750	// The name of the security profile.
35751	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
35752
35753	// The version of the security profile. A new version is generated whenever
35754	// the security profile is updated.
35755	Version *int64 `locationName:"version" type:"long"`
35756}
35757
35758// String returns the string representation
35759func (s DescribeSecurityProfileOutput) String() string {
35760	return awsutil.Prettify(s)
35761}
35762
35763// GoString returns the string representation
35764func (s DescribeSecurityProfileOutput) GoString() string {
35765	return s.String()
35766}
35767
35768// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
35769func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
35770	s.AdditionalMetricsToRetain = v
35771	return s
35772}
35773
35774// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
35775func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
35776	s.AdditionalMetricsToRetainV2 = v
35777	return s
35778}
35779
35780// SetAlertTargets sets the AlertTargets field's value.
35781func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
35782	s.AlertTargets = v
35783	return s
35784}
35785
35786// SetBehaviors sets the Behaviors field's value.
35787func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
35788	s.Behaviors = v
35789	return s
35790}
35791
35792// SetCreationDate sets the CreationDate field's value.
35793func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
35794	s.CreationDate = &v
35795	return s
35796}
35797
35798// SetLastModifiedDate sets the LastModifiedDate field's value.
35799func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
35800	s.LastModifiedDate = &v
35801	return s
35802}
35803
35804// SetSecurityProfileArn sets the SecurityProfileArn field's value.
35805func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
35806	s.SecurityProfileArn = &v
35807	return s
35808}
35809
35810// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
35811func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
35812	s.SecurityProfileDescription = &v
35813	return s
35814}
35815
35816// SetSecurityProfileName sets the SecurityProfileName field's value.
35817func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
35818	s.SecurityProfileName = &v
35819	return s
35820}
35821
35822// SetVersion sets the Version field's value.
35823func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
35824	s.Version = &v
35825	return s
35826}
35827
35828type DescribeStreamInput struct {
35829	_ struct{} `type:"structure"`
35830
35831	// The stream ID.
35832	//
35833	// StreamId is a required field
35834	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
35835}
35836
35837// String returns the string representation
35838func (s DescribeStreamInput) String() string {
35839	return awsutil.Prettify(s)
35840}
35841
35842// GoString returns the string representation
35843func (s DescribeStreamInput) GoString() string {
35844	return s.String()
35845}
35846
35847// Validate inspects the fields of the type to determine if they are valid.
35848func (s *DescribeStreamInput) Validate() error {
35849	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
35850	if s.StreamId == nil {
35851		invalidParams.Add(request.NewErrParamRequired("StreamId"))
35852	}
35853	if s.StreamId != nil && len(*s.StreamId) < 1 {
35854		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
35855	}
35856
35857	if invalidParams.Len() > 0 {
35858		return invalidParams
35859	}
35860	return nil
35861}
35862
35863// SetStreamId sets the StreamId field's value.
35864func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
35865	s.StreamId = &v
35866	return s
35867}
35868
35869type DescribeStreamOutput struct {
35870	_ struct{} `type:"structure"`
35871
35872	// Information about the stream.
35873	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
35874}
35875
35876// String returns the string representation
35877func (s DescribeStreamOutput) String() string {
35878	return awsutil.Prettify(s)
35879}
35880
35881// GoString returns the string representation
35882func (s DescribeStreamOutput) GoString() string {
35883	return s.String()
35884}
35885
35886// SetStreamInfo sets the StreamInfo field's value.
35887func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
35888	s.StreamInfo = v
35889	return s
35890}
35891
35892type DescribeThingGroupInput struct {
35893	_ struct{} `type:"structure"`
35894
35895	// The name of the thing group.
35896	//
35897	// ThingGroupName is a required field
35898	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
35899}
35900
35901// String returns the string representation
35902func (s DescribeThingGroupInput) String() string {
35903	return awsutil.Prettify(s)
35904}
35905
35906// GoString returns the string representation
35907func (s DescribeThingGroupInput) GoString() string {
35908	return s.String()
35909}
35910
35911// Validate inspects the fields of the type to determine if they are valid.
35912func (s *DescribeThingGroupInput) Validate() error {
35913	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
35914	if s.ThingGroupName == nil {
35915		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
35916	}
35917	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
35918		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
35919	}
35920
35921	if invalidParams.Len() > 0 {
35922		return invalidParams
35923	}
35924	return nil
35925}
35926
35927// SetThingGroupName sets the ThingGroupName field's value.
35928func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
35929	s.ThingGroupName = &v
35930	return s
35931}
35932
35933type DescribeThingGroupOutput struct {
35934	_ struct{} `type:"structure"`
35935
35936	// The dynamic thing group index name.
35937	IndexName *string `locationName:"indexName" min:"1" type:"string"`
35938
35939	// The dynamic thing group search query string.
35940	QueryString *string `locationName:"queryString" min:"1" type:"string"`
35941
35942	// The dynamic thing group query version.
35943	QueryVersion *string `locationName:"queryVersion" type:"string"`
35944
35945	// The dynamic thing group status.
35946	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
35947
35948	// The thing group ARN.
35949	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
35950
35951	// The thing group ID.
35952	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
35953
35954	// Thing group metadata.
35955	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
35956
35957	// The name of the thing group.
35958	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
35959
35960	// The thing group properties.
35961	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
35962
35963	// The version of the thing group.
35964	Version *int64 `locationName:"version" type:"long"`
35965}
35966
35967// String returns the string representation
35968func (s DescribeThingGroupOutput) String() string {
35969	return awsutil.Prettify(s)
35970}
35971
35972// GoString returns the string representation
35973func (s DescribeThingGroupOutput) GoString() string {
35974	return s.String()
35975}
35976
35977// SetIndexName sets the IndexName field's value.
35978func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
35979	s.IndexName = &v
35980	return s
35981}
35982
35983// SetQueryString sets the QueryString field's value.
35984func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
35985	s.QueryString = &v
35986	return s
35987}
35988
35989// SetQueryVersion sets the QueryVersion field's value.
35990func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
35991	s.QueryVersion = &v
35992	return s
35993}
35994
35995// SetStatus sets the Status field's value.
35996func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
35997	s.Status = &v
35998	return s
35999}
36000
36001// SetThingGroupArn sets the ThingGroupArn field's value.
36002func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
36003	s.ThingGroupArn = &v
36004	return s
36005}
36006
36007// SetThingGroupId sets the ThingGroupId field's value.
36008func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
36009	s.ThingGroupId = &v
36010	return s
36011}
36012
36013// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
36014func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
36015	s.ThingGroupMetadata = v
36016	return s
36017}
36018
36019// SetThingGroupName sets the ThingGroupName field's value.
36020func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
36021	s.ThingGroupName = &v
36022	return s
36023}
36024
36025// SetThingGroupProperties sets the ThingGroupProperties field's value.
36026func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
36027	s.ThingGroupProperties = v
36028	return s
36029}
36030
36031// SetVersion sets the Version field's value.
36032func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
36033	s.Version = &v
36034	return s
36035}
36036
36037// The input for the DescribeThing operation.
36038type DescribeThingInput struct {
36039	_ struct{} `type:"structure"`
36040
36041	// The name of the thing.
36042	//
36043	// ThingName is a required field
36044	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36045}
36046
36047// String returns the string representation
36048func (s DescribeThingInput) String() string {
36049	return awsutil.Prettify(s)
36050}
36051
36052// GoString returns the string representation
36053func (s DescribeThingInput) GoString() string {
36054	return s.String()
36055}
36056
36057// Validate inspects the fields of the type to determine if they are valid.
36058func (s *DescribeThingInput) Validate() error {
36059	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
36060	if s.ThingName == nil {
36061		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36062	}
36063	if s.ThingName != nil && len(*s.ThingName) < 1 {
36064		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36065	}
36066
36067	if invalidParams.Len() > 0 {
36068		return invalidParams
36069	}
36070	return nil
36071}
36072
36073// SetThingName sets the ThingName field's value.
36074func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
36075	s.ThingName = &v
36076	return s
36077}
36078
36079// The output from the DescribeThing operation.
36080type DescribeThingOutput struct {
36081	_ struct{} `type:"structure"`
36082
36083	// The thing attributes.
36084	Attributes map[string]*string `locationName:"attributes" type:"map"`
36085
36086	// The name of the billing group the thing belongs to.
36087	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
36088
36089	// The default MQTT client ID. For a typical device, the thing name is also
36090	// used as the default MQTT client ID. Although we don’t require a mapping
36091	// between a thing's registry name and its use of MQTT client IDs, certificates,
36092	// or shadow state, we recommend that you choose a thing name and use it as
36093	// the MQTT client ID for the registry and the Device Shadow service.
36094	//
36095	// This lets you better organize your AWS IoT fleet without removing the flexibility
36096	// of the underlying device certificate model or shadows.
36097	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
36098
36099	// The ARN of the thing to describe.
36100	ThingArn *string `locationName:"thingArn" type:"string"`
36101
36102	// The ID of the thing to describe.
36103	ThingId *string `locationName:"thingId" type:"string"`
36104
36105	// The name of the thing.
36106	ThingName *string `locationName:"thingName" min:"1" type:"string"`
36107
36108	// The thing type name.
36109	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
36110
36111	// The current version of the thing record in the registry.
36112	//
36113	// To avoid unintentional changes to the information in the registry, you can
36114	// pass the version information in the expectedVersion parameter of the UpdateThing
36115	// and DeleteThing calls.
36116	Version *int64 `locationName:"version" type:"long"`
36117}
36118
36119// String returns the string representation
36120func (s DescribeThingOutput) String() string {
36121	return awsutil.Prettify(s)
36122}
36123
36124// GoString returns the string representation
36125func (s DescribeThingOutput) GoString() string {
36126	return s.String()
36127}
36128
36129// SetAttributes sets the Attributes field's value.
36130func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
36131	s.Attributes = v
36132	return s
36133}
36134
36135// SetBillingGroupName sets the BillingGroupName field's value.
36136func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
36137	s.BillingGroupName = &v
36138	return s
36139}
36140
36141// SetDefaultClientId sets the DefaultClientId field's value.
36142func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
36143	s.DefaultClientId = &v
36144	return s
36145}
36146
36147// SetThingArn sets the ThingArn field's value.
36148func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
36149	s.ThingArn = &v
36150	return s
36151}
36152
36153// SetThingId sets the ThingId field's value.
36154func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
36155	s.ThingId = &v
36156	return s
36157}
36158
36159// SetThingName sets the ThingName field's value.
36160func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
36161	s.ThingName = &v
36162	return s
36163}
36164
36165// SetThingTypeName sets the ThingTypeName field's value.
36166func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
36167	s.ThingTypeName = &v
36168	return s
36169}
36170
36171// SetVersion sets the Version field's value.
36172func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
36173	s.Version = &v
36174	return s
36175}
36176
36177type DescribeThingRegistrationTaskInput struct {
36178	_ struct{} `type:"structure"`
36179
36180	// The task ID.
36181	//
36182	// TaskId is a required field
36183	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
36184}
36185
36186// String returns the string representation
36187func (s DescribeThingRegistrationTaskInput) String() string {
36188	return awsutil.Prettify(s)
36189}
36190
36191// GoString returns the string representation
36192func (s DescribeThingRegistrationTaskInput) GoString() string {
36193	return s.String()
36194}
36195
36196// Validate inspects the fields of the type to determine if they are valid.
36197func (s *DescribeThingRegistrationTaskInput) Validate() error {
36198	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
36199	if s.TaskId == nil {
36200		invalidParams.Add(request.NewErrParamRequired("TaskId"))
36201	}
36202	if s.TaskId != nil && len(*s.TaskId) < 1 {
36203		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
36204	}
36205
36206	if invalidParams.Len() > 0 {
36207		return invalidParams
36208	}
36209	return nil
36210}
36211
36212// SetTaskId sets the TaskId field's value.
36213func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
36214	s.TaskId = &v
36215	return s
36216}
36217
36218type DescribeThingRegistrationTaskOutput struct {
36219	_ struct{} `type:"structure"`
36220
36221	// The task creation date.
36222	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36223
36224	// The number of things that failed to be provisioned.
36225	FailureCount *int64 `locationName:"failureCount" type:"integer"`
36226
36227	// The S3 bucket that contains the input file.
36228	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
36229
36230	// The input file key.
36231	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
36232
36233	// The date when the task was last modified.
36234	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36235
36236	// The message.
36237	Message *string `locationName:"message" type:"string"`
36238
36239	// The progress of the bulk provisioning task expressed as a percentage.
36240	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
36241
36242	// The role ARN that grants access to the input file bucket.
36243	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
36244
36245	// The status of the bulk thing provisioning task.
36246	Status *string `locationName:"status" type:"string" enum:"Status"`
36247
36248	// The number of things successfully provisioned.
36249	SuccessCount *int64 `locationName:"successCount" type:"integer"`
36250
36251	// The task ID.
36252	TaskId *string `locationName:"taskId" type:"string"`
36253
36254	// The task's template.
36255	TemplateBody *string `locationName:"templateBody" type:"string"`
36256}
36257
36258// String returns the string representation
36259func (s DescribeThingRegistrationTaskOutput) String() string {
36260	return awsutil.Prettify(s)
36261}
36262
36263// GoString returns the string representation
36264func (s DescribeThingRegistrationTaskOutput) GoString() string {
36265	return s.String()
36266}
36267
36268// SetCreationDate sets the CreationDate field's value.
36269func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
36270	s.CreationDate = &v
36271	return s
36272}
36273
36274// SetFailureCount sets the FailureCount field's value.
36275func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
36276	s.FailureCount = &v
36277	return s
36278}
36279
36280// SetInputFileBucket sets the InputFileBucket field's value.
36281func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
36282	s.InputFileBucket = &v
36283	return s
36284}
36285
36286// SetInputFileKey sets the InputFileKey field's value.
36287func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
36288	s.InputFileKey = &v
36289	return s
36290}
36291
36292// SetLastModifiedDate sets the LastModifiedDate field's value.
36293func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
36294	s.LastModifiedDate = &v
36295	return s
36296}
36297
36298// SetMessage sets the Message field's value.
36299func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
36300	s.Message = &v
36301	return s
36302}
36303
36304// SetPercentageProgress sets the PercentageProgress field's value.
36305func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
36306	s.PercentageProgress = &v
36307	return s
36308}
36309
36310// SetRoleArn sets the RoleArn field's value.
36311func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
36312	s.RoleArn = &v
36313	return s
36314}
36315
36316// SetStatus sets the Status field's value.
36317func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
36318	s.Status = &v
36319	return s
36320}
36321
36322// SetSuccessCount sets the SuccessCount field's value.
36323func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
36324	s.SuccessCount = &v
36325	return s
36326}
36327
36328// SetTaskId sets the TaskId field's value.
36329func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
36330	s.TaskId = &v
36331	return s
36332}
36333
36334// SetTemplateBody sets the TemplateBody field's value.
36335func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
36336	s.TemplateBody = &v
36337	return s
36338}
36339
36340// The input for the DescribeThingType operation.
36341type DescribeThingTypeInput struct {
36342	_ struct{} `type:"structure"`
36343
36344	// The name of the thing type.
36345	//
36346	// ThingTypeName is a required field
36347	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
36348}
36349
36350// String returns the string representation
36351func (s DescribeThingTypeInput) String() string {
36352	return awsutil.Prettify(s)
36353}
36354
36355// GoString returns the string representation
36356func (s DescribeThingTypeInput) GoString() string {
36357	return s.String()
36358}
36359
36360// Validate inspects the fields of the type to determine if they are valid.
36361func (s *DescribeThingTypeInput) Validate() error {
36362	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
36363	if s.ThingTypeName == nil {
36364		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
36365	}
36366	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
36367		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
36368	}
36369
36370	if invalidParams.Len() > 0 {
36371		return invalidParams
36372	}
36373	return nil
36374}
36375
36376// SetThingTypeName sets the ThingTypeName field's value.
36377func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
36378	s.ThingTypeName = &v
36379	return s
36380}
36381
36382// The output for the DescribeThingType operation.
36383type DescribeThingTypeOutput struct {
36384	_ struct{} `type:"structure"`
36385
36386	// The thing type ARN.
36387	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
36388
36389	// The thing type ID.
36390	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
36391
36392	// The ThingTypeMetadata contains additional information about the thing type
36393	// including: creation date and time, a value indicating whether the thing type
36394	// is deprecated, and a date and time when it was deprecated.
36395	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
36396
36397	// The name of the thing type.
36398	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
36399
36400	// The ThingTypeProperties contains information about the thing type including
36401	// description, and a list of searchable thing attribute names.
36402	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
36403}
36404
36405// String returns the string representation
36406func (s DescribeThingTypeOutput) String() string {
36407	return awsutil.Prettify(s)
36408}
36409
36410// GoString returns the string representation
36411func (s DescribeThingTypeOutput) GoString() string {
36412	return s.String()
36413}
36414
36415// SetThingTypeArn sets the ThingTypeArn field's value.
36416func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
36417	s.ThingTypeArn = &v
36418	return s
36419}
36420
36421// SetThingTypeId sets the ThingTypeId field's value.
36422func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
36423	s.ThingTypeId = &v
36424	return s
36425}
36426
36427// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
36428func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
36429	s.ThingTypeMetadata = v
36430	return s
36431}
36432
36433// SetThingTypeName sets the ThingTypeName field's value.
36434func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
36435	s.ThingTypeName = &v
36436	return s
36437}
36438
36439// SetThingTypeProperties sets the ThingTypeProperties field's value.
36440func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
36441	s.ThingTypeProperties = v
36442	return s
36443}
36444
36445// Describes the location of the updated firmware.
36446type Destination struct {
36447	_ struct{} `type:"structure"`
36448
36449	// Describes the location in S3 of the updated firmware.
36450	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
36451}
36452
36453// String returns the string representation
36454func (s Destination) String() string {
36455	return awsutil.Prettify(s)
36456}
36457
36458// GoString returns the string representation
36459func (s Destination) GoString() string {
36460	return s.String()
36461}
36462
36463// Validate inspects the fields of the type to determine if they are valid.
36464func (s *Destination) Validate() error {
36465	invalidParams := request.ErrInvalidParams{Context: "Destination"}
36466	if s.S3Destination != nil {
36467		if err := s.S3Destination.Validate(); err != nil {
36468			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
36469		}
36470	}
36471
36472	if invalidParams.Len() > 0 {
36473		return invalidParams
36474	}
36475	return nil
36476}
36477
36478// SetS3Destination sets the S3Destination field's value.
36479func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
36480	s.S3Destination = v
36481	return s
36482}
36483
36484type DetachPolicyInput struct {
36485	_ struct{} `type:"structure"`
36486
36487	// The policy to detach.
36488	//
36489	// PolicyName is a required field
36490	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
36491
36492	// The target from which the policy will be detached.
36493	//
36494	// Target is a required field
36495	Target *string `locationName:"target" type:"string" required:"true"`
36496}
36497
36498// String returns the string representation
36499func (s DetachPolicyInput) String() string {
36500	return awsutil.Prettify(s)
36501}
36502
36503// GoString returns the string representation
36504func (s DetachPolicyInput) GoString() string {
36505	return s.String()
36506}
36507
36508// Validate inspects the fields of the type to determine if they are valid.
36509func (s *DetachPolicyInput) Validate() error {
36510	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
36511	if s.PolicyName == nil {
36512		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
36513	}
36514	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
36515		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
36516	}
36517	if s.Target == nil {
36518		invalidParams.Add(request.NewErrParamRequired("Target"))
36519	}
36520
36521	if invalidParams.Len() > 0 {
36522		return invalidParams
36523	}
36524	return nil
36525}
36526
36527// SetPolicyName sets the PolicyName field's value.
36528func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
36529	s.PolicyName = &v
36530	return s
36531}
36532
36533// SetTarget sets the Target field's value.
36534func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
36535	s.Target = &v
36536	return s
36537}
36538
36539type DetachPolicyOutput struct {
36540	_ struct{} `type:"structure"`
36541}
36542
36543// String returns the string representation
36544func (s DetachPolicyOutput) String() string {
36545	return awsutil.Prettify(s)
36546}
36547
36548// GoString returns the string representation
36549func (s DetachPolicyOutput) GoString() string {
36550	return s.String()
36551}
36552
36553// The input for the DetachPrincipalPolicy operation.
36554type DetachPrincipalPolicyInput struct {
36555	_ struct{} `type:"structure"`
36556
36557	// The name of the policy to detach.
36558	//
36559	// PolicyName is a required field
36560	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
36561
36562	// The principal.
36563	//
36564	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
36565	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
36566	// (region:id).
36567	//
36568	// Principal is a required field
36569	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
36570}
36571
36572// String returns the string representation
36573func (s DetachPrincipalPolicyInput) String() string {
36574	return awsutil.Prettify(s)
36575}
36576
36577// GoString returns the string representation
36578func (s DetachPrincipalPolicyInput) GoString() string {
36579	return s.String()
36580}
36581
36582// Validate inspects the fields of the type to determine if they are valid.
36583func (s *DetachPrincipalPolicyInput) Validate() error {
36584	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
36585	if s.PolicyName == nil {
36586		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
36587	}
36588	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
36589		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
36590	}
36591	if s.Principal == nil {
36592		invalidParams.Add(request.NewErrParamRequired("Principal"))
36593	}
36594
36595	if invalidParams.Len() > 0 {
36596		return invalidParams
36597	}
36598	return nil
36599}
36600
36601// SetPolicyName sets the PolicyName field's value.
36602func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
36603	s.PolicyName = &v
36604	return s
36605}
36606
36607// SetPrincipal sets the Principal field's value.
36608func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
36609	s.Principal = &v
36610	return s
36611}
36612
36613type DetachPrincipalPolicyOutput struct {
36614	_ struct{} `type:"structure"`
36615}
36616
36617// String returns the string representation
36618func (s DetachPrincipalPolicyOutput) String() string {
36619	return awsutil.Prettify(s)
36620}
36621
36622// GoString returns the string representation
36623func (s DetachPrincipalPolicyOutput) GoString() string {
36624	return s.String()
36625}
36626
36627type DetachSecurityProfileInput struct {
36628	_ struct{} `type:"structure"`
36629
36630	// The security profile that is detached.
36631	//
36632	// SecurityProfileName is a required field
36633	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
36634
36635	// The ARN of the thing group from which the security profile is detached.
36636	//
36637	// SecurityProfileTargetArn is a required field
36638	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
36639}
36640
36641// String returns the string representation
36642func (s DetachSecurityProfileInput) String() string {
36643	return awsutil.Prettify(s)
36644}
36645
36646// GoString returns the string representation
36647func (s DetachSecurityProfileInput) GoString() string {
36648	return s.String()
36649}
36650
36651// Validate inspects the fields of the type to determine if they are valid.
36652func (s *DetachSecurityProfileInput) Validate() error {
36653	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
36654	if s.SecurityProfileName == nil {
36655		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
36656	}
36657	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
36658		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
36659	}
36660	if s.SecurityProfileTargetArn == nil {
36661		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
36662	}
36663
36664	if invalidParams.Len() > 0 {
36665		return invalidParams
36666	}
36667	return nil
36668}
36669
36670// SetSecurityProfileName sets the SecurityProfileName field's value.
36671func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
36672	s.SecurityProfileName = &v
36673	return s
36674}
36675
36676// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
36677func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
36678	s.SecurityProfileTargetArn = &v
36679	return s
36680}
36681
36682type DetachSecurityProfileOutput struct {
36683	_ struct{} `type:"structure"`
36684}
36685
36686// String returns the string representation
36687func (s DetachSecurityProfileOutput) String() string {
36688	return awsutil.Prettify(s)
36689}
36690
36691// GoString returns the string representation
36692func (s DetachSecurityProfileOutput) GoString() string {
36693	return s.String()
36694}
36695
36696// The input for the DetachThingPrincipal operation.
36697type DetachThingPrincipalInput struct {
36698	_ struct{} `type:"structure"`
36699
36700	// If the principal is a certificate, this value must be ARN of the certificate.
36701	// If the principal is an Amazon Cognito identity, this value must be the ID
36702	// of the Amazon Cognito identity.
36703	//
36704	// Principal is a required field
36705	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
36706
36707	// The name of the thing.
36708	//
36709	// ThingName is a required field
36710	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36711}
36712
36713// String returns the string representation
36714func (s DetachThingPrincipalInput) String() string {
36715	return awsutil.Prettify(s)
36716}
36717
36718// GoString returns the string representation
36719func (s DetachThingPrincipalInput) GoString() string {
36720	return s.String()
36721}
36722
36723// Validate inspects the fields of the type to determine if they are valid.
36724func (s *DetachThingPrincipalInput) Validate() error {
36725	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
36726	if s.Principal == nil {
36727		invalidParams.Add(request.NewErrParamRequired("Principal"))
36728	}
36729	if s.ThingName == nil {
36730		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36731	}
36732	if s.ThingName != nil && len(*s.ThingName) < 1 {
36733		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36734	}
36735
36736	if invalidParams.Len() > 0 {
36737		return invalidParams
36738	}
36739	return nil
36740}
36741
36742// SetPrincipal sets the Principal field's value.
36743func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
36744	s.Principal = &v
36745	return s
36746}
36747
36748// SetThingName sets the ThingName field's value.
36749func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
36750	s.ThingName = &v
36751	return s
36752}
36753
36754// The output from the DetachThingPrincipal operation.
36755type DetachThingPrincipalOutput struct {
36756	_ struct{} `type:"structure"`
36757}
36758
36759// String returns the string representation
36760func (s DetachThingPrincipalOutput) String() string {
36761	return awsutil.Prettify(s)
36762}
36763
36764// GoString returns the string representation
36765func (s DetachThingPrincipalOutput) GoString() string {
36766	return s.String()
36767}
36768
36769// Describes which mitigation actions should be executed.
36770type DetectMitigationActionExecution struct {
36771	_ struct{} `type:"structure"`
36772
36773	// The friendly name that uniquely identifies the mitigation action.
36774	ActionName *string `locationName:"actionName" type:"string"`
36775
36776	// The error code of a mitigation action.
36777	ErrorCode *string `locationName:"errorCode" type:"string"`
36778
36779	// The date a mitigation action ended.
36780	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
36781
36782	// The date a mitigation action was started.
36783	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
36784
36785	// The message of a mitigation action.
36786	Message *string `locationName:"message" type:"string"`
36787
36788	// The status of a mitigation action.
36789	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
36790
36791	// The unique identifier of the task.
36792	TaskId *string `locationName:"taskId" min:"1" type:"string"`
36793
36794	// The name of the thing.
36795	ThingName *string `locationName:"thingName" min:"1" type:"string"`
36796
36797	// The unique identifier of the violation.
36798	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
36799}
36800
36801// String returns the string representation
36802func (s DetectMitigationActionExecution) String() string {
36803	return awsutil.Prettify(s)
36804}
36805
36806// GoString returns the string representation
36807func (s DetectMitigationActionExecution) GoString() string {
36808	return s.String()
36809}
36810
36811// SetActionName sets the ActionName field's value.
36812func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
36813	s.ActionName = &v
36814	return s
36815}
36816
36817// SetErrorCode sets the ErrorCode field's value.
36818func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
36819	s.ErrorCode = &v
36820	return s
36821}
36822
36823// SetExecutionEndDate sets the ExecutionEndDate field's value.
36824func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
36825	s.ExecutionEndDate = &v
36826	return s
36827}
36828
36829// SetExecutionStartDate sets the ExecutionStartDate field's value.
36830func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
36831	s.ExecutionStartDate = &v
36832	return s
36833}
36834
36835// SetMessage sets the Message field's value.
36836func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
36837	s.Message = &v
36838	return s
36839}
36840
36841// SetStatus sets the Status field's value.
36842func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
36843	s.Status = &v
36844	return s
36845}
36846
36847// SetTaskId sets the TaskId field's value.
36848func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
36849	s.TaskId = &v
36850	return s
36851}
36852
36853// SetThingName sets the ThingName field's value.
36854func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
36855	s.ThingName = &v
36856	return s
36857}
36858
36859// SetViolationId sets the ViolationId field's value.
36860func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
36861	s.ViolationId = &v
36862	return s
36863}
36864
36865// The statistics of a mitigation action task.
36866type DetectMitigationActionsTaskStatistics struct {
36867	_ struct{} `type:"structure"`
36868
36869	// The actions that were performed.
36870	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
36871
36872	// The actions that failed.
36873	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
36874
36875	// The actions that were skipped.
36876	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
36877}
36878
36879// String returns the string representation
36880func (s DetectMitigationActionsTaskStatistics) String() string {
36881	return awsutil.Prettify(s)
36882}
36883
36884// GoString returns the string representation
36885func (s DetectMitigationActionsTaskStatistics) GoString() string {
36886	return s.String()
36887}
36888
36889// SetActionsExecuted sets the ActionsExecuted field's value.
36890func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
36891	s.ActionsExecuted = &v
36892	return s
36893}
36894
36895// SetActionsFailed sets the ActionsFailed field's value.
36896func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
36897	s.ActionsFailed = &v
36898	return s
36899}
36900
36901// SetActionsSkipped sets the ActionsSkipped field's value.
36902func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
36903	s.ActionsSkipped = &v
36904	return s
36905}
36906
36907// The summary of the mitigation action tasks.
36908type DetectMitigationActionsTaskSummary struct {
36909	_ struct{} `type:"structure"`
36910
36911	// The definition of the actions.
36912	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
36913
36914	// Includes only active violations.
36915	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
36916
36917	// Includes suppressed alerts.
36918	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
36919
36920	// Specifies the ML Detect findings to which the mitigation actions are applied.
36921	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
36922
36923	// The date the task ended.
36924	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
36925
36926	// The unique identifier of the task.
36927	TaskId *string `locationName:"taskId" min:"1" type:"string"`
36928
36929	// The date the task started.
36930	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
36931
36932	// The statistics of a mitigation action task.
36933	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
36934
36935	// The status of the task.
36936	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
36937
36938	// Specifies the time period of which violation events occurred between.
36939	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
36940}
36941
36942// String returns the string representation
36943func (s DetectMitigationActionsTaskSummary) String() string {
36944	return awsutil.Prettify(s)
36945}
36946
36947// GoString returns the string representation
36948func (s DetectMitigationActionsTaskSummary) GoString() string {
36949	return s.String()
36950}
36951
36952// SetActionsDefinition sets the ActionsDefinition field's value.
36953func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
36954	s.ActionsDefinition = v
36955	return s
36956}
36957
36958// SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
36959func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
36960	s.OnlyActiveViolationsIncluded = &v
36961	return s
36962}
36963
36964// SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
36965func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
36966	s.SuppressedAlertsIncluded = &v
36967	return s
36968}
36969
36970// SetTarget sets the Target field's value.
36971func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
36972	s.Target = v
36973	return s
36974}
36975
36976// SetTaskEndTime sets the TaskEndTime field's value.
36977func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
36978	s.TaskEndTime = &v
36979	return s
36980}
36981
36982// SetTaskId sets the TaskId field's value.
36983func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
36984	s.TaskId = &v
36985	return s
36986}
36987
36988// SetTaskStartTime sets the TaskStartTime field's value.
36989func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
36990	s.TaskStartTime = &v
36991	return s
36992}
36993
36994// SetTaskStatistics sets the TaskStatistics field's value.
36995func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
36996	s.TaskStatistics = v
36997	return s
36998}
36999
37000// SetTaskStatus sets the TaskStatus field's value.
37001func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
37002	s.TaskStatus = &v
37003	return s
37004}
37005
37006// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
37007func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
37008	s.ViolationEventOccurrenceRange = v
37009	return s
37010}
37011
37012// The target of a mitigation action task.
37013type DetectMitigationActionsTaskTarget struct {
37014	_ struct{} `type:"structure"`
37015
37016	// The name of the behavior.
37017	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
37018
37019	// The name of the security profile.
37020	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
37021
37022	// The unique identifiers of the violations.
37023	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
37024}
37025
37026// String returns the string representation
37027func (s DetectMitigationActionsTaskTarget) String() string {
37028	return awsutil.Prettify(s)
37029}
37030
37031// GoString returns the string representation
37032func (s DetectMitigationActionsTaskTarget) GoString() string {
37033	return s.String()
37034}
37035
37036// Validate inspects the fields of the type to determine if they are valid.
37037func (s *DetectMitigationActionsTaskTarget) Validate() error {
37038	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
37039	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
37040		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
37041	}
37042	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37043		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37044	}
37045	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
37046		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
37047	}
37048
37049	if invalidParams.Len() > 0 {
37050		return invalidParams
37051	}
37052	return nil
37053}
37054
37055// SetBehaviorName sets the BehaviorName field's value.
37056func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
37057	s.BehaviorName = &v
37058	return s
37059}
37060
37061// SetSecurityProfileName sets the SecurityProfileName field's value.
37062func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
37063	s.SecurityProfileName = &v
37064	return s
37065}
37066
37067// SetViolationIds sets the ViolationIds field's value.
37068func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
37069	s.ViolationIds = v
37070	return s
37071}
37072
37073// The input for the DisableTopicRuleRequest operation.
37074type DisableTopicRuleInput struct {
37075	_ struct{} `type:"structure"`
37076
37077	// The name of the rule to disable.
37078	//
37079	// RuleName is a required field
37080	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
37081}
37082
37083// String returns the string representation
37084func (s DisableTopicRuleInput) String() string {
37085	return awsutil.Prettify(s)
37086}
37087
37088// GoString returns the string representation
37089func (s DisableTopicRuleInput) GoString() string {
37090	return s.String()
37091}
37092
37093// Validate inspects the fields of the type to determine if they are valid.
37094func (s *DisableTopicRuleInput) Validate() error {
37095	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
37096	if s.RuleName == nil {
37097		invalidParams.Add(request.NewErrParamRequired("RuleName"))
37098	}
37099	if s.RuleName != nil && len(*s.RuleName) < 1 {
37100		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
37101	}
37102
37103	if invalidParams.Len() > 0 {
37104		return invalidParams
37105	}
37106	return nil
37107}
37108
37109// SetRuleName sets the RuleName field's value.
37110func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
37111	s.RuleName = &v
37112	return s
37113}
37114
37115type DisableTopicRuleOutput struct {
37116	_ struct{} `type:"structure"`
37117}
37118
37119// String returns the string representation
37120func (s DisableTopicRuleOutput) String() string {
37121	return awsutil.Prettify(s)
37122}
37123
37124// GoString returns the string representation
37125func (s DisableTopicRuleOutput) GoString() string {
37126	return s.String()
37127}
37128
37129// The summary of a domain configuration. A domain configuration specifies custom
37130// IoT-specific information about a domain. A domain configuration can be associated
37131// with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
37132// a customer managed domain, or a default endpoint.
37133//
37134//    * Data
37135//
37136//    * Jobs
37137//
37138//    * CredentialProvider
37139//
37140// The domain configuration feature is in public preview and is subject to change.
37141type DomainConfigurationSummary struct {
37142	_ struct{} `type:"structure"`
37143
37144	// The ARN of the domain configuration.
37145	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
37146
37147	// The name of the domain configuration. This value must be unique to a region.
37148	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
37149
37150	// The type of service delivered by the endpoint.
37151	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
37152}
37153
37154// String returns the string representation
37155func (s DomainConfigurationSummary) String() string {
37156	return awsutil.Prettify(s)
37157}
37158
37159// GoString returns the string representation
37160func (s DomainConfigurationSummary) GoString() string {
37161	return s.String()
37162}
37163
37164// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
37165func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
37166	s.DomainConfigurationArn = &v
37167	return s
37168}
37169
37170// SetDomainConfigurationName sets the DomainConfigurationName field's value.
37171func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
37172	s.DomainConfigurationName = &v
37173	return s
37174}
37175
37176// SetServiceType sets the ServiceType field's value.
37177func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
37178	s.ServiceType = &v
37179	return s
37180}
37181
37182// Describes an action to write to a DynamoDB table.
37183//
37184// The tableName, hashKeyField, and rangeKeyField values must match the values
37185// used when you created the table.
37186//
37187// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
37188// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
37189//
37190// You can specify any valid expression in a WHERE or SELECT clause, including
37191// JSON properties, comparisons, calculations, and functions. For example, the
37192// following field uses the third level of the topic:
37193//
37194// "hashKeyValue": "${topic(3)}"
37195//
37196// The following field uses the timestamp:
37197//
37198// "rangeKeyValue": "${timestamp()}"
37199type DynamoDBAction struct {
37200	_ struct{} `type:"structure"`
37201
37202	// The hash key name.
37203	//
37204	// HashKeyField is a required field
37205	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
37206
37207	// The hash key type. Valid values are "STRING" or "NUMBER"
37208	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
37209
37210	// The hash key value.
37211	//
37212	// HashKeyValue is a required field
37213	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
37214
37215	// The type of operation to be performed. This follows the substitution template,
37216	// so it can be ${operation}, but the substitution must result in one of the
37217	// following: INSERT, UPDATE, or DELETE.
37218	Operation *string `locationName:"operation" type:"string"`
37219
37220	// The action payload. This name can be customized.
37221	PayloadField *string `locationName:"payloadField" type:"string"`
37222
37223	// The range key name.
37224	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
37225
37226	// The range key type. Valid values are "STRING" or "NUMBER"
37227	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
37228
37229	// The range key value.
37230	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
37231
37232	// The ARN of the IAM role that grants access to the DynamoDB table.
37233	//
37234	// RoleArn is a required field
37235	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
37236
37237	// The name of the DynamoDB table.
37238	//
37239	// TableName is a required field
37240	TableName *string `locationName:"tableName" type:"string" required:"true"`
37241}
37242
37243// String returns the string representation
37244func (s DynamoDBAction) String() string {
37245	return awsutil.Prettify(s)
37246}
37247
37248// GoString returns the string representation
37249func (s DynamoDBAction) GoString() string {
37250	return s.String()
37251}
37252
37253// Validate inspects the fields of the type to determine if they are valid.
37254func (s *DynamoDBAction) Validate() error {
37255	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
37256	if s.HashKeyField == nil {
37257		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
37258	}
37259	if s.HashKeyValue == nil {
37260		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
37261	}
37262	if s.RoleArn == nil {
37263		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
37264	}
37265	if s.TableName == nil {
37266		invalidParams.Add(request.NewErrParamRequired("TableName"))
37267	}
37268
37269	if invalidParams.Len() > 0 {
37270		return invalidParams
37271	}
37272	return nil
37273}
37274
37275// SetHashKeyField sets the HashKeyField field's value.
37276func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
37277	s.HashKeyField = &v
37278	return s
37279}
37280
37281// SetHashKeyType sets the HashKeyType field's value.
37282func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
37283	s.HashKeyType = &v
37284	return s
37285}
37286
37287// SetHashKeyValue sets the HashKeyValue field's value.
37288func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
37289	s.HashKeyValue = &v
37290	return s
37291}
37292
37293// SetOperation sets the Operation field's value.
37294func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
37295	s.Operation = &v
37296	return s
37297}
37298
37299// SetPayloadField sets the PayloadField field's value.
37300func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
37301	s.PayloadField = &v
37302	return s
37303}
37304
37305// SetRangeKeyField sets the RangeKeyField field's value.
37306func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
37307	s.RangeKeyField = &v
37308	return s
37309}
37310
37311// SetRangeKeyType sets the RangeKeyType field's value.
37312func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
37313	s.RangeKeyType = &v
37314	return s
37315}
37316
37317// SetRangeKeyValue sets the RangeKeyValue field's value.
37318func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
37319	s.RangeKeyValue = &v
37320	return s
37321}
37322
37323// SetRoleArn sets the RoleArn field's value.
37324func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
37325	s.RoleArn = &v
37326	return s
37327}
37328
37329// SetTableName sets the TableName field's value.
37330func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
37331	s.TableName = &v
37332	return s
37333}
37334
37335// Describes an action to write to a DynamoDB table.
37336//
37337// This DynamoDB action writes each attribute in the message payload into it's
37338// own column in the DynamoDB table.
37339type DynamoDBv2Action struct {
37340	_ struct{} `type:"structure"`
37341
37342	// Specifies the DynamoDB table to which the message data will be written. For
37343	// example:
37344	//
37345	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
37346	// "my-table" } } }
37347	//
37348	// Each attribute in the message payload will be written to a separate column
37349	// in the DynamoDB database.
37350	//
37351	// PutItem is a required field
37352	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
37353
37354	// The ARN of the IAM role that grants access to the DynamoDB table.
37355	//
37356	// RoleArn is a required field
37357	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
37358}
37359
37360// String returns the string representation
37361func (s DynamoDBv2Action) String() string {
37362	return awsutil.Prettify(s)
37363}
37364
37365// GoString returns the string representation
37366func (s DynamoDBv2Action) GoString() string {
37367	return s.String()
37368}
37369
37370// Validate inspects the fields of the type to determine if they are valid.
37371func (s *DynamoDBv2Action) Validate() error {
37372	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
37373	if s.PutItem == nil {
37374		invalidParams.Add(request.NewErrParamRequired("PutItem"))
37375	}
37376	if s.RoleArn == nil {
37377		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
37378	}
37379	if s.PutItem != nil {
37380		if err := s.PutItem.Validate(); err != nil {
37381			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
37382		}
37383	}
37384
37385	if invalidParams.Len() > 0 {
37386		return invalidParams
37387	}
37388	return nil
37389}
37390
37391// SetPutItem sets the PutItem field's value.
37392func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
37393	s.PutItem = v
37394	return s
37395}
37396
37397// SetRoleArn sets the RoleArn field's value.
37398func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
37399	s.RoleArn = &v
37400	return s
37401}
37402
37403// The policy that has the effect on the authorization results.
37404type EffectivePolicy struct {
37405	_ struct{} `type:"structure"`
37406
37407	// The policy ARN.
37408	PolicyArn *string `locationName:"policyArn" type:"string"`
37409
37410	// The IAM policy document.
37411	PolicyDocument *string `locationName:"policyDocument" type:"string"`
37412
37413	// The policy name.
37414	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
37415}
37416
37417// String returns the string representation
37418func (s EffectivePolicy) String() string {
37419	return awsutil.Prettify(s)
37420}
37421
37422// GoString returns the string representation
37423func (s EffectivePolicy) GoString() string {
37424	return s.String()
37425}
37426
37427// SetPolicyArn sets the PolicyArn field's value.
37428func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
37429	s.PolicyArn = &v
37430	return s
37431}
37432
37433// SetPolicyDocument sets the PolicyDocument field's value.
37434func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
37435	s.PolicyDocument = &v
37436	return s
37437}
37438
37439// SetPolicyName sets the PolicyName field's value.
37440func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
37441	s.PolicyName = &v
37442	return s
37443}
37444
37445// Describes an action that writes data to an Amazon Elasticsearch Service domain.
37446type ElasticsearchAction struct {
37447	_ struct{} `type:"structure"`
37448
37449	// The endpoint of your Elasticsearch domain.
37450	//
37451	// Endpoint is a required field
37452	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
37453
37454	// The unique identifier for the document you are storing.
37455	//
37456	// Id is a required field
37457	Id *string `locationName:"id" type:"string" required:"true"`
37458
37459	// The Elasticsearch index where you want to store your data.
37460	//
37461	// Index is a required field
37462	Index *string `locationName:"index" type:"string" required:"true"`
37463
37464	// The IAM role ARN that has access to Elasticsearch.
37465	//
37466	// RoleArn is a required field
37467	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
37468
37469	// The type of document you are storing.
37470	//
37471	// Type is a required field
37472	Type *string `locationName:"type" type:"string" required:"true"`
37473}
37474
37475// String returns the string representation
37476func (s ElasticsearchAction) String() string {
37477	return awsutil.Prettify(s)
37478}
37479
37480// GoString returns the string representation
37481func (s ElasticsearchAction) GoString() string {
37482	return s.String()
37483}
37484
37485// Validate inspects the fields of the type to determine if they are valid.
37486func (s *ElasticsearchAction) Validate() error {
37487	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
37488	if s.Endpoint == nil {
37489		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
37490	}
37491	if s.Id == nil {
37492		invalidParams.Add(request.NewErrParamRequired("Id"))
37493	}
37494	if s.Index == nil {
37495		invalidParams.Add(request.NewErrParamRequired("Index"))
37496	}
37497	if s.RoleArn == nil {
37498		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
37499	}
37500	if s.Type == nil {
37501		invalidParams.Add(request.NewErrParamRequired("Type"))
37502	}
37503
37504	if invalidParams.Len() > 0 {
37505		return invalidParams
37506	}
37507	return nil
37508}
37509
37510// SetEndpoint sets the Endpoint field's value.
37511func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
37512	s.Endpoint = &v
37513	return s
37514}
37515
37516// SetId sets the Id field's value.
37517func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
37518	s.Id = &v
37519	return s
37520}
37521
37522// SetIndex sets the Index field's value.
37523func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
37524	s.Index = &v
37525	return s
37526}
37527
37528// SetRoleArn sets the RoleArn field's value.
37529func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
37530	s.RoleArn = &v
37531	return s
37532}
37533
37534// SetType sets the Type field's value.
37535func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
37536	s.Type = &v
37537	return s
37538}
37539
37540// Parameters used when defining a mitigation action that enable AWS IoT logging.
37541type EnableIoTLoggingParams struct {
37542	_ struct{} `type:"structure"`
37543
37544	// Specifies the type of information to be logged.
37545	//
37546	// LogLevel is a required field
37547	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
37548
37549	// The Amazon Resource Name (ARN) of the IAM role used for logging.
37550	//
37551	// RoleArnForLogging is a required field
37552	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
37553}
37554
37555// String returns the string representation
37556func (s EnableIoTLoggingParams) String() string {
37557	return awsutil.Prettify(s)
37558}
37559
37560// GoString returns the string representation
37561func (s EnableIoTLoggingParams) GoString() string {
37562	return s.String()
37563}
37564
37565// Validate inspects the fields of the type to determine if they are valid.
37566func (s *EnableIoTLoggingParams) Validate() error {
37567	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
37568	if s.LogLevel == nil {
37569		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
37570	}
37571	if s.RoleArnForLogging == nil {
37572		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
37573	}
37574	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
37575		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
37576	}
37577
37578	if invalidParams.Len() > 0 {
37579		return invalidParams
37580	}
37581	return nil
37582}
37583
37584// SetLogLevel sets the LogLevel field's value.
37585func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
37586	s.LogLevel = &v
37587	return s
37588}
37589
37590// SetRoleArnForLogging sets the RoleArnForLogging field's value.
37591func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
37592	s.RoleArnForLogging = &v
37593	return s
37594}
37595
37596// The input for the EnableTopicRuleRequest operation.
37597type EnableTopicRuleInput struct {
37598	_ struct{} `type:"structure"`
37599
37600	// The name of the topic rule to enable.
37601	//
37602	// RuleName is a required field
37603	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
37604}
37605
37606// String returns the string representation
37607func (s EnableTopicRuleInput) String() string {
37608	return awsutil.Prettify(s)
37609}
37610
37611// GoString returns the string representation
37612func (s EnableTopicRuleInput) GoString() string {
37613	return s.String()
37614}
37615
37616// Validate inspects the fields of the type to determine if they are valid.
37617func (s *EnableTopicRuleInput) Validate() error {
37618	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
37619	if s.RuleName == nil {
37620		invalidParams.Add(request.NewErrParamRequired("RuleName"))
37621	}
37622	if s.RuleName != nil && len(*s.RuleName) < 1 {
37623		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
37624	}
37625
37626	if invalidParams.Len() > 0 {
37627		return invalidParams
37628	}
37629	return nil
37630}
37631
37632// SetRuleName sets the RuleName field's value.
37633func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
37634	s.RuleName = &v
37635	return s
37636}
37637
37638type EnableTopicRuleOutput struct {
37639	_ struct{} `type:"structure"`
37640}
37641
37642// String returns the string representation
37643func (s EnableTopicRuleOutput) String() string {
37644	return awsutil.Prettify(s)
37645}
37646
37647// GoString returns the string representation
37648func (s EnableTopicRuleOutput) GoString() string {
37649	return s.String()
37650}
37651
37652// Error information.
37653type ErrorInfo struct {
37654	_ struct{} `type:"structure"`
37655
37656	// The error code.
37657	Code *string `locationName:"code" type:"string"`
37658
37659	// The error message.
37660	Message *string `locationName:"message" type:"string"`
37661}
37662
37663// String returns the string representation
37664func (s ErrorInfo) String() string {
37665	return awsutil.Prettify(s)
37666}
37667
37668// GoString returns the string representation
37669func (s ErrorInfo) GoString() string {
37670	return s.String()
37671}
37672
37673// SetCode sets the Code field's value.
37674func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
37675	s.Code = &v
37676	return s
37677}
37678
37679// SetMessage sets the Message field's value.
37680func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
37681	s.Message = &v
37682	return s
37683}
37684
37685// Information that explicitly denies authorization.
37686type ExplicitDeny struct {
37687	_ struct{} `type:"structure"`
37688
37689	// The policies that denied the authorization.
37690	Policies []*Policy `locationName:"policies" type:"list"`
37691}
37692
37693// String returns the string representation
37694func (s ExplicitDeny) String() string {
37695	return awsutil.Prettify(s)
37696}
37697
37698// GoString returns the string representation
37699func (s ExplicitDeny) GoString() string {
37700	return s.String()
37701}
37702
37703// SetPolicies sets the Policies field's value.
37704func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
37705	s.Policies = v
37706	return s
37707}
37708
37709// Allows you to create an exponential rate of rollout for a job.
37710type ExponentialRolloutRate struct {
37711	_ struct{} `type:"structure"`
37712
37713	// The minimum number of things that will be notified of a pending job, per
37714	// minute at the start of job rollout. This parameter allows you to define the
37715	// initial rate of rollout.
37716	//
37717	// BaseRatePerMinute is a required field
37718	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
37719
37720	// The exponential factor to increase the rate of rollout for a job.
37721	//
37722	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
37723	// not 1.55).
37724	//
37725	// IncrementFactor is a required field
37726	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
37727
37728	// The criteria to initiate the increase in rate of rollout for a job.
37729	//
37730	// RateIncreaseCriteria is a required field
37731	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
37732}
37733
37734// String returns the string representation
37735func (s ExponentialRolloutRate) String() string {
37736	return awsutil.Prettify(s)
37737}
37738
37739// GoString returns the string representation
37740func (s ExponentialRolloutRate) GoString() string {
37741	return s.String()
37742}
37743
37744// Validate inspects the fields of the type to determine if they are valid.
37745func (s *ExponentialRolloutRate) Validate() error {
37746	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
37747	if s.BaseRatePerMinute == nil {
37748		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
37749	}
37750	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
37751		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
37752	}
37753	if s.IncrementFactor == nil {
37754		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
37755	}
37756	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
37757		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
37758	}
37759	if s.RateIncreaseCriteria == nil {
37760		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
37761	}
37762	if s.RateIncreaseCriteria != nil {
37763		if err := s.RateIncreaseCriteria.Validate(); err != nil {
37764			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
37765		}
37766	}
37767
37768	if invalidParams.Len() > 0 {
37769		return invalidParams
37770	}
37771	return nil
37772}
37773
37774// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
37775func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
37776	s.BaseRatePerMinute = &v
37777	return s
37778}
37779
37780// SetIncrementFactor sets the IncrementFactor field's value.
37781func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
37782	s.IncrementFactor = &v
37783	return s
37784}
37785
37786// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
37787func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
37788	s.RateIncreaseCriteria = v
37789	return s
37790}
37791
37792// Describes the name and data type at a field.
37793type Field struct {
37794	_ struct{} `type:"structure"`
37795
37796	// The name of the field.
37797	Name *string `locationName:"name" type:"string"`
37798
37799	// The datatype of the field.
37800	Type *string `locationName:"type" type:"string" enum:"FieldType"`
37801}
37802
37803// String returns the string representation
37804func (s Field) String() string {
37805	return awsutil.Prettify(s)
37806}
37807
37808// GoString returns the string representation
37809func (s Field) GoString() string {
37810	return s.String()
37811}
37812
37813// SetName sets the Name field's value.
37814func (s *Field) SetName(v string) *Field {
37815	s.Name = &v
37816	return s
37817}
37818
37819// SetType sets the Type field's value.
37820func (s *Field) SetType(v string) *Field {
37821	s.Type = &v
37822	return s
37823}
37824
37825// The location of the OTA update.
37826type FileLocation struct {
37827	_ struct{} `type:"structure"`
37828
37829	// The location of the updated firmware in S3.
37830	S3Location *S3Location `locationName:"s3Location" type:"structure"`
37831
37832	// The stream that contains the OTA update.
37833	Stream *Stream `locationName:"stream" type:"structure"`
37834}
37835
37836// String returns the string representation
37837func (s FileLocation) String() string {
37838	return awsutil.Prettify(s)
37839}
37840
37841// GoString returns the string representation
37842func (s FileLocation) GoString() string {
37843	return s.String()
37844}
37845
37846// Validate inspects the fields of the type to determine if they are valid.
37847func (s *FileLocation) Validate() error {
37848	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
37849	if s.S3Location != nil {
37850		if err := s.S3Location.Validate(); err != nil {
37851			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
37852		}
37853	}
37854	if s.Stream != nil {
37855		if err := s.Stream.Validate(); err != nil {
37856			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
37857		}
37858	}
37859
37860	if invalidParams.Len() > 0 {
37861		return invalidParams
37862	}
37863	return nil
37864}
37865
37866// SetS3Location sets the S3Location field's value.
37867func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
37868	s.S3Location = v
37869	return s
37870}
37871
37872// SetStream sets the Stream field's value.
37873func (s *FileLocation) SetStream(v *Stream) *FileLocation {
37874	s.Stream = v
37875	return s
37876}
37877
37878// Describes an action that writes data to an Amazon Kinesis Firehose stream.
37879type FirehoseAction struct {
37880	_ struct{} `type:"structure"`
37881
37882	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
37883	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
37884	// The default value is false.
37885	//
37886	// When batchMode is true and the rule's SQL statement evaluates to an Array,
37887	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
37888	// request. The resulting array can't have more than 500 records.
37889	BatchMode *bool `locationName:"batchMode" type:"boolean"`
37890
37891	// The delivery stream name.
37892	//
37893	// DeliveryStreamName is a required field
37894	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
37895
37896	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
37897	//
37898	// RoleArn is a required field
37899	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
37900
37901	// A character separator that will be used to separate records written to the
37902	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
37903	// newline), ',' (comma).
37904	Separator *string `locationName:"separator" type:"string"`
37905}
37906
37907// String returns the string representation
37908func (s FirehoseAction) String() string {
37909	return awsutil.Prettify(s)
37910}
37911
37912// GoString returns the string representation
37913func (s FirehoseAction) GoString() string {
37914	return s.String()
37915}
37916
37917// Validate inspects the fields of the type to determine if they are valid.
37918func (s *FirehoseAction) Validate() error {
37919	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
37920	if s.DeliveryStreamName == nil {
37921		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
37922	}
37923	if s.RoleArn == nil {
37924		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
37925	}
37926
37927	if invalidParams.Len() > 0 {
37928		return invalidParams
37929	}
37930	return nil
37931}
37932
37933// SetBatchMode sets the BatchMode field's value.
37934func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
37935	s.BatchMode = &v
37936	return s
37937}
37938
37939// SetDeliveryStreamName sets the DeliveryStreamName field's value.
37940func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
37941	s.DeliveryStreamName = &v
37942	return s
37943}
37944
37945// SetRoleArn sets the RoleArn field's value.
37946func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
37947	s.RoleArn = &v
37948	return s
37949}
37950
37951// SetSeparator sets the Separator field's value.
37952func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
37953	s.Separator = &v
37954	return s
37955}
37956
37957type GetBehaviorModelTrainingSummariesInput struct {
37958	_ struct{} `type:"structure"`
37959
37960	// The maximum number of results to return at one time. The default is 25.
37961	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
37962
37963	// The token for the next set of results.
37964	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
37965
37966	// The name of the security profile.
37967	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
37968}
37969
37970// String returns the string representation
37971func (s GetBehaviorModelTrainingSummariesInput) String() string {
37972	return awsutil.Prettify(s)
37973}
37974
37975// GoString returns the string representation
37976func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
37977	return s.String()
37978}
37979
37980// Validate inspects the fields of the type to determine if they are valid.
37981func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
37982	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
37983	if s.MaxResults != nil && *s.MaxResults < 1 {
37984		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
37985	}
37986	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37987		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37988	}
37989
37990	if invalidParams.Len() > 0 {
37991		return invalidParams
37992	}
37993	return nil
37994}
37995
37996// SetMaxResults sets the MaxResults field's value.
37997func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
37998	s.MaxResults = &v
37999	return s
38000}
38001
38002// SetNextToken sets the NextToken field's value.
38003func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
38004	s.NextToken = &v
38005	return s
38006}
38007
38008// SetSecurityProfileName sets the SecurityProfileName field's value.
38009func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
38010	s.SecurityProfileName = &v
38011	return s
38012}
38013
38014type GetBehaviorModelTrainingSummariesOutput struct {
38015	_ struct{} `type:"structure"`
38016
38017	// A token that can be used to retrieve the next set of results, or null if
38018	// there are no additional results.
38019	NextToken *string `locationName:"nextToken" type:"string"`
38020
38021	// A list of all ML Detect behaviors and their model status for a given Security
38022	// Profile.
38023	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
38024}
38025
38026// String returns the string representation
38027func (s GetBehaviorModelTrainingSummariesOutput) String() string {
38028	return awsutil.Prettify(s)
38029}
38030
38031// GoString returns the string representation
38032func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
38033	return s.String()
38034}
38035
38036// SetNextToken sets the NextToken field's value.
38037func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
38038	s.NextToken = &v
38039	return s
38040}
38041
38042// SetSummaries sets the Summaries field's value.
38043func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
38044	s.Summaries = v
38045	return s
38046}
38047
38048type GetCardinalityInput struct {
38049	_ struct{} `type:"structure"`
38050
38051	// The field to aggregate.
38052	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
38053
38054	// The name of the index to search.
38055	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38056
38057	// The search query.
38058	//
38059	// QueryString is a required field
38060	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
38061
38062	// The query version.
38063	QueryVersion *string `locationName:"queryVersion" type:"string"`
38064}
38065
38066// String returns the string representation
38067func (s GetCardinalityInput) String() string {
38068	return awsutil.Prettify(s)
38069}
38070
38071// GoString returns the string representation
38072func (s GetCardinalityInput) GoString() string {
38073	return s.String()
38074}
38075
38076// Validate inspects the fields of the type to determine if they are valid.
38077func (s *GetCardinalityInput) Validate() error {
38078	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
38079	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
38080		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
38081	}
38082	if s.IndexName != nil && len(*s.IndexName) < 1 {
38083		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
38084	}
38085	if s.QueryString == nil {
38086		invalidParams.Add(request.NewErrParamRequired("QueryString"))
38087	}
38088	if s.QueryString != nil && len(*s.QueryString) < 1 {
38089		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
38090	}
38091
38092	if invalidParams.Len() > 0 {
38093		return invalidParams
38094	}
38095	return nil
38096}
38097
38098// SetAggregationField sets the AggregationField field's value.
38099func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
38100	s.AggregationField = &v
38101	return s
38102}
38103
38104// SetIndexName sets the IndexName field's value.
38105func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
38106	s.IndexName = &v
38107	return s
38108}
38109
38110// SetQueryString sets the QueryString field's value.
38111func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
38112	s.QueryString = &v
38113	return s
38114}
38115
38116// SetQueryVersion sets the QueryVersion field's value.
38117func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
38118	s.QueryVersion = &v
38119	return s
38120}
38121
38122type GetCardinalityOutput struct {
38123	_ struct{} `type:"structure"`
38124
38125	// The approximate count of unique values that match the query.
38126	Cardinality *int64 `locationName:"cardinality" type:"integer"`
38127}
38128
38129// String returns the string representation
38130func (s GetCardinalityOutput) String() string {
38131	return awsutil.Prettify(s)
38132}
38133
38134// GoString returns the string representation
38135func (s GetCardinalityOutput) GoString() string {
38136	return s.String()
38137}
38138
38139// SetCardinality sets the Cardinality field's value.
38140func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
38141	s.Cardinality = &v
38142	return s
38143}
38144
38145type GetEffectivePoliciesInput struct {
38146	_ struct{} `type:"structure"`
38147
38148	// The Cognito identity pool ID.
38149	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
38150
38151	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
38152	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
38153	// (region:id).
38154	Principal *string `locationName:"principal" type:"string"`
38155
38156	// The thing name.
38157	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
38158}
38159
38160// String returns the string representation
38161func (s GetEffectivePoliciesInput) String() string {
38162	return awsutil.Prettify(s)
38163}
38164
38165// GoString returns the string representation
38166func (s GetEffectivePoliciesInput) GoString() string {
38167	return s.String()
38168}
38169
38170// Validate inspects the fields of the type to determine if they are valid.
38171func (s *GetEffectivePoliciesInput) Validate() error {
38172	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
38173	if s.ThingName != nil && len(*s.ThingName) < 1 {
38174		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38175	}
38176
38177	if invalidParams.Len() > 0 {
38178		return invalidParams
38179	}
38180	return nil
38181}
38182
38183// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
38184func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
38185	s.CognitoIdentityPoolId = &v
38186	return s
38187}
38188
38189// SetPrincipal sets the Principal field's value.
38190func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
38191	s.Principal = &v
38192	return s
38193}
38194
38195// SetThingName sets the ThingName field's value.
38196func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
38197	s.ThingName = &v
38198	return s
38199}
38200
38201type GetEffectivePoliciesOutput struct {
38202	_ struct{} `type:"structure"`
38203
38204	// The effective policies.
38205	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
38206}
38207
38208// String returns the string representation
38209func (s GetEffectivePoliciesOutput) String() string {
38210	return awsutil.Prettify(s)
38211}
38212
38213// GoString returns the string representation
38214func (s GetEffectivePoliciesOutput) GoString() string {
38215	return s.String()
38216}
38217
38218// SetEffectivePolicies sets the EffectivePolicies field's value.
38219func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
38220	s.EffectivePolicies = v
38221	return s
38222}
38223
38224type GetIndexingConfigurationInput struct {
38225	_ struct{} `type:"structure"`
38226}
38227
38228// String returns the string representation
38229func (s GetIndexingConfigurationInput) String() string {
38230	return awsutil.Prettify(s)
38231}
38232
38233// GoString returns the string representation
38234func (s GetIndexingConfigurationInput) GoString() string {
38235	return s.String()
38236}
38237
38238type GetIndexingConfigurationOutput struct {
38239	_ struct{} `type:"structure"`
38240
38241	// The index configuration.
38242	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
38243
38244	// Thing indexing configuration.
38245	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
38246}
38247
38248// String returns the string representation
38249func (s GetIndexingConfigurationOutput) String() string {
38250	return awsutil.Prettify(s)
38251}
38252
38253// GoString returns the string representation
38254func (s GetIndexingConfigurationOutput) GoString() string {
38255	return s.String()
38256}
38257
38258// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
38259func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
38260	s.ThingGroupIndexingConfiguration = v
38261	return s
38262}
38263
38264// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
38265func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
38266	s.ThingIndexingConfiguration = v
38267	return s
38268}
38269
38270type GetJobDocumentInput struct {
38271	_ struct{} `type:"structure"`
38272
38273	// The unique identifier you assigned to this job when it was created.
38274	//
38275	// JobId is a required field
38276	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
38277}
38278
38279// String returns the string representation
38280func (s GetJobDocumentInput) String() string {
38281	return awsutil.Prettify(s)
38282}
38283
38284// GoString returns the string representation
38285func (s GetJobDocumentInput) GoString() string {
38286	return s.String()
38287}
38288
38289// Validate inspects the fields of the type to determine if they are valid.
38290func (s *GetJobDocumentInput) Validate() error {
38291	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
38292	if s.JobId == nil {
38293		invalidParams.Add(request.NewErrParamRequired("JobId"))
38294	}
38295	if s.JobId != nil && len(*s.JobId) < 1 {
38296		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
38297	}
38298
38299	if invalidParams.Len() > 0 {
38300		return invalidParams
38301	}
38302	return nil
38303}
38304
38305// SetJobId sets the JobId field's value.
38306func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
38307	s.JobId = &v
38308	return s
38309}
38310
38311type GetJobDocumentOutput struct {
38312	_ struct{} `type:"structure"`
38313
38314	// The job document content.
38315	Document *string `locationName:"document" type:"string"`
38316}
38317
38318// String returns the string representation
38319func (s GetJobDocumentOutput) String() string {
38320	return awsutil.Prettify(s)
38321}
38322
38323// GoString returns the string representation
38324func (s GetJobDocumentOutput) GoString() string {
38325	return s.String()
38326}
38327
38328// SetDocument sets the Document field's value.
38329func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
38330	s.Document = &v
38331	return s
38332}
38333
38334// The input for the GetLoggingOptions operation.
38335type GetLoggingOptionsInput struct {
38336	_ struct{} `type:"structure"`
38337}
38338
38339// String returns the string representation
38340func (s GetLoggingOptionsInput) String() string {
38341	return awsutil.Prettify(s)
38342}
38343
38344// GoString returns the string representation
38345func (s GetLoggingOptionsInput) GoString() string {
38346	return s.String()
38347}
38348
38349// The output from the GetLoggingOptions operation.
38350type GetLoggingOptionsOutput struct {
38351	_ struct{} `type:"structure"`
38352
38353	// The logging level.
38354	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
38355
38356	// The ARN of the IAM role that grants access.
38357	RoleArn *string `locationName:"roleArn" type:"string"`
38358}
38359
38360// String returns the string representation
38361func (s GetLoggingOptionsOutput) String() string {
38362	return awsutil.Prettify(s)
38363}
38364
38365// GoString returns the string representation
38366func (s GetLoggingOptionsOutput) GoString() string {
38367	return s.String()
38368}
38369
38370// SetLogLevel sets the LogLevel field's value.
38371func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
38372	s.LogLevel = &v
38373	return s
38374}
38375
38376// SetRoleArn sets the RoleArn field's value.
38377func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
38378	s.RoleArn = &v
38379	return s
38380}
38381
38382type GetOTAUpdateInput struct {
38383	_ struct{} `type:"structure"`
38384
38385	// The OTA update ID.
38386	//
38387	// OtaUpdateId is a required field
38388	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
38389}
38390
38391// String returns the string representation
38392func (s GetOTAUpdateInput) String() string {
38393	return awsutil.Prettify(s)
38394}
38395
38396// GoString returns the string representation
38397func (s GetOTAUpdateInput) GoString() string {
38398	return s.String()
38399}
38400
38401// Validate inspects the fields of the type to determine if they are valid.
38402func (s *GetOTAUpdateInput) Validate() error {
38403	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
38404	if s.OtaUpdateId == nil {
38405		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
38406	}
38407	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
38408		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
38409	}
38410
38411	if invalidParams.Len() > 0 {
38412		return invalidParams
38413	}
38414	return nil
38415}
38416
38417// SetOtaUpdateId sets the OtaUpdateId field's value.
38418func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
38419	s.OtaUpdateId = &v
38420	return s
38421}
38422
38423type GetOTAUpdateOutput struct {
38424	_ struct{} `type:"structure"`
38425
38426	// The OTA update info.
38427	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
38428}
38429
38430// String returns the string representation
38431func (s GetOTAUpdateOutput) String() string {
38432	return awsutil.Prettify(s)
38433}
38434
38435// GoString returns the string representation
38436func (s GetOTAUpdateOutput) GoString() string {
38437	return s.String()
38438}
38439
38440// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
38441func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
38442	s.OtaUpdateInfo = v
38443	return s
38444}
38445
38446type GetPercentilesInput struct {
38447	_ struct{} `type:"structure"`
38448
38449	// The field to aggregate.
38450	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
38451
38452	// The name of the index to search.
38453	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38454
38455	// The percentile groups returned.
38456	Percents []*float64 `locationName:"percents" type:"list"`
38457
38458	// The query string.
38459	//
38460	// QueryString is a required field
38461	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
38462
38463	// The query version.
38464	QueryVersion *string `locationName:"queryVersion" type:"string"`
38465}
38466
38467// String returns the string representation
38468func (s GetPercentilesInput) String() string {
38469	return awsutil.Prettify(s)
38470}
38471
38472// GoString returns the string representation
38473func (s GetPercentilesInput) GoString() string {
38474	return s.String()
38475}
38476
38477// Validate inspects the fields of the type to determine if they are valid.
38478func (s *GetPercentilesInput) Validate() error {
38479	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
38480	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
38481		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
38482	}
38483	if s.IndexName != nil && len(*s.IndexName) < 1 {
38484		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
38485	}
38486	if s.QueryString == nil {
38487		invalidParams.Add(request.NewErrParamRequired("QueryString"))
38488	}
38489	if s.QueryString != nil && len(*s.QueryString) < 1 {
38490		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
38491	}
38492
38493	if invalidParams.Len() > 0 {
38494		return invalidParams
38495	}
38496	return nil
38497}
38498
38499// SetAggregationField sets the AggregationField field's value.
38500func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
38501	s.AggregationField = &v
38502	return s
38503}
38504
38505// SetIndexName sets the IndexName field's value.
38506func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
38507	s.IndexName = &v
38508	return s
38509}
38510
38511// SetPercents sets the Percents field's value.
38512func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
38513	s.Percents = v
38514	return s
38515}
38516
38517// SetQueryString sets the QueryString field's value.
38518func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
38519	s.QueryString = &v
38520	return s
38521}
38522
38523// SetQueryVersion sets the QueryVersion field's value.
38524func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
38525	s.QueryVersion = &v
38526	return s
38527}
38528
38529type GetPercentilesOutput struct {
38530	_ struct{} `type:"structure"`
38531
38532	// The percentile values of the aggregated fields.
38533	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
38534}
38535
38536// String returns the string representation
38537func (s GetPercentilesOutput) String() string {
38538	return awsutil.Prettify(s)
38539}
38540
38541// GoString returns the string representation
38542func (s GetPercentilesOutput) GoString() string {
38543	return s.String()
38544}
38545
38546// SetPercentiles sets the Percentiles field's value.
38547func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
38548	s.Percentiles = v
38549	return s
38550}
38551
38552// The input for the GetPolicy operation.
38553type GetPolicyInput struct {
38554	_ struct{} `type:"structure"`
38555
38556	// The name of the policy.
38557	//
38558	// PolicyName is a required field
38559	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
38560}
38561
38562// String returns the string representation
38563func (s GetPolicyInput) String() string {
38564	return awsutil.Prettify(s)
38565}
38566
38567// GoString returns the string representation
38568func (s GetPolicyInput) GoString() string {
38569	return s.String()
38570}
38571
38572// Validate inspects the fields of the type to determine if they are valid.
38573func (s *GetPolicyInput) Validate() error {
38574	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
38575	if s.PolicyName == nil {
38576		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
38577	}
38578	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
38579		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
38580	}
38581
38582	if invalidParams.Len() > 0 {
38583		return invalidParams
38584	}
38585	return nil
38586}
38587
38588// SetPolicyName sets the PolicyName field's value.
38589func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
38590	s.PolicyName = &v
38591	return s
38592}
38593
38594// The output from the GetPolicy operation.
38595type GetPolicyOutput struct {
38596	_ struct{} `type:"structure"`
38597
38598	// The date the policy was created.
38599	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38600
38601	// The default policy version ID.
38602	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
38603
38604	// The generation ID of the policy.
38605	GenerationId *string `locationName:"generationId" type:"string"`
38606
38607	// The date the policy was last modified.
38608	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
38609
38610	// The policy ARN.
38611	PolicyArn *string `locationName:"policyArn" type:"string"`
38612
38613	// The JSON document that describes the policy.
38614	PolicyDocument *string `locationName:"policyDocument" type:"string"`
38615
38616	// The policy name.
38617	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
38618}
38619
38620// String returns the string representation
38621func (s GetPolicyOutput) String() string {
38622	return awsutil.Prettify(s)
38623}
38624
38625// GoString returns the string representation
38626func (s GetPolicyOutput) GoString() string {
38627	return s.String()
38628}
38629
38630// SetCreationDate sets the CreationDate field's value.
38631func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
38632	s.CreationDate = &v
38633	return s
38634}
38635
38636// SetDefaultVersionId sets the DefaultVersionId field's value.
38637func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
38638	s.DefaultVersionId = &v
38639	return s
38640}
38641
38642// SetGenerationId sets the GenerationId field's value.
38643func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
38644	s.GenerationId = &v
38645	return s
38646}
38647
38648// SetLastModifiedDate sets the LastModifiedDate field's value.
38649func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
38650	s.LastModifiedDate = &v
38651	return s
38652}
38653
38654// SetPolicyArn sets the PolicyArn field's value.
38655func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
38656	s.PolicyArn = &v
38657	return s
38658}
38659
38660// SetPolicyDocument sets the PolicyDocument field's value.
38661func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
38662	s.PolicyDocument = &v
38663	return s
38664}
38665
38666// SetPolicyName sets the PolicyName field's value.
38667func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
38668	s.PolicyName = &v
38669	return s
38670}
38671
38672// The input for the GetPolicyVersion operation.
38673type GetPolicyVersionInput struct {
38674	_ struct{} `type:"structure"`
38675
38676	// The name of the policy.
38677	//
38678	// PolicyName is a required field
38679	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
38680
38681	// The policy version ID.
38682	//
38683	// PolicyVersionId is a required field
38684	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
38685}
38686
38687// String returns the string representation
38688func (s GetPolicyVersionInput) String() string {
38689	return awsutil.Prettify(s)
38690}
38691
38692// GoString returns the string representation
38693func (s GetPolicyVersionInput) GoString() string {
38694	return s.String()
38695}
38696
38697// Validate inspects the fields of the type to determine if they are valid.
38698func (s *GetPolicyVersionInput) Validate() error {
38699	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
38700	if s.PolicyName == nil {
38701		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
38702	}
38703	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
38704		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
38705	}
38706	if s.PolicyVersionId == nil {
38707		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
38708	}
38709	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
38710		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
38711	}
38712
38713	if invalidParams.Len() > 0 {
38714		return invalidParams
38715	}
38716	return nil
38717}
38718
38719// SetPolicyName sets the PolicyName field's value.
38720func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
38721	s.PolicyName = &v
38722	return s
38723}
38724
38725// SetPolicyVersionId sets the PolicyVersionId field's value.
38726func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
38727	s.PolicyVersionId = &v
38728	return s
38729}
38730
38731// The output from the GetPolicyVersion operation.
38732type GetPolicyVersionOutput struct {
38733	_ struct{} `type:"structure"`
38734
38735	// The date the policy was created.
38736	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38737
38738	// The generation ID of the policy version.
38739	GenerationId *string `locationName:"generationId" type:"string"`
38740
38741	// Specifies whether the policy version is the default.
38742	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
38743
38744	// The date the policy was last modified.
38745	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
38746
38747	// The policy ARN.
38748	PolicyArn *string `locationName:"policyArn" type:"string"`
38749
38750	// The JSON document that describes the policy.
38751	PolicyDocument *string `locationName:"policyDocument" type:"string"`
38752
38753	// The policy name.
38754	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
38755
38756	// The policy version ID.
38757	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
38758}
38759
38760// String returns the string representation
38761func (s GetPolicyVersionOutput) String() string {
38762	return awsutil.Prettify(s)
38763}
38764
38765// GoString returns the string representation
38766func (s GetPolicyVersionOutput) GoString() string {
38767	return s.String()
38768}
38769
38770// SetCreationDate sets the CreationDate field's value.
38771func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
38772	s.CreationDate = &v
38773	return s
38774}
38775
38776// SetGenerationId sets the GenerationId field's value.
38777func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
38778	s.GenerationId = &v
38779	return s
38780}
38781
38782// SetIsDefaultVersion sets the IsDefaultVersion field's value.
38783func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
38784	s.IsDefaultVersion = &v
38785	return s
38786}
38787
38788// SetLastModifiedDate sets the LastModifiedDate field's value.
38789func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
38790	s.LastModifiedDate = &v
38791	return s
38792}
38793
38794// SetPolicyArn sets the PolicyArn field's value.
38795func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
38796	s.PolicyArn = &v
38797	return s
38798}
38799
38800// SetPolicyDocument sets the PolicyDocument field's value.
38801func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
38802	s.PolicyDocument = &v
38803	return s
38804}
38805
38806// SetPolicyName sets the PolicyName field's value.
38807func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
38808	s.PolicyName = &v
38809	return s
38810}
38811
38812// SetPolicyVersionId sets the PolicyVersionId field's value.
38813func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
38814	s.PolicyVersionId = &v
38815	return s
38816}
38817
38818// The input to the GetRegistrationCode operation.
38819type GetRegistrationCodeInput struct {
38820	_ struct{} `type:"structure"`
38821}
38822
38823// String returns the string representation
38824func (s GetRegistrationCodeInput) String() string {
38825	return awsutil.Prettify(s)
38826}
38827
38828// GoString returns the string representation
38829func (s GetRegistrationCodeInput) GoString() string {
38830	return s.String()
38831}
38832
38833// The output from the GetRegistrationCode operation.
38834type GetRegistrationCodeOutput struct {
38835	_ struct{} `type:"structure"`
38836
38837	// The CA certificate registration code.
38838	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
38839}
38840
38841// String returns the string representation
38842func (s GetRegistrationCodeOutput) String() string {
38843	return awsutil.Prettify(s)
38844}
38845
38846// GoString returns the string representation
38847func (s GetRegistrationCodeOutput) GoString() string {
38848	return s.String()
38849}
38850
38851// SetRegistrationCode sets the RegistrationCode field's value.
38852func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
38853	s.RegistrationCode = &v
38854	return s
38855}
38856
38857type GetStatisticsInput struct {
38858	_ struct{} `type:"structure"`
38859
38860	// The aggregation field name.
38861	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
38862
38863	// The name of the index to search. The default value is AWS_Things.
38864	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38865
38866	// The query used to search. You can specify "*" for the query string to get
38867	// the count of all indexed things in your AWS account.
38868	//
38869	// QueryString is a required field
38870	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
38871
38872	// The version of the query used to search.
38873	QueryVersion *string `locationName:"queryVersion" type:"string"`
38874}
38875
38876// String returns the string representation
38877func (s GetStatisticsInput) String() string {
38878	return awsutil.Prettify(s)
38879}
38880
38881// GoString returns the string representation
38882func (s GetStatisticsInput) GoString() string {
38883	return s.String()
38884}
38885
38886// Validate inspects the fields of the type to determine if they are valid.
38887func (s *GetStatisticsInput) Validate() error {
38888	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
38889	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
38890		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
38891	}
38892	if s.IndexName != nil && len(*s.IndexName) < 1 {
38893		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
38894	}
38895	if s.QueryString == nil {
38896		invalidParams.Add(request.NewErrParamRequired("QueryString"))
38897	}
38898	if s.QueryString != nil && len(*s.QueryString) < 1 {
38899		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
38900	}
38901
38902	if invalidParams.Len() > 0 {
38903		return invalidParams
38904	}
38905	return nil
38906}
38907
38908// SetAggregationField sets the AggregationField field's value.
38909func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
38910	s.AggregationField = &v
38911	return s
38912}
38913
38914// SetIndexName sets the IndexName field's value.
38915func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
38916	s.IndexName = &v
38917	return s
38918}
38919
38920// SetQueryString sets the QueryString field's value.
38921func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
38922	s.QueryString = &v
38923	return s
38924}
38925
38926// SetQueryVersion sets the QueryVersion field's value.
38927func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
38928	s.QueryVersion = &v
38929	return s
38930}
38931
38932type GetStatisticsOutput struct {
38933	_ struct{} `type:"structure"`
38934
38935	// The statistics returned by the Fleet Indexing service based on the query
38936	// and aggregation field.
38937	Statistics *Statistics `locationName:"statistics" type:"structure"`
38938}
38939
38940// String returns the string representation
38941func (s GetStatisticsOutput) String() string {
38942	return awsutil.Prettify(s)
38943}
38944
38945// GoString returns the string representation
38946func (s GetStatisticsOutput) GoString() string {
38947	return s.String()
38948}
38949
38950// SetStatistics sets the Statistics field's value.
38951func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
38952	s.Statistics = v
38953	return s
38954}
38955
38956type GetTopicRuleDestinationInput struct {
38957	_ struct{} `type:"structure"`
38958
38959	// The ARN of the topic rule destination.
38960	//
38961	// Arn is a required field
38962	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
38963}
38964
38965// String returns the string representation
38966func (s GetTopicRuleDestinationInput) String() string {
38967	return awsutil.Prettify(s)
38968}
38969
38970// GoString returns the string representation
38971func (s GetTopicRuleDestinationInput) GoString() string {
38972	return s.String()
38973}
38974
38975// Validate inspects the fields of the type to determine if they are valid.
38976func (s *GetTopicRuleDestinationInput) Validate() error {
38977	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
38978	if s.Arn == nil {
38979		invalidParams.Add(request.NewErrParamRequired("Arn"))
38980	}
38981	if s.Arn != nil && len(*s.Arn) < 1 {
38982		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
38983	}
38984
38985	if invalidParams.Len() > 0 {
38986		return invalidParams
38987	}
38988	return nil
38989}
38990
38991// SetArn sets the Arn field's value.
38992func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
38993	s.Arn = &v
38994	return s
38995}
38996
38997type GetTopicRuleDestinationOutput struct {
38998	_ struct{} `type:"structure"`
38999
39000	// The topic rule destination.
39001	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
39002}
39003
39004// String returns the string representation
39005func (s GetTopicRuleDestinationOutput) String() string {
39006	return awsutil.Prettify(s)
39007}
39008
39009// GoString returns the string representation
39010func (s GetTopicRuleDestinationOutput) GoString() string {
39011	return s.String()
39012}
39013
39014// SetTopicRuleDestination sets the TopicRuleDestination field's value.
39015func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
39016	s.TopicRuleDestination = v
39017	return s
39018}
39019
39020// The input for the GetTopicRule operation.
39021type GetTopicRuleInput struct {
39022	_ struct{} `type:"structure"`
39023
39024	// The name of the rule.
39025	//
39026	// RuleName is a required field
39027	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
39028}
39029
39030// String returns the string representation
39031func (s GetTopicRuleInput) String() string {
39032	return awsutil.Prettify(s)
39033}
39034
39035// GoString returns the string representation
39036func (s GetTopicRuleInput) GoString() string {
39037	return s.String()
39038}
39039
39040// Validate inspects the fields of the type to determine if they are valid.
39041func (s *GetTopicRuleInput) Validate() error {
39042	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
39043	if s.RuleName == nil {
39044		invalidParams.Add(request.NewErrParamRequired("RuleName"))
39045	}
39046	if s.RuleName != nil && len(*s.RuleName) < 1 {
39047		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
39048	}
39049
39050	if invalidParams.Len() > 0 {
39051		return invalidParams
39052	}
39053	return nil
39054}
39055
39056// SetRuleName sets the RuleName field's value.
39057func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
39058	s.RuleName = &v
39059	return s
39060}
39061
39062// The output from the GetTopicRule operation.
39063type GetTopicRuleOutput struct {
39064	_ struct{} `type:"structure"`
39065
39066	// The rule.
39067	Rule *TopicRule `locationName:"rule" type:"structure"`
39068
39069	// The rule ARN.
39070	RuleArn *string `locationName:"ruleArn" type:"string"`
39071}
39072
39073// String returns the string representation
39074func (s GetTopicRuleOutput) String() string {
39075	return awsutil.Prettify(s)
39076}
39077
39078// GoString returns the string representation
39079func (s GetTopicRuleOutput) GoString() string {
39080	return s.String()
39081}
39082
39083// SetRule sets the Rule field's value.
39084func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
39085	s.Rule = v
39086	return s
39087}
39088
39089// SetRuleArn sets the RuleArn field's value.
39090func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
39091	s.RuleArn = &v
39092	return s
39093}
39094
39095type GetV2LoggingOptionsInput struct {
39096	_ struct{} `type:"structure"`
39097}
39098
39099// String returns the string representation
39100func (s GetV2LoggingOptionsInput) String() string {
39101	return awsutil.Prettify(s)
39102}
39103
39104// GoString returns the string representation
39105func (s GetV2LoggingOptionsInput) GoString() string {
39106	return s.String()
39107}
39108
39109type GetV2LoggingOptionsOutput struct {
39110	_ struct{} `type:"structure"`
39111
39112	// The default log level.
39113	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
39114
39115	// Disables all logs.
39116	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
39117
39118	// The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
39119	RoleArn *string `locationName:"roleArn" type:"string"`
39120}
39121
39122// String returns the string representation
39123func (s GetV2LoggingOptionsOutput) String() string {
39124	return awsutil.Prettify(s)
39125}
39126
39127// GoString returns the string representation
39128func (s GetV2LoggingOptionsOutput) GoString() string {
39129	return s.String()
39130}
39131
39132// SetDefaultLogLevel sets the DefaultLogLevel field's value.
39133func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
39134	s.DefaultLogLevel = &v
39135	return s
39136}
39137
39138// SetDisableAllLogs sets the DisableAllLogs field's value.
39139func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
39140	s.DisableAllLogs = &v
39141	return s
39142}
39143
39144// SetRoleArn sets the RoleArn field's value.
39145func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
39146	s.RoleArn = &v
39147	return s
39148}
39149
39150// The name and ARN of a group.
39151type GroupNameAndArn struct {
39152	_ struct{} `type:"structure"`
39153
39154	// The group ARN.
39155	GroupArn *string `locationName:"groupArn" type:"string"`
39156
39157	// The group name.
39158	GroupName *string `locationName:"groupName" min:"1" type:"string"`
39159}
39160
39161// String returns the string representation
39162func (s GroupNameAndArn) String() string {
39163	return awsutil.Prettify(s)
39164}
39165
39166// GoString returns the string representation
39167func (s GroupNameAndArn) GoString() string {
39168	return s.String()
39169}
39170
39171// SetGroupArn sets the GroupArn field's value.
39172func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
39173	s.GroupArn = &v
39174	return s
39175}
39176
39177// SetGroupName sets the GroupName field's value.
39178func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
39179	s.GroupName = &v
39180	return s
39181}
39182
39183// Send data to an HTTPS endpoint.
39184type HttpAction struct {
39185	_ struct{} `type:"structure"`
39186
39187	// The authentication method to use when sending data to an HTTPS endpoint.
39188	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
39189
39190	// The URL to which AWS IoT sends a confirmation message. The value of the confirmation
39191	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
39192	// URL AWS IoT uses the endpoint URL as the confirmation URL. If you use substitution
39193	// templates in the confirmationUrl, you must create and enable topic rule destinations
39194	// that match each possible value of the substitution template before traffic
39195	// is allowed to your endpoint URL.
39196	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
39197
39198	// The HTTP headers to send with the message data.
39199	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
39200
39201	// The endpoint URL. If substitution templates are used in the URL, you must
39202	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
39203	// is created if possible.
39204	//
39205	// Url is a required field
39206	Url *string `locationName:"url" type:"string" required:"true"`
39207}
39208
39209// String returns the string representation
39210func (s HttpAction) String() string {
39211	return awsutil.Prettify(s)
39212}
39213
39214// GoString returns the string representation
39215func (s HttpAction) GoString() string {
39216	return s.String()
39217}
39218
39219// Validate inspects the fields of the type to determine if they are valid.
39220func (s *HttpAction) Validate() error {
39221	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
39222	if s.Url == nil {
39223		invalidParams.Add(request.NewErrParamRequired("Url"))
39224	}
39225	if s.Auth != nil {
39226		if err := s.Auth.Validate(); err != nil {
39227			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
39228		}
39229	}
39230	if s.Headers != nil {
39231		for i, v := range s.Headers {
39232			if v == nil {
39233				continue
39234			}
39235			if err := v.Validate(); err != nil {
39236				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
39237			}
39238		}
39239	}
39240
39241	if invalidParams.Len() > 0 {
39242		return invalidParams
39243	}
39244	return nil
39245}
39246
39247// SetAuth sets the Auth field's value.
39248func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
39249	s.Auth = v
39250	return s
39251}
39252
39253// SetConfirmationUrl sets the ConfirmationUrl field's value.
39254func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
39255	s.ConfirmationUrl = &v
39256	return s
39257}
39258
39259// SetHeaders sets the Headers field's value.
39260func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
39261	s.Headers = v
39262	return s
39263}
39264
39265// SetUrl sets the Url field's value.
39266func (s *HttpAction) SetUrl(v string) *HttpAction {
39267	s.Url = &v
39268	return s
39269}
39270
39271// The HTTP action header.
39272type HttpActionHeader struct {
39273	_ struct{} `type:"structure"`
39274
39275	// The HTTP header key.
39276	//
39277	// Key is a required field
39278	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
39279
39280	// The HTTP header value. Substitution templates are supported.
39281	//
39282	// Value is a required field
39283	Value *string `locationName:"value" type:"string" required:"true"`
39284}
39285
39286// String returns the string representation
39287func (s HttpActionHeader) String() string {
39288	return awsutil.Prettify(s)
39289}
39290
39291// GoString returns the string representation
39292func (s HttpActionHeader) GoString() string {
39293	return s.String()
39294}
39295
39296// Validate inspects the fields of the type to determine if they are valid.
39297func (s *HttpActionHeader) Validate() error {
39298	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
39299	if s.Key == nil {
39300		invalidParams.Add(request.NewErrParamRequired("Key"))
39301	}
39302	if s.Key != nil && len(*s.Key) < 1 {
39303		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
39304	}
39305	if s.Value == nil {
39306		invalidParams.Add(request.NewErrParamRequired("Value"))
39307	}
39308
39309	if invalidParams.Len() > 0 {
39310		return invalidParams
39311	}
39312	return nil
39313}
39314
39315// SetKey sets the Key field's value.
39316func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
39317	s.Key = &v
39318	return s
39319}
39320
39321// SetValue sets the Value field's value.
39322func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
39323	s.Value = &v
39324	return s
39325}
39326
39327// The authorization method used to send messages.
39328type HttpAuthorization struct {
39329	_ struct{} `type:"structure"`
39330
39331	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
39332	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
39333	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
39334}
39335
39336// String returns the string representation
39337func (s HttpAuthorization) String() string {
39338	return awsutil.Prettify(s)
39339}
39340
39341// GoString returns the string representation
39342func (s HttpAuthorization) GoString() string {
39343	return s.String()
39344}
39345
39346// Validate inspects the fields of the type to determine if they are valid.
39347func (s *HttpAuthorization) Validate() error {
39348	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
39349	if s.Sigv4 != nil {
39350		if err := s.Sigv4.Validate(); err != nil {
39351			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
39352		}
39353	}
39354
39355	if invalidParams.Len() > 0 {
39356		return invalidParams
39357	}
39358	return nil
39359}
39360
39361// SetSigv4 sets the Sigv4 field's value.
39362func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
39363	s.Sigv4 = v
39364	return s
39365}
39366
39367// Specifies the HTTP context to use for the test authorizer request.
39368type HttpContext struct {
39369	_ struct{} `type:"structure"`
39370
39371	// The header keys and values in an HTTP authorization request.
39372	Headers map[string]*string `locationName:"headers" type:"map"`
39373
39374	// The query string keys and values in an HTTP authorization request.
39375	QueryString *string `locationName:"queryString" min:"1" type:"string"`
39376}
39377
39378// String returns the string representation
39379func (s HttpContext) String() string {
39380	return awsutil.Prettify(s)
39381}
39382
39383// GoString returns the string representation
39384func (s HttpContext) GoString() string {
39385	return s.String()
39386}
39387
39388// Validate inspects the fields of the type to determine if they are valid.
39389func (s *HttpContext) Validate() error {
39390	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
39391	if s.QueryString != nil && len(*s.QueryString) < 1 {
39392		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
39393	}
39394
39395	if invalidParams.Len() > 0 {
39396		return invalidParams
39397	}
39398	return nil
39399}
39400
39401// SetHeaders sets the Headers field's value.
39402func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
39403	s.Headers = v
39404	return s
39405}
39406
39407// SetQueryString sets the QueryString field's value.
39408func (s *HttpContext) SetQueryString(v string) *HttpContext {
39409	s.QueryString = &v
39410	return s
39411}
39412
39413// HTTP URL destination configuration used by the topic rule's HTTP action.
39414type HttpUrlDestinationConfiguration struct {
39415	_ struct{} `type:"structure"`
39416
39417	// The URL AWS IoT uses to confirm ownership of or access to the topic rule
39418	// destination URL.
39419	//
39420	// ConfirmationUrl is a required field
39421	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
39422}
39423
39424// String returns the string representation
39425func (s HttpUrlDestinationConfiguration) String() string {
39426	return awsutil.Prettify(s)
39427}
39428
39429// GoString returns the string representation
39430func (s HttpUrlDestinationConfiguration) GoString() string {
39431	return s.String()
39432}
39433
39434// Validate inspects the fields of the type to determine if they are valid.
39435func (s *HttpUrlDestinationConfiguration) Validate() error {
39436	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
39437	if s.ConfirmationUrl == nil {
39438		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
39439	}
39440
39441	if invalidParams.Len() > 0 {
39442		return invalidParams
39443	}
39444	return nil
39445}
39446
39447// SetConfirmationUrl sets the ConfirmationUrl field's value.
39448func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
39449	s.ConfirmationUrl = &v
39450	return s
39451}
39452
39453// HTTP URL destination properties.
39454type HttpUrlDestinationProperties struct {
39455	_ struct{} `type:"structure"`
39456
39457	// The URL used to confirm the HTTP topic rule destination URL.
39458	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
39459}
39460
39461// String returns the string representation
39462func (s HttpUrlDestinationProperties) String() string {
39463	return awsutil.Prettify(s)
39464}
39465
39466// GoString returns the string representation
39467func (s HttpUrlDestinationProperties) GoString() string {
39468	return s.String()
39469}
39470
39471// SetConfirmationUrl sets the ConfirmationUrl field's value.
39472func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
39473	s.ConfirmationUrl = &v
39474	return s
39475}
39476
39477// Information about an HTTP URL destination.
39478type HttpUrlDestinationSummary struct {
39479	_ struct{} `type:"structure"`
39480
39481	// The URL used to confirm ownership of or access to the HTTP topic rule destination
39482	// URL.
39483	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
39484}
39485
39486// String returns the string representation
39487func (s HttpUrlDestinationSummary) String() string {
39488	return awsutil.Prettify(s)
39489}
39490
39491// GoString returns the string representation
39492func (s HttpUrlDestinationSummary) GoString() string {
39493	return s.String()
39494}
39495
39496// SetConfirmationUrl sets the ConfirmationUrl field's value.
39497func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
39498	s.ConfirmationUrl = &v
39499	return s
39500}
39501
39502// Information that implicitly denies authorization. When policy doesn't explicitly
39503// deny or allow an action on a resource it is considered an implicit deny.
39504type ImplicitDeny struct {
39505	_ struct{} `type:"structure"`
39506
39507	// Policies that don't contain a matching allow or deny statement for the specified
39508	// action on the specified resource.
39509	Policies []*Policy `locationName:"policies" type:"list"`
39510}
39511
39512// String returns the string representation
39513func (s ImplicitDeny) String() string {
39514	return awsutil.Prettify(s)
39515}
39516
39517// GoString returns the string representation
39518func (s ImplicitDeny) GoString() string {
39519	return s.String()
39520}
39521
39522// SetPolicies sets the Policies field's value.
39523func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
39524	s.Policies = v
39525	return s
39526}
39527
39528// The index is not ready.
39529type IndexNotReadyException struct {
39530	_            struct{}                  `type:"structure"`
39531	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39532
39533	// The message for the exception.
39534	Message_ *string `locationName:"message" type:"string"`
39535}
39536
39537// String returns the string representation
39538func (s IndexNotReadyException) String() string {
39539	return awsutil.Prettify(s)
39540}
39541
39542// GoString returns the string representation
39543func (s IndexNotReadyException) GoString() string {
39544	return s.String()
39545}
39546
39547func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
39548	return &IndexNotReadyException{
39549		RespMetadata: v,
39550	}
39551}
39552
39553// Code returns the exception type name.
39554func (s *IndexNotReadyException) Code() string {
39555	return "IndexNotReadyException"
39556}
39557
39558// Message returns the exception's message.
39559func (s *IndexNotReadyException) Message() string {
39560	if s.Message_ != nil {
39561		return *s.Message_
39562	}
39563	return ""
39564}
39565
39566// OrigErr always returns nil, satisfies awserr.Error interface.
39567func (s *IndexNotReadyException) OrigErr() error {
39568	return nil
39569}
39570
39571func (s *IndexNotReadyException) Error() string {
39572	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39573}
39574
39575// Status code returns the HTTP status code for the request's response error.
39576func (s *IndexNotReadyException) StatusCode() int {
39577	return s.RespMetadata.StatusCode
39578}
39579
39580// RequestID returns the service's response RequestID for request.
39581func (s *IndexNotReadyException) RequestID() string {
39582	return s.RespMetadata.RequestID
39583}
39584
39585// An unexpected error has occurred.
39586type InternalException struct {
39587	_            struct{}                  `type:"structure"`
39588	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39589
39590	// The message for the exception.
39591	Message_ *string `locationName:"message" type:"string"`
39592}
39593
39594// String returns the string representation
39595func (s InternalException) String() string {
39596	return awsutil.Prettify(s)
39597}
39598
39599// GoString returns the string representation
39600func (s InternalException) GoString() string {
39601	return s.String()
39602}
39603
39604func newErrorInternalException(v protocol.ResponseMetadata) error {
39605	return &InternalException{
39606		RespMetadata: v,
39607	}
39608}
39609
39610// Code returns the exception type name.
39611func (s *InternalException) Code() string {
39612	return "InternalException"
39613}
39614
39615// Message returns the exception's message.
39616func (s *InternalException) Message() string {
39617	if s.Message_ != nil {
39618		return *s.Message_
39619	}
39620	return ""
39621}
39622
39623// OrigErr always returns nil, satisfies awserr.Error interface.
39624func (s *InternalException) OrigErr() error {
39625	return nil
39626}
39627
39628func (s *InternalException) Error() string {
39629	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39630}
39631
39632// Status code returns the HTTP status code for the request's response error.
39633func (s *InternalException) StatusCode() int {
39634	return s.RespMetadata.StatusCode
39635}
39636
39637// RequestID returns the service's response RequestID for request.
39638func (s *InternalException) RequestID() string {
39639	return s.RespMetadata.RequestID
39640}
39641
39642// An unexpected error has occurred.
39643type InternalFailureException struct {
39644	_            struct{}                  `type:"structure"`
39645	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39646
39647	// The message for the exception.
39648	Message_ *string `locationName:"message" type:"string"`
39649}
39650
39651// String returns the string representation
39652func (s InternalFailureException) String() string {
39653	return awsutil.Prettify(s)
39654}
39655
39656// GoString returns the string representation
39657func (s InternalFailureException) GoString() string {
39658	return s.String()
39659}
39660
39661func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
39662	return &InternalFailureException{
39663		RespMetadata: v,
39664	}
39665}
39666
39667// Code returns the exception type name.
39668func (s *InternalFailureException) Code() string {
39669	return "InternalFailureException"
39670}
39671
39672// Message returns the exception's message.
39673func (s *InternalFailureException) Message() string {
39674	if s.Message_ != nil {
39675		return *s.Message_
39676	}
39677	return ""
39678}
39679
39680// OrigErr always returns nil, satisfies awserr.Error interface.
39681func (s *InternalFailureException) OrigErr() error {
39682	return nil
39683}
39684
39685func (s *InternalFailureException) Error() string {
39686	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39687}
39688
39689// Status code returns the HTTP status code for the request's response error.
39690func (s *InternalFailureException) StatusCode() int {
39691	return s.RespMetadata.StatusCode
39692}
39693
39694// RequestID returns the service's response RequestID for request.
39695func (s *InternalFailureException) RequestID() string {
39696	return s.RespMetadata.RequestID
39697}
39698
39699// The aggregation is invalid.
39700type InvalidAggregationException struct {
39701	_            struct{}                  `type:"structure"`
39702	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39703
39704	Message_ *string `locationName:"message" type:"string"`
39705}
39706
39707// String returns the string representation
39708func (s InvalidAggregationException) String() string {
39709	return awsutil.Prettify(s)
39710}
39711
39712// GoString returns the string representation
39713func (s InvalidAggregationException) GoString() string {
39714	return s.String()
39715}
39716
39717func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
39718	return &InvalidAggregationException{
39719		RespMetadata: v,
39720	}
39721}
39722
39723// Code returns the exception type name.
39724func (s *InvalidAggregationException) Code() string {
39725	return "InvalidAggregationException"
39726}
39727
39728// Message returns the exception's message.
39729func (s *InvalidAggregationException) Message() string {
39730	if s.Message_ != nil {
39731		return *s.Message_
39732	}
39733	return ""
39734}
39735
39736// OrigErr always returns nil, satisfies awserr.Error interface.
39737func (s *InvalidAggregationException) OrigErr() error {
39738	return nil
39739}
39740
39741func (s *InvalidAggregationException) Error() string {
39742	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39743}
39744
39745// Status code returns the HTTP status code for the request's response error.
39746func (s *InvalidAggregationException) StatusCode() int {
39747	return s.RespMetadata.StatusCode
39748}
39749
39750// RequestID returns the service's response RequestID for request.
39751func (s *InvalidAggregationException) RequestID() string {
39752	return s.RespMetadata.RequestID
39753}
39754
39755// The query is invalid.
39756type InvalidQueryException struct {
39757	_            struct{}                  `type:"structure"`
39758	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39759
39760	// The message for the exception.
39761	Message_ *string `locationName:"message" type:"string"`
39762}
39763
39764// String returns the string representation
39765func (s InvalidQueryException) String() string {
39766	return awsutil.Prettify(s)
39767}
39768
39769// GoString returns the string representation
39770func (s InvalidQueryException) GoString() string {
39771	return s.String()
39772}
39773
39774func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
39775	return &InvalidQueryException{
39776		RespMetadata: v,
39777	}
39778}
39779
39780// Code returns the exception type name.
39781func (s *InvalidQueryException) Code() string {
39782	return "InvalidQueryException"
39783}
39784
39785// Message returns the exception's message.
39786func (s *InvalidQueryException) Message() string {
39787	if s.Message_ != nil {
39788		return *s.Message_
39789	}
39790	return ""
39791}
39792
39793// OrigErr always returns nil, satisfies awserr.Error interface.
39794func (s *InvalidQueryException) OrigErr() error {
39795	return nil
39796}
39797
39798func (s *InvalidQueryException) Error() string {
39799	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39800}
39801
39802// Status code returns the HTTP status code for the request's response error.
39803func (s *InvalidQueryException) StatusCode() int {
39804	return s.RespMetadata.StatusCode
39805}
39806
39807// RequestID returns the service's response RequestID for request.
39808func (s *InvalidQueryException) RequestID() string {
39809	return s.RespMetadata.RequestID
39810}
39811
39812// The request is not valid.
39813type InvalidRequestException struct {
39814	_            struct{}                  `type:"structure"`
39815	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39816
39817	// The message for the exception.
39818	Message_ *string `locationName:"message" type:"string"`
39819}
39820
39821// String returns the string representation
39822func (s InvalidRequestException) String() string {
39823	return awsutil.Prettify(s)
39824}
39825
39826// GoString returns the string representation
39827func (s InvalidRequestException) GoString() string {
39828	return s.String()
39829}
39830
39831func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
39832	return &InvalidRequestException{
39833		RespMetadata: v,
39834	}
39835}
39836
39837// Code returns the exception type name.
39838func (s *InvalidRequestException) Code() string {
39839	return "InvalidRequestException"
39840}
39841
39842// Message returns the exception's message.
39843func (s *InvalidRequestException) Message() string {
39844	if s.Message_ != nil {
39845		return *s.Message_
39846	}
39847	return ""
39848}
39849
39850// OrigErr always returns nil, satisfies awserr.Error interface.
39851func (s *InvalidRequestException) OrigErr() error {
39852	return nil
39853}
39854
39855func (s *InvalidRequestException) Error() string {
39856	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39857}
39858
39859// Status code returns the HTTP status code for the request's response error.
39860func (s *InvalidRequestException) StatusCode() int {
39861	return s.RespMetadata.StatusCode
39862}
39863
39864// RequestID returns the service's response RequestID for request.
39865func (s *InvalidRequestException) RequestID() string {
39866	return s.RespMetadata.RequestID
39867}
39868
39869// The response is invalid.
39870type InvalidResponseException struct {
39871	_            struct{}                  `type:"structure"`
39872	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39873
39874	// The message for the exception.
39875	Message_ *string `locationName:"message" type:"string"`
39876}
39877
39878// String returns the string representation
39879func (s InvalidResponseException) String() string {
39880	return awsutil.Prettify(s)
39881}
39882
39883// GoString returns the string representation
39884func (s InvalidResponseException) GoString() string {
39885	return s.String()
39886}
39887
39888func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
39889	return &InvalidResponseException{
39890		RespMetadata: v,
39891	}
39892}
39893
39894// Code returns the exception type name.
39895func (s *InvalidResponseException) Code() string {
39896	return "InvalidResponseException"
39897}
39898
39899// Message returns the exception's message.
39900func (s *InvalidResponseException) Message() string {
39901	if s.Message_ != nil {
39902		return *s.Message_
39903	}
39904	return ""
39905}
39906
39907// OrigErr always returns nil, satisfies awserr.Error interface.
39908func (s *InvalidResponseException) OrigErr() error {
39909	return nil
39910}
39911
39912func (s *InvalidResponseException) Error() string {
39913	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39914}
39915
39916// Status code returns the HTTP status code for the request's response error.
39917func (s *InvalidResponseException) StatusCode() int {
39918	return s.RespMetadata.StatusCode
39919}
39920
39921// RequestID returns the service's response RequestID for request.
39922func (s *InvalidResponseException) RequestID() string {
39923	return s.RespMetadata.RequestID
39924}
39925
39926// An attempt was made to change to an invalid state, for example by deleting
39927// a job or a job execution which is "IN_PROGRESS" without setting the force
39928// parameter.
39929type InvalidStateTransitionException struct {
39930	_            struct{}                  `type:"structure"`
39931	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
39932
39933	// The message for the exception.
39934	Message_ *string `locationName:"message" type:"string"`
39935}
39936
39937// String returns the string representation
39938func (s InvalidStateTransitionException) String() string {
39939	return awsutil.Prettify(s)
39940}
39941
39942// GoString returns the string representation
39943func (s InvalidStateTransitionException) GoString() string {
39944	return s.String()
39945}
39946
39947func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
39948	return &InvalidStateTransitionException{
39949		RespMetadata: v,
39950	}
39951}
39952
39953// Code returns the exception type name.
39954func (s *InvalidStateTransitionException) Code() string {
39955	return "InvalidStateTransitionException"
39956}
39957
39958// Message returns the exception's message.
39959func (s *InvalidStateTransitionException) Message() string {
39960	if s.Message_ != nil {
39961		return *s.Message_
39962	}
39963	return ""
39964}
39965
39966// OrigErr always returns nil, satisfies awserr.Error interface.
39967func (s *InvalidStateTransitionException) OrigErr() error {
39968	return nil
39969}
39970
39971func (s *InvalidStateTransitionException) Error() string {
39972	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
39973}
39974
39975// Status code returns the HTTP status code for the request's response error.
39976func (s *InvalidStateTransitionException) StatusCode() int {
39977	return s.RespMetadata.StatusCode
39978}
39979
39980// RequestID returns the service's response RequestID for request.
39981func (s *InvalidStateTransitionException) RequestID() string {
39982	return s.RespMetadata.RequestID
39983}
39984
39985// Sends message data to an AWS IoT Analytics channel.
39986type IotAnalyticsAction struct {
39987	_ struct{} `type:"structure"`
39988
39989	// Whether to process the action as a batch. The default value is false.
39990	//
39991	// When batchMode is true and the rule SQL statement evaluates to an Array,
39992	// each Array element is delivered as a separate message when passed by BatchPutMessage
39993	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
39994	// to the AWS IoT Analytics channel. The resulting array can't have more than
39995	// 100 messages.
39996	BatchMode *bool `locationName:"batchMode" type:"boolean"`
39997
39998	// (deprecated) The ARN of the IoT Analytics channel to which message data will
39999	// be sent.
40000	ChannelArn *string `locationName:"channelArn" type:"string"`
40001
40002	// The name of the IoT Analytics channel to which message data will be sent.
40003	ChannelName *string `locationName:"channelName" type:"string"`
40004
40005	// The ARN of the role which has a policy that grants IoT Analytics permission
40006	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
40007	RoleArn *string `locationName:"roleArn" type:"string"`
40008}
40009
40010// String returns the string representation
40011func (s IotAnalyticsAction) String() string {
40012	return awsutil.Prettify(s)
40013}
40014
40015// GoString returns the string representation
40016func (s IotAnalyticsAction) GoString() string {
40017	return s.String()
40018}
40019
40020// SetBatchMode sets the BatchMode field's value.
40021func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
40022	s.BatchMode = &v
40023	return s
40024}
40025
40026// SetChannelArn sets the ChannelArn field's value.
40027func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
40028	s.ChannelArn = &v
40029	return s
40030}
40031
40032// SetChannelName sets the ChannelName field's value.
40033func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
40034	s.ChannelName = &v
40035	return s
40036}
40037
40038// SetRoleArn sets the RoleArn field's value.
40039func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
40040	s.RoleArn = &v
40041	return s
40042}
40043
40044// Sends an input to an AWS IoT Events detector.
40045type IotEventsAction struct {
40046	_ struct{} `type:"structure"`
40047
40048	// Whether to process the event actions as a batch. The default value is false.
40049	//
40050	// When batchMode is true, you can't specify a messageId.
40051	//
40052	// When batchMode is true and the rule SQL statement evaluates to an Array,
40053	// each Array element is treated as a separate message when it's sent to AWS
40054	// IoT Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
40055	// The resulting array can't have more than 10 messages.
40056	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40057
40058	// The name of the AWS IoT Events input.
40059	//
40060	// InputName is a required field
40061	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
40062
40063	// The ID of the message. The default messageId is a new UUID value.
40064	//
40065	// When batchMode is true, you can't specify a messageId--a new UUID value will
40066	// be assigned.
40067	//
40068	// Assign a value to this property to ensure that only one input (message) with
40069	// a given messageId will be processed by an AWS IoT Events detector.
40070	MessageId *string `locationName:"messageId" type:"string"`
40071
40072	// The ARN of the role that grants AWS IoT permission to send an input to an
40073	// AWS IoT Events detector. ("Action":"iotevents:BatchPutMessage").
40074	//
40075	// RoleArn is a required field
40076	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40077}
40078
40079// String returns the string representation
40080func (s IotEventsAction) String() string {
40081	return awsutil.Prettify(s)
40082}
40083
40084// GoString returns the string representation
40085func (s IotEventsAction) GoString() string {
40086	return s.String()
40087}
40088
40089// Validate inspects the fields of the type to determine if they are valid.
40090func (s *IotEventsAction) Validate() error {
40091	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
40092	if s.InputName == nil {
40093		invalidParams.Add(request.NewErrParamRequired("InputName"))
40094	}
40095	if s.InputName != nil && len(*s.InputName) < 1 {
40096		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
40097	}
40098	if s.RoleArn == nil {
40099		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40100	}
40101
40102	if invalidParams.Len() > 0 {
40103		return invalidParams
40104	}
40105	return nil
40106}
40107
40108// SetBatchMode sets the BatchMode field's value.
40109func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
40110	s.BatchMode = &v
40111	return s
40112}
40113
40114// SetInputName sets the InputName field's value.
40115func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
40116	s.InputName = &v
40117	return s
40118}
40119
40120// SetMessageId sets the MessageId field's value.
40121func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
40122	s.MessageId = &v
40123	return s
40124}
40125
40126// SetRoleArn sets the RoleArn field's value.
40127func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
40128	s.RoleArn = &v
40129	return s
40130}
40131
40132// Describes an action to send data from an MQTT message that triggered the
40133// rule to AWS IoT SiteWise asset properties.
40134type IotSiteWiseAction struct {
40135	_ struct{} `type:"structure"`
40136
40137	// A list of asset property value entries.
40138	//
40139	// PutAssetPropertyValueEntries is a required field
40140	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
40141
40142	// The ARN of the role that grants AWS IoT permission to send an asset property
40143	// value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
40144	// The trust policy can restrict access to specific asset hierarchy paths.
40145	//
40146	// RoleArn is a required field
40147	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40148}
40149
40150// String returns the string representation
40151func (s IotSiteWiseAction) String() string {
40152	return awsutil.Prettify(s)
40153}
40154
40155// GoString returns the string representation
40156func (s IotSiteWiseAction) GoString() string {
40157	return s.String()
40158}
40159
40160// Validate inspects the fields of the type to determine if they are valid.
40161func (s *IotSiteWiseAction) Validate() error {
40162	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
40163	if s.PutAssetPropertyValueEntries == nil {
40164		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
40165	}
40166	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
40167		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
40168	}
40169	if s.RoleArn == nil {
40170		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40171	}
40172	if s.PutAssetPropertyValueEntries != nil {
40173		for i, v := range s.PutAssetPropertyValueEntries {
40174			if v == nil {
40175				continue
40176			}
40177			if err := v.Validate(); err != nil {
40178				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
40179			}
40180		}
40181	}
40182
40183	if invalidParams.Len() > 0 {
40184		return invalidParams
40185	}
40186	return nil
40187}
40188
40189// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
40190func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
40191	s.PutAssetPropertyValueEntries = v
40192	return s
40193}
40194
40195// SetRoleArn sets the RoleArn field's value.
40196func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
40197	s.RoleArn = &v
40198	return s
40199}
40200
40201// The Job object contains details about a job.
40202type Job struct {
40203	_ struct{} `type:"structure"`
40204
40205	// Configuration for criteria to abort the job.
40206	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
40207
40208	// If the job was updated, describes the reason for the update.
40209	Comment *string `locationName:"comment" type:"string"`
40210
40211	// The time, in seconds since the epoch, when the job was completed.
40212	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
40213
40214	// The time, in seconds since the epoch, when the job was created.
40215	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
40216
40217	// A short text description of the job.
40218	Description *string `locationName:"description" type:"string"`
40219
40220	// Will be true if the job was canceled with the optional force parameter set
40221	// to true.
40222	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
40223
40224	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
40225	JobArn *string `locationName:"jobArn" type:"string"`
40226
40227	// Allows you to create a staged rollout of a job.
40228	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
40229
40230	// The unique identifier you assigned to this job when it was created.
40231	JobId *string `locationName:"jobId" min:"1" type:"string"`
40232
40233	// Details about the job process.
40234	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
40235
40236	// The time, in seconds since the epoch, when the job was last updated.
40237	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
40238
40239	// The namespace used to indicate that a job is a customer-managed job.
40240	//
40241	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
40242	// to MQTT topics that contain the value in the following format.
40243	//
40244	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
40245	//
40246	// The namespaceId feature is in public preview.
40247	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
40248
40249	// Configuration for pre-signed S3 URLs.
40250	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
40251
40252	// If the job was updated, provides the reason code for the update.
40253	ReasonCode *string `locationName:"reasonCode" type:"string"`
40254
40255	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
40256	// or COMPLETED.
40257	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
40258
40259	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
40260	// after all those things specified as targets have completed the job (SNAPSHOT).
40261	// If continuous, the job may also be run on a thing when a change is detected
40262	// in a target. For example, a job will run on a device when the thing representing
40263	// the device is added to a target group, even after the job was completed by
40264	// all things originally in the group.
40265	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
40266
40267	// A list of IoT things and thing groups to which the job should be sent.
40268	Targets []*string `locationName:"targets" min:"1" type:"list"`
40269
40270	// Specifies the amount of time each device has to finish its execution of the
40271	// job. A timer is started when the job execution status is set to IN_PROGRESS.
40272	// If the job execution status is not set to another terminal state before the
40273	// timer expires, it will be automatically set to TIMED_OUT.
40274	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
40275}
40276
40277// String returns the string representation
40278func (s Job) String() string {
40279	return awsutil.Prettify(s)
40280}
40281
40282// GoString returns the string representation
40283func (s Job) GoString() string {
40284	return s.String()
40285}
40286
40287// SetAbortConfig sets the AbortConfig field's value.
40288func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
40289	s.AbortConfig = v
40290	return s
40291}
40292
40293// SetComment sets the Comment field's value.
40294func (s *Job) SetComment(v string) *Job {
40295	s.Comment = &v
40296	return s
40297}
40298
40299// SetCompletedAt sets the CompletedAt field's value.
40300func (s *Job) SetCompletedAt(v time.Time) *Job {
40301	s.CompletedAt = &v
40302	return s
40303}
40304
40305// SetCreatedAt sets the CreatedAt field's value.
40306func (s *Job) SetCreatedAt(v time.Time) *Job {
40307	s.CreatedAt = &v
40308	return s
40309}
40310
40311// SetDescription sets the Description field's value.
40312func (s *Job) SetDescription(v string) *Job {
40313	s.Description = &v
40314	return s
40315}
40316
40317// SetForceCanceled sets the ForceCanceled field's value.
40318func (s *Job) SetForceCanceled(v bool) *Job {
40319	s.ForceCanceled = &v
40320	return s
40321}
40322
40323// SetJobArn sets the JobArn field's value.
40324func (s *Job) SetJobArn(v string) *Job {
40325	s.JobArn = &v
40326	return s
40327}
40328
40329// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
40330func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
40331	s.JobExecutionsRolloutConfig = v
40332	return s
40333}
40334
40335// SetJobId sets the JobId field's value.
40336func (s *Job) SetJobId(v string) *Job {
40337	s.JobId = &v
40338	return s
40339}
40340
40341// SetJobProcessDetails sets the JobProcessDetails field's value.
40342func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
40343	s.JobProcessDetails = v
40344	return s
40345}
40346
40347// SetLastUpdatedAt sets the LastUpdatedAt field's value.
40348func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
40349	s.LastUpdatedAt = &v
40350	return s
40351}
40352
40353// SetNamespaceId sets the NamespaceId field's value.
40354func (s *Job) SetNamespaceId(v string) *Job {
40355	s.NamespaceId = &v
40356	return s
40357}
40358
40359// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
40360func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
40361	s.PresignedUrlConfig = v
40362	return s
40363}
40364
40365// SetReasonCode sets the ReasonCode field's value.
40366func (s *Job) SetReasonCode(v string) *Job {
40367	s.ReasonCode = &v
40368	return s
40369}
40370
40371// SetStatus sets the Status field's value.
40372func (s *Job) SetStatus(v string) *Job {
40373	s.Status = &v
40374	return s
40375}
40376
40377// SetTargetSelection sets the TargetSelection field's value.
40378func (s *Job) SetTargetSelection(v string) *Job {
40379	s.TargetSelection = &v
40380	return s
40381}
40382
40383// SetTargets sets the Targets field's value.
40384func (s *Job) SetTargets(v []*string) *Job {
40385	s.Targets = v
40386	return s
40387}
40388
40389// SetTimeoutConfig sets the TimeoutConfig field's value.
40390func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
40391	s.TimeoutConfig = v
40392	return s
40393}
40394
40395// The job execution object represents the execution of a job on a particular
40396// device.
40397type JobExecution struct {
40398	_ struct{} `type:"structure"`
40399
40400	// The estimated number of seconds that remain before the job execution status
40401	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
40402	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
40403	// can occur up to 60 seconds later than the estimated duration. This value
40404	// will not be included if the job execution has reached a terminal status.
40405	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
40406
40407	// A string (consisting of the digits "0" through "9") which identifies this
40408	// particular job execution on this particular device. It can be used in commands
40409	// which return or update job execution information.
40410	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
40411
40412	// Will be true if the job execution was canceled with the optional force parameter
40413	// set to true.
40414	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
40415
40416	// The unique identifier you assigned to the job when it was created.
40417	JobId *string `locationName:"jobId" min:"1" type:"string"`
40418
40419	// The time, in seconds since the epoch, when the job execution was last updated.
40420	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
40421
40422	// The time, in seconds since the epoch, when the job execution was queued.
40423	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
40424
40425	// The time, in seconds since the epoch, when the job execution started.
40426	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
40427
40428	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
40429	// TIMED_OUT, CANCELED, or REJECTED).
40430	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
40431
40432	// A collection of name/value pairs that describe the status of the job execution.
40433	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
40434
40435	// The ARN of the thing on which the job execution is running.
40436	ThingArn *string `locationName:"thingArn" type:"string"`
40437
40438	// The version of the job execution. Job execution versions are incremented
40439	// each time they are updated by a device.
40440	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
40441}
40442
40443// String returns the string representation
40444func (s JobExecution) String() string {
40445	return awsutil.Prettify(s)
40446}
40447
40448// GoString returns the string representation
40449func (s JobExecution) GoString() string {
40450	return s.String()
40451}
40452
40453// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
40454func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
40455	s.ApproximateSecondsBeforeTimedOut = &v
40456	return s
40457}
40458
40459// SetExecutionNumber sets the ExecutionNumber field's value.
40460func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
40461	s.ExecutionNumber = &v
40462	return s
40463}
40464
40465// SetForceCanceled sets the ForceCanceled field's value.
40466func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
40467	s.ForceCanceled = &v
40468	return s
40469}
40470
40471// SetJobId sets the JobId field's value.
40472func (s *JobExecution) SetJobId(v string) *JobExecution {
40473	s.JobId = &v
40474	return s
40475}
40476
40477// SetLastUpdatedAt sets the LastUpdatedAt field's value.
40478func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
40479	s.LastUpdatedAt = &v
40480	return s
40481}
40482
40483// SetQueuedAt sets the QueuedAt field's value.
40484func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
40485	s.QueuedAt = &v
40486	return s
40487}
40488
40489// SetStartedAt sets the StartedAt field's value.
40490func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
40491	s.StartedAt = &v
40492	return s
40493}
40494
40495// SetStatus sets the Status field's value.
40496func (s *JobExecution) SetStatus(v string) *JobExecution {
40497	s.Status = &v
40498	return s
40499}
40500
40501// SetStatusDetails sets the StatusDetails field's value.
40502func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
40503	s.StatusDetails = v
40504	return s
40505}
40506
40507// SetThingArn sets the ThingArn field's value.
40508func (s *JobExecution) SetThingArn(v string) *JobExecution {
40509	s.ThingArn = &v
40510	return s
40511}
40512
40513// SetVersionNumber sets the VersionNumber field's value.
40514func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
40515	s.VersionNumber = &v
40516	return s
40517}
40518
40519// Details of the job execution status.
40520type JobExecutionStatusDetails struct {
40521	_ struct{} `type:"structure"`
40522
40523	// The job execution status.
40524	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
40525}
40526
40527// String returns the string representation
40528func (s JobExecutionStatusDetails) String() string {
40529	return awsutil.Prettify(s)
40530}
40531
40532// GoString returns the string representation
40533func (s JobExecutionStatusDetails) GoString() string {
40534	return s.String()
40535}
40536
40537// SetDetailsMap sets the DetailsMap field's value.
40538func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
40539	s.DetailsMap = v
40540	return s
40541}
40542
40543// The job execution summary.
40544type JobExecutionSummary struct {
40545	_ struct{} `type:"structure"`
40546
40547	// A string (consisting of the digits "0" through "9") which identifies this
40548	// particular job execution on this particular device. It can be used later
40549	// in commands which return or update job execution information.
40550	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
40551
40552	// The time, in seconds since the epoch, when the job execution was last updated.
40553	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
40554
40555	// The time, in seconds since the epoch, when the job execution was queued.
40556	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
40557
40558	// The time, in seconds since the epoch, when the job execution started.
40559	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
40560
40561	// The status of the job execution.
40562	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
40563}
40564
40565// String returns the string representation
40566func (s JobExecutionSummary) String() string {
40567	return awsutil.Prettify(s)
40568}
40569
40570// GoString returns the string representation
40571func (s JobExecutionSummary) GoString() string {
40572	return s.String()
40573}
40574
40575// SetExecutionNumber sets the ExecutionNumber field's value.
40576func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
40577	s.ExecutionNumber = &v
40578	return s
40579}
40580
40581// SetLastUpdatedAt sets the LastUpdatedAt field's value.
40582func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
40583	s.LastUpdatedAt = &v
40584	return s
40585}
40586
40587// SetQueuedAt sets the QueuedAt field's value.
40588func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
40589	s.QueuedAt = &v
40590	return s
40591}
40592
40593// SetStartedAt sets the StartedAt field's value.
40594func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
40595	s.StartedAt = &v
40596	return s
40597}
40598
40599// SetStatus sets the Status field's value.
40600func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
40601	s.Status = &v
40602	return s
40603}
40604
40605// Contains a summary of information about job executions for a specific job.
40606type JobExecutionSummaryForJob struct {
40607	_ struct{} `type:"structure"`
40608
40609	// Contains a subset of information about a job execution.
40610	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
40611
40612	// The ARN of the thing on which the job execution is running.
40613	ThingArn *string `locationName:"thingArn" type:"string"`
40614}
40615
40616// String returns the string representation
40617func (s JobExecutionSummaryForJob) String() string {
40618	return awsutil.Prettify(s)
40619}
40620
40621// GoString returns the string representation
40622func (s JobExecutionSummaryForJob) GoString() string {
40623	return s.String()
40624}
40625
40626// SetJobExecutionSummary sets the JobExecutionSummary field's value.
40627func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
40628	s.JobExecutionSummary = v
40629	return s
40630}
40631
40632// SetThingArn sets the ThingArn field's value.
40633func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
40634	s.ThingArn = &v
40635	return s
40636}
40637
40638// The job execution summary for a thing.
40639type JobExecutionSummaryForThing struct {
40640	_ struct{} `type:"structure"`
40641
40642	// Contains a subset of information about a job execution.
40643	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
40644
40645	// The unique identifier you assigned to this job when it was created.
40646	JobId *string `locationName:"jobId" min:"1" type:"string"`
40647}
40648
40649// String returns the string representation
40650func (s JobExecutionSummaryForThing) String() string {
40651	return awsutil.Prettify(s)
40652}
40653
40654// GoString returns the string representation
40655func (s JobExecutionSummaryForThing) GoString() string {
40656	return s.String()
40657}
40658
40659// SetJobExecutionSummary sets the JobExecutionSummary field's value.
40660func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
40661	s.JobExecutionSummary = v
40662	return s
40663}
40664
40665// SetJobId sets the JobId field's value.
40666func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
40667	s.JobId = &v
40668	return s
40669}
40670
40671// Allows you to create a staged rollout of a job.
40672type JobExecutionsRolloutConfig struct {
40673	_ struct{} `type:"structure"`
40674
40675	// The rate of increase for a job rollout. This parameter allows you to define
40676	// an exponential rate for a job rollout.
40677	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
40678
40679	// The maximum number of things that will be notified of a pending job, per
40680	// minute. This parameter allows you to create a staged rollout.
40681	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
40682}
40683
40684// String returns the string representation
40685func (s JobExecutionsRolloutConfig) String() string {
40686	return awsutil.Prettify(s)
40687}
40688
40689// GoString returns the string representation
40690func (s JobExecutionsRolloutConfig) GoString() string {
40691	return s.String()
40692}
40693
40694// Validate inspects the fields of the type to determine if they are valid.
40695func (s *JobExecutionsRolloutConfig) Validate() error {
40696	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
40697	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
40698		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
40699	}
40700	if s.ExponentialRate != nil {
40701		if err := s.ExponentialRate.Validate(); err != nil {
40702			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
40703		}
40704	}
40705
40706	if invalidParams.Len() > 0 {
40707		return invalidParams
40708	}
40709	return nil
40710}
40711
40712// SetExponentialRate sets the ExponentialRate field's value.
40713func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
40714	s.ExponentialRate = v
40715	return s
40716}
40717
40718// SetMaximumPerMinute sets the MaximumPerMinute field's value.
40719func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
40720	s.MaximumPerMinute = &v
40721	return s
40722}
40723
40724// The job process details.
40725type JobProcessDetails struct {
40726	_ struct{} `type:"structure"`
40727
40728	// The number of things that cancelled the job.
40729	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
40730
40731	// The number of things that failed executing the job.
40732	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
40733
40734	// The number of things currently executing the job.
40735	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
40736
40737	// The number of things that are awaiting execution of the job.
40738	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
40739
40740	// The number of things that rejected the job.
40741	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
40742
40743	// The number of things that are no longer scheduled to execute the job because
40744	// they have been deleted or have been removed from the group that was a target
40745	// of the job.
40746	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
40747
40748	// The number of things which successfully completed the job.
40749	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
40750
40751	// The number of things whose job execution status is TIMED_OUT.
40752	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
40753
40754	// The target devices to which the job execution is being rolled out. This value
40755	// will be null after the job execution has finished rolling out to all the
40756	// target devices.
40757	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
40758}
40759
40760// String returns the string representation
40761func (s JobProcessDetails) String() string {
40762	return awsutil.Prettify(s)
40763}
40764
40765// GoString returns the string representation
40766func (s JobProcessDetails) GoString() string {
40767	return s.String()
40768}
40769
40770// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
40771func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
40772	s.NumberOfCanceledThings = &v
40773	return s
40774}
40775
40776// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
40777func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
40778	s.NumberOfFailedThings = &v
40779	return s
40780}
40781
40782// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
40783func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
40784	s.NumberOfInProgressThings = &v
40785	return s
40786}
40787
40788// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
40789func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
40790	s.NumberOfQueuedThings = &v
40791	return s
40792}
40793
40794// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
40795func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
40796	s.NumberOfRejectedThings = &v
40797	return s
40798}
40799
40800// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
40801func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
40802	s.NumberOfRemovedThings = &v
40803	return s
40804}
40805
40806// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
40807func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
40808	s.NumberOfSucceededThings = &v
40809	return s
40810}
40811
40812// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
40813func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
40814	s.NumberOfTimedOutThings = &v
40815	return s
40816}
40817
40818// SetProcessingTargets sets the ProcessingTargets field's value.
40819func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
40820	s.ProcessingTargets = v
40821	return s
40822}
40823
40824// The job summary.
40825type JobSummary struct {
40826	_ struct{} `type:"structure"`
40827
40828	// The time, in seconds since the epoch, when the job completed.
40829	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
40830
40831	// The time, in seconds since the epoch, when the job was created.
40832	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
40833
40834	// The job ARN.
40835	JobArn *string `locationName:"jobArn" type:"string"`
40836
40837	// The unique identifier you assigned to this job when it was created.
40838	JobId *string `locationName:"jobId" min:"1" type:"string"`
40839
40840	// The time, in seconds since the epoch, when the job was last updated.
40841	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
40842
40843	// The job summary status.
40844	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
40845
40846	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
40847	// after all those things specified as targets have completed the job (SNAPSHOT).
40848	// If continuous, the job may also be run on a thing when a change is detected
40849	// in a target. For example, a job will run on a thing when the thing is added
40850	// to a target group, even after the job was completed by all things originally
40851	// in the group.
40852	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
40853
40854	// The ID of the thing group.
40855	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
40856}
40857
40858// String returns the string representation
40859func (s JobSummary) String() string {
40860	return awsutil.Prettify(s)
40861}
40862
40863// GoString returns the string representation
40864func (s JobSummary) GoString() string {
40865	return s.String()
40866}
40867
40868// SetCompletedAt sets the CompletedAt field's value.
40869func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
40870	s.CompletedAt = &v
40871	return s
40872}
40873
40874// SetCreatedAt sets the CreatedAt field's value.
40875func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
40876	s.CreatedAt = &v
40877	return s
40878}
40879
40880// SetJobArn sets the JobArn field's value.
40881func (s *JobSummary) SetJobArn(v string) *JobSummary {
40882	s.JobArn = &v
40883	return s
40884}
40885
40886// SetJobId sets the JobId field's value.
40887func (s *JobSummary) SetJobId(v string) *JobSummary {
40888	s.JobId = &v
40889	return s
40890}
40891
40892// SetLastUpdatedAt sets the LastUpdatedAt field's value.
40893func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
40894	s.LastUpdatedAt = &v
40895	return s
40896}
40897
40898// SetStatus sets the Status field's value.
40899func (s *JobSummary) SetStatus(v string) *JobSummary {
40900	s.Status = &v
40901	return s
40902}
40903
40904// SetTargetSelection sets the TargetSelection field's value.
40905func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
40906	s.TargetSelection = &v
40907	return s
40908}
40909
40910// SetThingGroupId sets the ThingGroupId field's value.
40911func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
40912	s.ThingGroupId = &v
40913	return s
40914}
40915
40916// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
40917// or self-managed Apache Kafka cluster.
40918type KafkaAction struct {
40919	_ struct{} `type:"structure"`
40920
40921	// Properties of the Apache Kafka producer client.
40922	//
40923	// ClientProperties is a required field
40924	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
40925
40926	// The ARN of Kafka action's VPC TopicRuleDestination.
40927	//
40928	// DestinationArn is a required field
40929	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
40930
40931	// The Kafka message key.
40932	Key *string `locationName:"key" type:"string"`
40933
40934	// The Kafka message partition.
40935	Partition *string `locationName:"partition" type:"string"`
40936
40937	// The Kafka topic for messages to be sent to the Kafka broker.
40938	//
40939	// Topic is a required field
40940	Topic *string `locationName:"topic" type:"string" required:"true"`
40941}
40942
40943// String returns the string representation
40944func (s KafkaAction) String() string {
40945	return awsutil.Prettify(s)
40946}
40947
40948// GoString returns the string representation
40949func (s KafkaAction) GoString() string {
40950	return s.String()
40951}
40952
40953// Validate inspects the fields of the type to determine if they are valid.
40954func (s *KafkaAction) Validate() error {
40955	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
40956	if s.ClientProperties == nil {
40957		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
40958	}
40959	if s.DestinationArn == nil {
40960		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
40961	}
40962	if s.Topic == nil {
40963		invalidParams.Add(request.NewErrParamRequired("Topic"))
40964	}
40965
40966	if invalidParams.Len() > 0 {
40967		return invalidParams
40968	}
40969	return nil
40970}
40971
40972// SetClientProperties sets the ClientProperties field's value.
40973func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
40974	s.ClientProperties = v
40975	return s
40976}
40977
40978// SetDestinationArn sets the DestinationArn field's value.
40979func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
40980	s.DestinationArn = &v
40981	return s
40982}
40983
40984// SetKey sets the Key field's value.
40985func (s *KafkaAction) SetKey(v string) *KafkaAction {
40986	s.Key = &v
40987	return s
40988}
40989
40990// SetPartition sets the Partition field's value.
40991func (s *KafkaAction) SetPartition(v string) *KafkaAction {
40992	s.Partition = &v
40993	return s
40994}
40995
40996// SetTopic sets the Topic field's value.
40997func (s *KafkaAction) SetTopic(v string) *KafkaAction {
40998	s.Topic = &v
40999	return s
41000}
41001
41002// Describes a key pair.
41003type KeyPair struct {
41004	_ struct{} `type:"structure"`
41005
41006	// The private key.
41007	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
41008
41009	// The public key.
41010	PublicKey *string `min:"1" type:"string"`
41011}
41012
41013// String returns the string representation
41014func (s KeyPair) String() string {
41015	return awsutil.Prettify(s)
41016}
41017
41018// GoString returns the string representation
41019func (s KeyPair) GoString() string {
41020	return s.String()
41021}
41022
41023// SetPrivateKey sets the PrivateKey field's value.
41024func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
41025	s.PrivateKey = &v
41026	return s
41027}
41028
41029// SetPublicKey sets the PublicKey field's value.
41030func (s *KeyPair) SetPublicKey(v string) *KeyPair {
41031	s.PublicKey = &v
41032	return s
41033}
41034
41035// Describes an action to write data to an Amazon Kinesis stream.
41036type KinesisAction struct {
41037	_ struct{} `type:"structure"`
41038
41039	// The partition key.
41040	PartitionKey *string `locationName:"partitionKey" type:"string"`
41041
41042	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
41043	//
41044	// RoleArn is a required field
41045	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
41046
41047	// The name of the Amazon Kinesis stream.
41048	//
41049	// StreamName is a required field
41050	StreamName *string `locationName:"streamName" type:"string" required:"true"`
41051}
41052
41053// String returns the string representation
41054func (s KinesisAction) String() string {
41055	return awsutil.Prettify(s)
41056}
41057
41058// GoString returns the string representation
41059func (s KinesisAction) GoString() string {
41060	return s.String()
41061}
41062
41063// Validate inspects the fields of the type to determine if they are valid.
41064func (s *KinesisAction) Validate() error {
41065	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
41066	if s.RoleArn == nil {
41067		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
41068	}
41069	if s.StreamName == nil {
41070		invalidParams.Add(request.NewErrParamRequired("StreamName"))
41071	}
41072
41073	if invalidParams.Len() > 0 {
41074		return invalidParams
41075	}
41076	return nil
41077}
41078
41079// SetPartitionKey sets the PartitionKey field's value.
41080func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
41081	s.PartitionKey = &v
41082	return s
41083}
41084
41085// SetRoleArn sets the RoleArn field's value.
41086func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
41087	s.RoleArn = &v
41088	return s
41089}
41090
41091// SetStreamName sets the StreamName field's value.
41092func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
41093	s.StreamName = &v
41094	return s
41095}
41096
41097// Describes an action to invoke a Lambda function.
41098type LambdaAction struct {
41099	_ struct{} `type:"structure"`
41100
41101	// The ARN of the Lambda function.
41102	//
41103	// FunctionArn is a required field
41104	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
41105}
41106
41107// String returns the string representation
41108func (s LambdaAction) String() string {
41109	return awsutil.Prettify(s)
41110}
41111
41112// GoString returns the string representation
41113func (s LambdaAction) GoString() string {
41114	return s.String()
41115}
41116
41117// Validate inspects the fields of the type to determine if they are valid.
41118func (s *LambdaAction) Validate() error {
41119	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
41120	if s.FunctionArn == nil {
41121		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
41122	}
41123
41124	if invalidParams.Len() > 0 {
41125		return invalidParams
41126	}
41127	return nil
41128}
41129
41130// SetFunctionArn sets the FunctionArn field's value.
41131func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
41132	s.FunctionArn = &v
41133	return s
41134}
41135
41136// A limit has been exceeded.
41137type LimitExceededException struct {
41138	_            struct{}                  `type:"structure"`
41139	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
41140
41141	// The message for the exception.
41142	Message_ *string `locationName:"message" type:"string"`
41143}
41144
41145// String returns the string representation
41146func (s LimitExceededException) String() string {
41147	return awsutil.Prettify(s)
41148}
41149
41150// GoString returns the string representation
41151func (s LimitExceededException) GoString() string {
41152	return s.String()
41153}
41154
41155func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
41156	return &LimitExceededException{
41157		RespMetadata: v,
41158	}
41159}
41160
41161// Code returns the exception type name.
41162func (s *LimitExceededException) Code() string {
41163	return "LimitExceededException"
41164}
41165
41166// Message returns the exception's message.
41167func (s *LimitExceededException) Message() string {
41168	if s.Message_ != nil {
41169		return *s.Message_
41170	}
41171	return ""
41172}
41173
41174// OrigErr always returns nil, satisfies awserr.Error interface.
41175func (s *LimitExceededException) OrigErr() error {
41176	return nil
41177}
41178
41179func (s *LimitExceededException) Error() string {
41180	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
41181}
41182
41183// Status code returns the HTTP status code for the request's response error.
41184func (s *LimitExceededException) StatusCode() int {
41185	return s.RespMetadata.StatusCode
41186}
41187
41188// RequestID returns the service's response RequestID for request.
41189func (s *LimitExceededException) RequestID() string {
41190	return s.RespMetadata.RequestID
41191}
41192
41193type ListActiveViolationsInput struct {
41194	_ struct{} `type:"structure"`
41195
41196	// The criteria for a behavior.
41197	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
41198
41199	// A list of all suppressed alerts.
41200	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
41201
41202	// The maximum number of results to return at one time.
41203	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
41204
41205	// The token for the next set of results.
41206	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
41207
41208	// The name of the Device Defender security profile for which violations are
41209	// listed.
41210	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
41211
41212	// The name of the thing whose active violations are listed.
41213	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
41214}
41215
41216// String returns the string representation
41217func (s ListActiveViolationsInput) String() string {
41218	return awsutil.Prettify(s)
41219}
41220
41221// GoString returns the string representation
41222func (s ListActiveViolationsInput) GoString() string {
41223	return s.String()
41224}
41225
41226// Validate inspects the fields of the type to determine if they are valid.
41227func (s *ListActiveViolationsInput) Validate() error {
41228	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
41229	if s.MaxResults != nil && *s.MaxResults < 1 {
41230		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41231	}
41232	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
41233		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
41234	}
41235	if s.ThingName != nil && len(*s.ThingName) < 1 {
41236		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41237	}
41238
41239	if invalidParams.Len() > 0 {
41240		return invalidParams
41241	}
41242	return nil
41243}
41244
41245// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
41246func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
41247	s.BehaviorCriteriaType = &v
41248	return s
41249}
41250
41251// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
41252func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
41253	s.ListSuppressedAlerts = &v
41254	return s
41255}
41256
41257// SetMaxResults sets the MaxResults field's value.
41258func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
41259	s.MaxResults = &v
41260	return s
41261}
41262
41263// SetNextToken sets the NextToken field's value.
41264func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
41265	s.NextToken = &v
41266	return s
41267}
41268
41269// SetSecurityProfileName sets the SecurityProfileName field's value.
41270func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
41271	s.SecurityProfileName = &v
41272	return s
41273}
41274
41275// SetThingName sets the ThingName field's value.
41276func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
41277	s.ThingName = &v
41278	return s
41279}
41280
41281type ListActiveViolationsOutput struct {
41282	_ struct{} `type:"structure"`
41283
41284	// The list of active violations.
41285	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
41286
41287	// A token that can be used to retrieve the next set of results, or null if
41288	// there are no additional results.
41289	NextToken *string `locationName:"nextToken" type:"string"`
41290}
41291
41292// String returns the string representation
41293func (s ListActiveViolationsOutput) String() string {
41294	return awsutil.Prettify(s)
41295}
41296
41297// GoString returns the string representation
41298func (s ListActiveViolationsOutput) GoString() string {
41299	return s.String()
41300}
41301
41302// SetActiveViolations sets the ActiveViolations field's value.
41303func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
41304	s.ActiveViolations = v
41305	return s
41306}
41307
41308// SetNextToken sets the NextToken field's value.
41309func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
41310	s.NextToken = &v
41311	return s
41312}
41313
41314type ListAttachedPoliciesInput struct {
41315	_ struct{} `type:"structure"`
41316
41317	// The token to retrieve the next set of results.
41318	Marker *string `location:"querystring" locationName:"marker" type:"string"`
41319
41320	// The maximum number of results to be returned per request.
41321	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
41322
41323	// When true, recursively list attached policies.
41324	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
41325
41326	// The group or principal for which the policies will be listed. Valid principals
41327	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
41328	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
41329	//
41330	// Target is a required field
41331	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
41332}
41333
41334// String returns the string representation
41335func (s ListAttachedPoliciesInput) String() string {
41336	return awsutil.Prettify(s)
41337}
41338
41339// GoString returns the string representation
41340func (s ListAttachedPoliciesInput) GoString() string {
41341	return s.String()
41342}
41343
41344// Validate inspects the fields of the type to determine if they are valid.
41345func (s *ListAttachedPoliciesInput) Validate() error {
41346	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
41347	if s.PageSize != nil && *s.PageSize < 1 {
41348		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
41349	}
41350	if s.Target == nil {
41351		invalidParams.Add(request.NewErrParamRequired("Target"))
41352	}
41353	if s.Target != nil && len(*s.Target) < 1 {
41354		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
41355	}
41356
41357	if invalidParams.Len() > 0 {
41358		return invalidParams
41359	}
41360	return nil
41361}
41362
41363// SetMarker sets the Marker field's value.
41364func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
41365	s.Marker = &v
41366	return s
41367}
41368
41369// SetPageSize sets the PageSize field's value.
41370func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
41371	s.PageSize = &v
41372	return s
41373}
41374
41375// SetRecursive sets the Recursive field's value.
41376func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
41377	s.Recursive = &v
41378	return s
41379}
41380
41381// SetTarget sets the Target field's value.
41382func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
41383	s.Target = &v
41384	return s
41385}
41386
41387type ListAttachedPoliciesOutput struct {
41388	_ struct{} `type:"structure"`
41389
41390	// The token to retrieve the next set of results, or ``null`` if there are no
41391	// more results.
41392	NextMarker *string `locationName:"nextMarker" type:"string"`
41393
41394	// The policies.
41395	Policies []*Policy `locationName:"policies" type:"list"`
41396}
41397
41398// String returns the string representation
41399func (s ListAttachedPoliciesOutput) String() string {
41400	return awsutil.Prettify(s)
41401}
41402
41403// GoString returns the string representation
41404func (s ListAttachedPoliciesOutput) GoString() string {
41405	return s.String()
41406}
41407
41408// SetNextMarker sets the NextMarker field's value.
41409func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
41410	s.NextMarker = &v
41411	return s
41412}
41413
41414// SetPolicies sets the Policies field's value.
41415func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
41416	s.Policies = v
41417	return s
41418}
41419
41420type ListAuditFindingsInput struct {
41421	_ struct{} `type:"structure"`
41422
41423	// A filter to limit results to the findings for the specified audit check.
41424	CheckName *string `locationName:"checkName" type:"string"`
41425
41426	// A filter to limit results to those found before the specified time. You must
41427	// specify either the startTime and endTime or the taskId, but not both.
41428	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
41429
41430	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
41431	// findings should be listed. If this parameter isn't provided, the response
41432	// will list both suppressed and unsuppressed findings.
41433	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
41434
41435	// The maximum number of results to return at one time. The default is 25.
41436	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
41437
41438	// The token for the next set of results.
41439	NextToken *string `locationName:"nextToken" type:"string"`
41440
41441	// Information identifying the noncompliant resource.
41442	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
41443
41444	// A filter to limit results to those found after the specified time. You must
41445	// specify either the startTime and endTime or the taskId, but not both.
41446	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
41447
41448	// A filter to limit results to the audit with the specified ID. You must specify
41449	// either the taskId or the startTime and endTime, but not both.
41450	TaskId *string `locationName:"taskId" min:"1" type:"string"`
41451}
41452
41453// String returns the string representation
41454func (s ListAuditFindingsInput) String() string {
41455	return awsutil.Prettify(s)
41456}
41457
41458// GoString returns the string representation
41459func (s ListAuditFindingsInput) GoString() string {
41460	return s.String()
41461}
41462
41463// Validate inspects the fields of the type to determine if they are valid.
41464func (s *ListAuditFindingsInput) Validate() error {
41465	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
41466	if s.MaxResults != nil && *s.MaxResults < 1 {
41467		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41468	}
41469	if s.TaskId != nil && len(*s.TaskId) < 1 {
41470		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
41471	}
41472	if s.ResourceIdentifier != nil {
41473		if err := s.ResourceIdentifier.Validate(); err != nil {
41474			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
41475		}
41476	}
41477
41478	if invalidParams.Len() > 0 {
41479		return invalidParams
41480	}
41481	return nil
41482}
41483
41484// SetCheckName sets the CheckName field's value.
41485func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
41486	s.CheckName = &v
41487	return s
41488}
41489
41490// SetEndTime sets the EndTime field's value.
41491func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
41492	s.EndTime = &v
41493	return s
41494}
41495
41496// SetListSuppressedFindings sets the ListSuppressedFindings field's value.
41497func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
41498	s.ListSuppressedFindings = &v
41499	return s
41500}
41501
41502// SetMaxResults sets the MaxResults field's value.
41503func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
41504	s.MaxResults = &v
41505	return s
41506}
41507
41508// SetNextToken sets the NextToken field's value.
41509func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
41510	s.NextToken = &v
41511	return s
41512}
41513
41514// SetResourceIdentifier sets the ResourceIdentifier field's value.
41515func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
41516	s.ResourceIdentifier = v
41517	return s
41518}
41519
41520// SetStartTime sets the StartTime field's value.
41521func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
41522	s.StartTime = &v
41523	return s
41524}
41525
41526// SetTaskId sets the TaskId field's value.
41527func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
41528	s.TaskId = &v
41529	return s
41530}
41531
41532type ListAuditFindingsOutput struct {
41533	_ struct{} `type:"structure"`
41534
41535	// The findings (results) of the audit.
41536	Findings []*AuditFinding `locationName:"findings" type:"list"`
41537
41538	// A token that can be used to retrieve the next set of results, or null if
41539	// there are no additional results.
41540	NextToken *string `locationName:"nextToken" type:"string"`
41541}
41542
41543// String returns the string representation
41544func (s ListAuditFindingsOutput) String() string {
41545	return awsutil.Prettify(s)
41546}
41547
41548// GoString returns the string representation
41549func (s ListAuditFindingsOutput) GoString() string {
41550	return s.String()
41551}
41552
41553// SetFindings sets the Findings field's value.
41554func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
41555	s.Findings = v
41556	return s
41557}
41558
41559// SetNextToken sets the NextToken field's value.
41560func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
41561	s.NextToken = &v
41562	return s
41563}
41564
41565type ListAuditMitigationActionsExecutionsInput struct {
41566	_ struct{} `type:"structure"`
41567
41568	// Specify this filter to limit results to those with a specific status.
41569	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
41570
41571	// Specify this filter to limit results to those that were applied to a specific
41572	// audit finding.
41573	//
41574	// FindingId is a required field
41575	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
41576
41577	// The maximum number of results to return at one time. The default is 25.
41578	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
41579
41580	// The token for the next set of results.
41581	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
41582
41583	// Specify this filter to limit results to actions for a specific audit mitigation
41584	// actions task.
41585	//
41586	// TaskId is a required field
41587	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
41588}
41589
41590// String returns the string representation
41591func (s ListAuditMitigationActionsExecutionsInput) String() string {
41592	return awsutil.Prettify(s)
41593}
41594
41595// GoString returns the string representation
41596func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
41597	return s.String()
41598}
41599
41600// Validate inspects the fields of the type to determine if they are valid.
41601func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
41602	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
41603	if s.FindingId == nil {
41604		invalidParams.Add(request.NewErrParamRequired("FindingId"))
41605	}
41606	if s.FindingId != nil && len(*s.FindingId) < 1 {
41607		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
41608	}
41609	if s.MaxResults != nil && *s.MaxResults < 1 {
41610		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41611	}
41612	if s.TaskId == nil {
41613		invalidParams.Add(request.NewErrParamRequired("TaskId"))
41614	}
41615	if s.TaskId != nil && len(*s.TaskId) < 1 {
41616		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
41617	}
41618
41619	if invalidParams.Len() > 0 {
41620		return invalidParams
41621	}
41622	return nil
41623}
41624
41625// SetActionStatus sets the ActionStatus field's value.
41626func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
41627	s.ActionStatus = &v
41628	return s
41629}
41630
41631// SetFindingId sets the FindingId field's value.
41632func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
41633	s.FindingId = &v
41634	return s
41635}
41636
41637// SetMaxResults sets the MaxResults field's value.
41638func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
41639	s.MaxResults = &v
41640	return s
41641}
41642
41643// SetNextToken sets the NextToken field's value.
41644func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
41645	s.NextToken = &v
41646	return s
41647}
41648
41649// SetTaskId sets the TaskId field's value.
41650func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
41651	s.TaskId = &v
41652	return s
41653}
41654
41655type ListAuditMitigationActionsExecutionsOutput struct {
41656	_ struct{} `type:"structure"`
41657
41658	// A set of task execution results based on the input parameters. Details include
41659	// the mitigation action applied, start time, and task status.
41660	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
41661
41662	// The token for the next set of results.
41663	NextToken *string `locationName:"nextToken" type:"string"`
41664}
41665
41666// String returns the string representation
41667func (s ListAuditMitigationActionsExecutionsOutput) String() string {
41668	return awsutil.Prettify(s)
41669}
41670
41671// GoString returns the string representation
41672func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
41673	return s.String()
41674}
41675
41676// SetActionsExecutions sets the ActionsExecutions field's value.
41677func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
41678	s.ActionsExecutions = v
41679	return s
41680}
41681
41682// SetNextToken sets the NextToken field's value.
41683func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
41684	s.NextToken = &v
41685	return s
41686}
41687
41688type ListAuditMitigationActionsTasksInput struct {
41689	_ struct{} `type:"structure"`
41690
41691	// Specify this filter to limit results to tasks that were applied to results
41692	// for a specific audit.
41693	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
41694
41695	// Specify this filter to limit results to tasks that were completed or canceled
41696	// on or before a specific date and time.
41697	//
41698	// EndTime is a required field
41699	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
41700
41701	// Specify this filter to limit results to tasks that were applied to a specific
41702	// audit finding.
41703	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
41704
41705	// The maximum number of results to return at one time. The default is 25.
41706	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
41707
41708	// The token for the next set of results.
41709	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
41710
41711	// Specify this filter to limit results to tasks that began on or after a specific
41712	// date and time.
41713	//
41714	// StartTime is a required field
41715	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
41716
41717	// Specify this filter to limit results to tasks that are in a specific state.
41718	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
41719}
41720
41721// String returns the string representation
41722func (s ListAuditMitigationActionsTasksInput) String() string {
41723	return awsutil.Prettify(s)
41724}
41725
41726// GoString returns the string representation
41727func (s ListAuditMitigationActionsTasksInput) GoString() string {
41728	return s.String()
41729}
41730
41731// Validate inspects the fields of the type to determine if they are valid.
41732func (s *ListAuditMitigationActionsTasksInput) Validate() error {
41733	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
41734	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
41735		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
41736	}
41737	if s.EndTime == nil {
41738		invalidParams.Add(request.NewErrParamRequired("EndTime"))
41739	}
41740	if s.FindingId != nil && len(*s.FindingId) < 1 {
41741		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
41742	}
41743	if s.MaxResults != nil && *s.MaxResults < 1 {
41744		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41745	}
41746	if s.StartTime == nil {
41747		invalidParams.Add(request.NewErrParamRequired("StartTime"))
41748	}
41749
41750	if invalidParams.Len() > 0 {
41751		return invalidParams
41752	}
41753	return nil
41754}
41755
41756// SetAuditTaskId sets the AuditTaskId field's value.
41757func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
41758	s.AuditTaskId = &v
41759	return s
41760}
41761
41762// SetEndTime sets the EndTime field's value.
41763func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
41764	s.EndTime = &v
41765	return s
41766}
41767
41768// SetFindingId sets the FindingId field's value.
41769func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
41770	s.FindingId = &v
41771	return s
41772}
41773
41774// SetMaxResults sets the MaxResults field's value.
41775func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
41776	s.MaxResults = &v
41777	return s
41778}
41779
41780// SetNextToken sets the NextToken field's value.
41781func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
41782	s.NextToken = &v
41783	return s
41784}
41785
41786// SetStartTime sets the StartTime field's value.
41787func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
41788	s.StartTime = &v
41789	return s
41790}
41791
41792// SetTaskStatus sets the TaskStatus field's value.
41793func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
41794	s.TaskStatus = &v
41795	return s
41796}
41797
41798type ListAuditMitigationActionsTasksOutput struct {
41799	_ struct{} `type:"structure"`
41800
41801	// The token for the next set of results.
41802	NextToken *string `locationName:"nextToken" type:"string"`
41803
41804	// The collection of audit mitigation tasks that matched the filter criteria.
41805	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
41806}
41807
41808// String returns the string representation
41809func (s ListAuditMitigationActionsTasksOutput) String() string {
41810	return awsutil.Prettify(s)
41811}
41812
41813// GoString returns the string representation
41814func (s ListAuditMitigationActionsTasksOutput) GoString() string {
41815	return s.String()
41816}
41817
41818// SetNextToken sets the NextToken field's value.
41819func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
41820	s.NextToken = &v
41821	return s
41822}
41823
41824// SetTasks sets the Tasks field's value.
41825func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
41826	s.Tasks = v
41827	return s
41828}
41829
41830type ListAuditSuppressionsInput struct {
41831	_ struct{} `type:"structure"`
41832
41833	// Determines whether suppressions are listed in ascending order by expiration
41834	// date or not. If parameter isn't provided, ascendingOrder=true.
41835	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
41836
41837	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
41838	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
41839	// to select which checks are enabled.)
41840	CheckName *string `locationName:"checkName" type:"string"`
41841
41842	// The maximum number of results to return at one time. The default is 25.
41843	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
41844
41845	// The token for the next set of results.
41846	NextToken *string `locationName:"nextToken" type:"string"`
41847
41848	// Information that identifies the noncompliant resource.
41849	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
41850}
41851
41852// String returns the string representation
41853func (s ListAuditSuppressionsInput) String() string {
41854	return awsutil.Prettify(s)
41855}
41856
41857// GoString returns the string representation
41858func (s ListAuditSuppressionsInput) GoString() string {
41859	return s.String()
41860}
41861
41862// Validate inspects the fields of the type to determine if they are valid.
41863func (s *ListAuditSuppressionsInput) Validate() error {
41864	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
41865	if s.MaxResults != nil && *s.MaxResults < 1 {
41866		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41867	}
41868	if s.ResourceIdentifier != nil {
41869		if err := s.ResourceIdentifier.Validate(); err != nil {
41870			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
41871		}
41872	}
41873
41874	if invalidParams.Len() > 0 {
41875		return invalidParams
41876	}
41877	return nil
41878}
41879
41880// SetAscendingOrder sets the AscendingOrder field's value.
41881func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
41882	s.AscendingOrder = &v
41883	return s
41884}
41885
41886// SetCheckName sets the CheckName field's value.
41887func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
41888	s.CheckName = &v
41889	return s
41890}
41891
41892// SetMaxResults sets the MaxResults field's value.
41893func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
41894	s.MaxResults = &v
41895	return s
41896}
41897
41898// SetNextToken sets the NextToken field's value.
41899func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
41900	s.NextToken = &v
41901	return s
41902}
41903
41904// SetResourceIdentifier sets the ResourceIdentifier field's value.
41905func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
41906	s.ResourceIdentifier = v
41907	return s
41908}
41909
41910type ListAuditSuppressionsOutput struct {
41911	_ struct{} `type:"structure"`
41912
41913	// A token that can be used to retrieve the next set of results, or null if
41914	// there are no additional results.
41915	NextToken *string `locationName:"nextToken" type:"string"`
41916
41917	// List of audit suppressions.
41918	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
41919}
41920
41921// String returns the string representation
41922func (s ListAuditSuppressionsOutput) String() string {
41923	return awsutil.Prettify(s)
41924}
41925
41926// GoString returns the string representation
41927func (s ListAuditSuppressionsOutput) GoString() string {
41928	return s.String()
41929}
41930
41931// SetNextToken sets the NextToken field's value.
41932func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
41933	s.NextToken = &v
41934	return s
41935}
41936
41937// SetSuppressions sets the Suppressions field's value.
41938func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
41939	s.Suppressions = v
41940	return s
41941}
41942
41943type ListAuditTasksInput struct {
41944	_ struct{} `type:"structure"`
41945
41946	// The end of the time period.
41947	//
41948	// EndTime is a required field
41949	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
41950
41951	// The maximum number of results to return at one time. The default is 25.
41952	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
41953
41954	// The token for the next set of results.
41955	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
41956
41957	// The beginning of the time period. Audit information is retained for a limited
41958	// time (90 days). Requesting a start time prior to what is retained results
41959	// in an "InvalidRequestException".
41960	//
41961	// StartTime is a required field
41962	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
41963
41964	// A filter to limit the output to audits with the specified completion status:
41965	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
41966	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
41967
41968	// A filter to limit the output to the specified type of audit: can be one of
41969	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
41970	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
41971}
41972
41973// String returns the string representation
41974func (s ListAuditTasksInput) String() string {
41975	return awsutil.Prettify(s)
41976}
41977
41978// GoString returns the string representation
41979func (s ListAuditTasksInput) GoString() string {
41980	return s.String()
41981}
41982
41983// Validate inspects the fields of the type to determine if they are valid.
41984func (s *ListAuditTasksInput) Validate() error {
41985	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
41986	if s.EndTime == nil {
41987		invalidParams.Add(request.NewErrParamRequired("EndTime"))
41988	}
41989	if s.MaxResults != nil && *s.MaxResults < 1 {
41990		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
41991	}
41992	if s.StartTime == nil {
41993		invalidParams.Add(request.NewErrParamRequired("StartTime"))
41994	}
41995
41996	if invalidParams.Len() > 0 {
41997		return invalidParams
41998	}
41999	return nil
42000}
42001
42002// SetEndTime sets the EndTime field's value.
42003func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
42004	s.EndTime = &v
42005	return s
42006}
42007
42008// SetMaxResults sets the MaxResults field's value.
42009func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
42010	s.MaxResults = &v
42011	return s
42012}
42013
42014// SetNextToken sets the NextToken field's value.
42015func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
42016	s.NextToken = &v
42017	return s
42018}
42019
42020// SetStartTime sets the StartTime field's value.
42021func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
42022	s.StartTime = &v
42023	return s
42024}
42025
42026// SetTaskStatus sets the TaskStatus field's value.
42027func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
42028	s.TaskStatus = &v
42029	return s
42030}
42031
42032// SetTaskType sets the TaskType field's value.
42033func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
42034	s.TaskType = &v
42035	return s
42036}
42037
42038type ListAuditTasksOutput struct {
42039	_ struct{} `type:"structure"`
42040
42041	// A token that can be used to retrieve the next set of results, or null if
42042	// there are no additional results.
42043	NextToken *string `locationName:"nextToken" type:"string"`
42044
42045	// The audits that were performed during the specified time period.
42046	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
42047}
42048
42049// String returns the string representation
42050func (s ListAuditTasksOutput) String() string {
42051	return awsutil.Prettify(s)
42052}
42053
42054// GoString returns the string representation
42055func (s ListAuditTasksOutput) GoString() string {
42056	return s.String()
42057}
42058
42059// SetNextToken sets the NextToken field's value.
42060func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
42061	s.NextToken = &v
42062	return s
42063}
42064
42065// SetTasks sets the Tasks field's value.
42066func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
42067	s.Tasks = v
42068	return s
42069}
42070
42071type ListAuthorizersInput struct {
42072	_ struct{} `type:"structure"`
42073
42074	// Return the list of authorizers in ascending alphabetical order.
42075	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42076
42077	// A marker used to get the next set of results.
42078	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42079
42080	// The maximum number of results to return at one time.
42081	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42082
42083	// The status of the list authorizers request.
42084	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
42085}
42086
42087// String returns the string representation
42088func (s ListAuthorizersInput) String() string {
42089	return awsutil.Prettify(s)
42090}
42091
42092// GoString returns the string representation
42093func (s ListAuthorizersInput) GoString() string {
42094	return s.String()
42095}
42096
42097// Validate inspects the fields of the type to determine if they are valid.
42098func (s *ListAuthorizersInput) Validate() error {
42099	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
42100	if s.PageSize != nil && *s.PageSize < 1 {
42101		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42102	}
42103
42104	if invalidParams.Len() > 0 {
42105		return invalidParams
42106	}
42107	return nil
42108}
42109
42110// SetAscendingOrder sets the AscendingOrder field's value.
42111func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
42112	s.AscendingOrder = &v
42113	return s
42114}
42115
42116// SetMarker sets the Marker field's value.
42117func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
42118	s.Marker = &v
42119	return s
42120}
42121
42122// SetPageSize sets the PageSize field's value.
42123func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
42124	s.PageSize = &v
42125	return s
42126}
42127
42128// SetStatus sets the Status field's value.
42129func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
42130	s.Status = &v
42131	return s
42132}
42133
42134type ListAuthorizersOutput struct {
42135	_ struct{} `type:"structure"`
42136
42137	// The authorizers.
42138	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
42139
42140	// A marker used to get the next set of results.
42141	NextMarker *string `locationName:"nextMarker" type:"string"`
42142}
42143
42144// String returns the string representation
42145func (s ListAuthorizersOutput) String() string {
42146	return awsutil.Prettify(s)
42147}
42148
42149// GoString returns the string representation
42150func (s ListAuthorizersOutput) GoString() string {
42151	return s.String()
42152}
42153
42154// SetAuthorizers sets the Authorizers field's value.
42155func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
42156	s.Authorizers = v
42157	return s
42158}
42159
42160// SetNextMarker sets the NextMarker field's value.
42161func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
42162	s.NextMarker = &v
42163	return s
42164}
42165
42166type ListBillingGroupsInput struct {
42167	_ struct{} `type:"structure"`
42168
42169	// The maximum number of results to return per request.
42170	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42171
42172	// Limit the results to billing groups whose names have the given prefix.
42173	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
42174
42175	// To retrieve the next set of results, the nextToken value from a previous
42176	// response; otherwise null to receive the first set of results.
42177	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42178}
42179
42180// String returns the string representation
42181func (s ListBillingGroupsInput) String() string {
42182	return awsutil.Prettify(s)
42183}
42184
42185// GoString returns the string representation
42186func (s ListBillingGroupsInput) GoString() string {
42187	return s.String()
42188}
42189
42190// Validate inspects the fields of the type to determine if they are valid.
42191func (s *ListBillingGroupsInput) Validate() error {
42192	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
42193	if s.MaxResults != nil && *s.MaxResults < 1 {
42194		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42195	}
42196	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
42197		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
42198	}
42199
42200	if invalidParams.Len() > 0 {
42201		return invalidParams
42202	}
42203	return nil
42204}
42205
42206// SetMaxResults sets the MaxResults field's value.
42207func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
42208	s.MaxResults = &v
42209	return s
42210}
42211
42212// SetNamePrefixFilter sets the NamePrefixFilter field's value.
42213func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
42214	s.NamePrefixFilter = &v
42215	return s
42216}
42217
42218// SetNextToken sets the NextToken field's value.
42219func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
42220	s.NextToken = &v
42221	return s
42222}
42223
42224type ListBillingGroupsOutput struct {
42225	_ struct{} `type:"structure"`
42226
42227	// The list of billing groups.
42228	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
42229
42230	// The token to use to get the next set of results, or null if there are no
42231	// additional results.
42232	NextToken *string `locationName:"nextToken" type:"string"`
42233}
42234
42235// String returns the string representation
42236func (s ListBillingGroupsOutput) String() string {
42237	return awsutil.Prettify(s)
42238}
42239
42240// GoString returns the string representation
42241func (s ListBillingGroupsOutput) GoString() string {
42242	return s.String()
42243}
42244
42245// SetBillingGroups sets the BillingGroups field's value.
42246func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
42247	s.BillingGroups = v
42248	return s
42249}
42250
42251// SetNextToken sets the NextToken field's value.
42252func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
42253	s.NextToken = &v
42254	return s
42255}
42256
42257// Input for the ListCACertificates operation.
42258type ListCACertificatesInput struct {
42259	_ struct{} `type:"structure"`
42260
42261	// Determines the order of the results.
42262	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42263
42264	// The marker for the next set of results.
42265	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42266
42267	// The result page size.
42268	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42269}
42270
42271// String returns the string representation
42272func (s ListCACertificatesInput) String() string {
42273	return awsutil.Prettify(s)
42274}
42275
42276// GoString returns the string representation
42277func (s ListCACertificatesInput) GoString() string {
42278	return s.String()
42279}
42280
42281// Validate inspects the fields of the type to determine if they are valid.
42282func (s *ListCACertificatesInput) Validate() error {
42283	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
42284	if s.PageSize != nil && *s.PageSize < 1 {
42285		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42286	}
42287
42288	if invalidParams.Len() > 0 {
42289		return invalidParams
42290	}
42291	return nil
42292}
42293
42294// SetAscendingOrder sets the AscendingOrder field's value.
42295func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
42296	s.AscendingOrder = &v
42297	return s
42298}
42299
42300// SetMarker sets the Marker field's value.
42301func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
42302	s.Marker = &v
42303	return s
42304}
42305
42306// SetPageSize sets the PageSize field's value.
42307func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
42308	s.PageSize = &v
42309	return s
42310}
42311
42312// The output from the ListCACertificates operation.
42313type ListCACertificatesOutput struct {
42314	_ struct{} `type:"structure"`
42315
42316	// The CA certificates registered in your AWS account.
42317	Certificates []*CACertificate `locationName:"certificates" type:"list"`
42318
42319	// The current position within the list of CA certificates.
42320	NextMarker *string `locationName:"nextMarker" type:"string"`
42321}
42322
42323// String returns the string representation
42324func (s ListCACertificatesOutput) String() string {
42325	return awsutil.Prettify(s)
42326}
42327
42328// GoString returns the string representation
42329func (s ListCACertificatesOutput) GoString() string {
42330	return s.String()
42331}
42332
42333// SetCertificates sets the Certificates field's value.
42334func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
42335	s.Certificates = v
42336	return s
42337}
42338
42339// SetNextMarker sets the NextMarker field's value.
42340func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
42341	s.NextMarker = &v
42342	return s
42343}
42344
42345// The input to the ListCertificatesByCA operation.
42346type ListCertificatesByCAInput struct {
42347	_ struct{} `type:"structure"`
42348
42349	// Specifies the order for results. If True, the results are returned in ascending
42350	// order, based on the creation date.
42351	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42352
42353	// The ID of the CA certificate. This operation will list all registered device
42354	// certificate that were signed by this CA certificate.
42355	//
42356	// CaCertificateId is a required field
42357	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
42358
42359	// The marker for the next set of results.
42360	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42361
42362	// The result page size.
42363	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42364}
42365
42366// String returns the string representation
42367func (s ListCertificatesByCAInput) String() string {
42368	return awsutil.Prettify(s)
42369}
42370
42371// GoString returns the string representation
42372func (s ListCertificatesByCAInput) GoString() string {
42373	return s.String()
42374}
42375
42376// Validate inspects the fields of the type to determine if they are valid.
42377func (s *ListCertificatesByCAInput) Validate() error {
42378	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
42379	if s.CaCertificateId == nil {
42380		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
42381	}
42382	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
42383		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
42384	}
42385	if s.PageSize != nil && *s.PageSize < 1 {
42386		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42387	}
42388
42389	if invalidParams.Len() > 0 {
42390		return invalidParams
42391	}
42392	return nil
42393}
42394
42395// SetAscendingOrder sets the AscendingOrder field's value.
42396func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
42397	s.AscendingOrder = &v
42398	return s
42399}
42400
42401// SetCaCertificateId sets the CaCertificateId field's value.
42402func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
42403	s.CaCertificateId = &v
42404	return s
42405}
42406
42407// SetMarker sets the Marker field's value.
42408func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
42409	s.Marker = &v
42410	return s
42411}
42412
42413// SetPageSize sets the PageSize field's value.
42414func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
42415	s.PageSize = &v
42416	return s
42417}
42418
42419// The output of the ListCertificatesByCA operation.
42420type ListCertificatesByCAOutput struct {
42421	_ struct{} `type:"structure"`
42422
42423	// The device certificates signed by the specified CA certificate.
42424	Certificates []*Certificate `locationName:"certificates" type:"list"`
42425
42426	// The marker for the next set of results, or null if there are no additional
42427	// results.
42428	NextMarker *string `locationName:"nextMarker" type:"string"`
42429}
42430
42431// String returns the string representation
42432func (s ListCertificatesByCAOutput) String() string {
42433	return awsutil.Prettify(s)
42434}
42435
42436// GoString returns the string representation
42437func (s ListCertificatesByCAOutput) GoString() string {
42438	return s.String()
42439}
42440
42441// SetCertificates sets the Certificates field's value.
42442func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
42443	s.Certificates = v
42444	return s
42445}
42446
42447// SetNextMarker sets the NextMarker field's value.
42448func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
42449	s.NextMarker = &v
42450	return s
42451}
42452
42453// The input for the ListCertificates operation.
42454type ListCertificatesInput struct {
42455	_ struct{} `type:"structure"`
42456
42457	// Specifies the order for results. If True, the results are returned in ascending
42458	// order, based on the creation date.
42459	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42460
42461	// The marker for the next set of results.
42462	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42463
42464	// The result page size.
42465	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42466}
42467
42468// String returns the string representation
42469func (s ListCertificatesInput) String() string {
42470	return awsutil.Prettify(s)
42471}
42472
42473// GoString returns the string representation
42474func (s ListCertificatesInput) GoString() string {
42475	return s.String()
42476}
42477
42478// Validate inspects the fields of the type to determine if they are valid.
42479func (s *ListCertificatesInput) Validate() error {
42480	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
42481	if s.PageSize != nil && *s.PageSize < 1 {
42482		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42483	}
42484
42485	if invalidParams.Len() > 0 {
42486		return invalidParams
42487	}
42488	return nil
42489}
42490
42491// SetAscendingOrder sets the AscendingOrder field's value.
42492func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
42493	s.AscendingOrder = &v
42494	return s
42495}
42496
42497// SetMarker sets the Marker field's value.
42498func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
42499	s.Marker = &v
42500	return s
42501}
42502
42503// SetPageSize sets the PageSize field's value.
42504func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
42505	s.PageSize = &v
42506	return s
42507}
42508
42509// The output of the ListCertificates operation.
42510type ListCertificatesOutput struct {
42511	_ struct{} `type:"structure"`
42512
42513	// The descriptions of the certificates.
42514	Certificates []*Certificate `locationName:"certificates" type:"list"`
42515
42516	// The marker for the next set of results, or null if there are no additional
42517	// results.
42518	NextMarker *string `locationName:"nextMarker" type:"string"`
42519}
42520
42521// String returns the string representation
42522func (s ListCertificatesOutput) String() string {
42523	return awsutil.Prettify(s)
42524}
42525
42526// GoString returns the string representation
42527func (s ListCertificatesOutput) GoString() string {
42528	return s.String()
42529}
42530
42531// SetCertificates sets the Certificates field's value.
42532func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
42533	s.Certificates = v
42534	return s
42535}
42536
42537// SetNextMarker sets the NextMarker field's value.
42538func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
42539	s.NextMarker = &v
42540	return s
42541}
42542
42543type ListCustomMetricsInput struct {
42544	_ struct{} `type:"structure"`
42545
42546	// The maximum number of results to return at one time. The default is 25.
42547	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42548
42549	// The token for the next set of results.
42550	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42551}
42552
42553// String returns the string representation
42554func (s ListCustomMetricsInput) String() string {
42555	return awsutil.Prettify(s)
42556}
42557
42558// GoString returns the string representation
42559func (s ListCustomMetricsInput) GoString() string {
42560	return s.String()
42561}
42562
42563// Validate inspects the fields of the type to determine if they are valid.
42564func (s *ListCustomMetricsInput) Validate() error {
42565	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
42566	if s.MaxResults != nil && *s.MaxResults < 1 {
42567		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42568	}
42569
42570	if invalidParams.Len() > 0 {
42571		return invalidParams
42572	}
42573	return nil
42574}
42575
42576// SetMaxResults sets the MaxResults field's value.
42577func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
42578	s.MaxResults = &v
42579	return s
42580}
42581
42582// SetNextToken sets the NextToken field's value.
42583func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
42584	s.NextToken = &v
42585	return s
42586}
42587
42588type ListCustomMetricsOutput struct {
42589	_ struct{} `type:"structure"`
42590
42591	// The name of the custom metric.
42592	MetricNames []*string `locationName:"metricNames" type:"list"`
42593
42594	// A token that can be used to retrieve the next set of results, or null if
42595	// there are no additional results.
42596	NextToken *string `locationName:"nextToken" type:"string"`
42597}
42598
42599// String returns the string representation
42600func (s ListCustomMetricsOutput) String() string {
42601	return awsutil.Prettify(s)
42602}
42603
42604// GoString returns the string representation
42605func (s ListCustomMetricsOutput) GoString() string {
42606	return s.String()
42607}
42608
42609// SetMetricNames sets the MetricNames field's value.
42610func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
42611	s.MetricNames = v
42612	return s
42613}
42614
42615// SetNextToken sets the NextToken field's value.
42616func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
42617	s.NextToken = &v
42618	return s
42619}
42620
42621type ListDetectMitigationActionsExecutionsInput struct {
42622	_ struct{} `type:"structure"`
42623
42624	// The end of the time period for which ML Detect mitigation actions executions
42625	// are returned.
42626	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
42627
42628	// The maximum number of results to return at one time. The default is 25.
42629	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42630
42631	// The token for the next set of results.
42632	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42633
42634	// A filter to limit results to those found after the specified time. You must
42635	// specify either the startTime and endTime or the taskId, but not both.
42636	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
42637
42638	// The unique identifier of the task.
42639	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
42640
42641	// The name of the thing whose mitigation actions are listed.
42642	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
42643
42644	// The unique identifier of the violation.
42645	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
42646}
42647
42648// String returns the string representation
42649func (s ListDetectMitigationActionsExecutionsInput) String() string {
42650	return awsutil.Prettify(s)
42651}
42652
42653// GoString returns the string representation
42654func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
42655	return s.String()
42656}
42657
42658// Validate inspects the fields of the type to determine if they are valid.
42659func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
42660	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
42661	if s.MaxResults != nil && *s.MaxResults < 1 {
42662		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42663	}
42664	if s.TaskId != nil && len(*s.TaskId) < 1 {
42665		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
42666	}
42667	if s.ThingName != nil && len(*s.ThingName) < 1 {
42668		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
42669	}
42670	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
42671		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
42672	}
42673
42674	if invalidParams.Len() > 0 {
42675		return invalidParams
42676	}
42677	return nil
42678}
42679
42680// SetEndTime sets the EndTime field's value.
42681func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
42682	s.EndTime = &v
42683	return s
42684}
42685
42686// SetMaxResults sets the MaxResults field's value.
42687func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
42688	s.MaxResults = &v
42689	return s
42690}
42691
42692// SetNextToken sets the NextToken field's value.
42693func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
42694	s.NextToken = &v
42695	return s
42696}
42697
42698// SetStartTime sets the StartTime field's value.
42699func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
42700	s.StartTime = &v
42701	return s
42702}
42703
42704// SetTaskId sets the TaskId field's value.
42705func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
42706	s.TaskId = &v
42707	return s
42708}
42709
42710// SetThingName sets the ThingName field's value.
42711func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
42712	s.ThingName = &v
42713	return s
42714}
42715
42716// SetViolationId sets the ViolationId field's value.
42717func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
42718	s.ViolationId = &v
42719	return s
42720}
42721
42722type ListDetectMitigationActionsExecutionsOutput struct {
42723	_ struct{} `type:"structure"`
42724
42725	// List of actions executions.
42726	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
42727
42728	// A token that can be used to retrieve the next set of results, or null if
42729	// there are no additional results.
42730	NextToken *string `locationName:"nextToken" type:"string"`
42731}
42732
42733// String returns the string representation
42734func (s ListDetectMitigationActionsExecutionsOutput) String() string {
42735	return awsutil.Prettify(s)
42736}
42737
42738// GoString returns the string representation
42739func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
42740	return s.String()
42741}
42742
42743// SetActionsExecutions sets the ActionsExecutions field's value.
42744func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
42745	s.ActionsExecutions = v
42746	return s
42747}
42748
42749// SetNextToken sets the NextToken field's value.
42750func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
42751	s.NextToken = &v
42752	return s
42753}
42754
42755type ListDetectMitigationActionsTasksInput struct {
42756	_ struct{} `type:"structure"`
42757
42758	// The end of the time period for which ML Detect mitigation actions tasks are
42759	// returned.
42760	//
42761	// EndTime is a required field
42762	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
42763
42764	// The maximum number of results to return at one time. The default is 25.
42765	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42766
42767	// The token for the next set of results.
42768	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42769
42770	// A filter to limit results to those found after the specified time. You must
42771	// specify either the startTime and endTime or the taskId, but not both.
42772	//
42773	// StartTime is a required field
42774	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
42775}
42776
42777// String returns the string representation
42778func (s ListDetectMitigationActionsTasksInput) String() string {
42779	return awsutil.Prettify(s)
42780}
42781
42782// GoString returns the string representation
42783func (s ListDetectMitigationActionsTasksInput) GoString() string {
42784	return s.String()
42785}
42786
42787// Validate inspects the fields of the type to determine if they are valid.
42788func (s *ListDetectMitigationActionsTasksInput) Validate() error {
42789	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
42790	if s.EndTime == nil {
42791		invalidParams.Add(request.NewErrParamRequired("EndTime"))
42792	}
42793	if s.MaxResults != nil && *s.MaxResults < 1 {
42794		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42795	}
42796	if s.StartTime == nil {
42797		invalidParams.Add(request.NewErrParamRequired("StartTime"))
42798	}
42799
42800	if invalidParams.Len() > 0 {
42801		return invalidParams
42802	}
42803	return nil
42804}
42805
42806// SetEndTime sets the EndTime field's value.
42807func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
42808	s.EndTime = &v
42809	return s
42810}
42811
42812// SetMaxResults sets the MaxResults field's value.
42813func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
42814	s.MaxResults = &v
42815	return s
42816}
42817
42818// SetNextToken sets the NextToken field's value.
42819func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
42820	s.NextToken = &v
42821	return s
42822}
42823
42824// SetStartTime sets the StartTime field's value.
42825func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
42826	s.StartTime = &v
42827	return s
42828}
42829
42830type ListDetectMitigationActionsTasksOutput struct {
42831	_ struct{} `type:"structure"`
42832
42833	// A token that can be used to retrieve the next set of results, or null if
42834	// there are no additional results.
42835	NextToken *string `locationName:"nextToken" type:"string"`
42836
42837	// The collection of ML Detect mitigation tasks that matched the filter criteria.
42838	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
42839}
42840
42841// String returns the string representation
42842func (s ListDetectMitigationActionsTasksOutput) String() string {
42843	return awsutil.Prettify(s)
42844}
42845
42846// GoString returns the string representation
42847func (s ListDetectMitigationActionsTasksOutput) GoString() string {
42848	return s.String()
42849}
42850
42851// SetNextToken sets the NextToken field's value.
42852func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
42853	s.NextToken = &v
42854	return s
42855}
42856
42857// SetTasks sets the Tasks field's value.
42858func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
42859	s.Tasks = v
42860	return s
42861}
42862
42863type ListDimensionsInput struct {
42864	_ struct{} `type:"structure"`
42865
42866	// The maximum number of results to retrieve at one time.
42867	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42868
42869	// The token for the next set of results.
42870	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42871}
42872
42873// String returns the string representation
42874func (s ListDimensionsInput) String() string {
42875	return awsutil.Prettify(s)
42876}
42877
42878// GoString returns the string representation
42879func (s ListDimensionsInput) GoString() string {
42880	return s.String()
42881}
42882
42883// Validate inspects the fields of the type to determine if they are valid.
42884func (s *ListDimensionsInput) Validate() error {
42885	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
42886	if s.MaxResults != nil && *s.MaxResults < 1 {
42887		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42888	}
42889
42890	if invalidParams.Len() > 0 {
42891		return invalidParams
42892	}
42893	return nil
42894}
42895
42896// SetMaxResults sets the MaxResults field's value.
42897func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
42898	s.MaxResults = &v
42899	return s
42900}
42901
42902// SetNextToken sets the NextToken field's value.
42903func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
42904	s.NextToken = &v
42905	return s
42906}
42907
42908type ListDimensionsOutput struct {
42909	_ struct{} `type:"structure"`
42910
42911	// A list of the names of the defined dimensions. Use DescribeDimension to get
42912	// details for a dimension.
42913	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
42914
42915	// A token that can be used to retrieve the next set of results, or null if
42916	// there are no additional results.
42917	NextToken *string `locationName:"nextToken" type:"string"`
42918}
42919
42920// String returns the string representation
42921func (s ListDimensionsOutput) String() string {
42922	return awsutil.Prettify(s)
42923}
42924
42925// GoString returns the string representation
42926func (s ListDimensionsOutput) GoString() string {
42927	return s.String()
42928}
42929
42930// SetDimensionNames sets the DimensionNames field's value.
42931func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
42932	s.DimensionNames = v
42933	return s
42934}
42935
42936// SetNextToken sets the NextToken field's value.
42937func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
42938	s.NextToken = &v
42939	return s
42940}
42941
42942type ListDomainConfigurationsInput struct {
42943	_ struct{} `type:"structure"`
42944
42945	// The marker for the next set of results.
42946	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42947
42948	// The result page size.
42949	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42950
42951	// The type of service delivered by the endpoint.
42952	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
42953}
42954
42955// String returns the string representation
42956func (s ListDomainConfigurationsInput) String() string {
42957	return awsutil.Prettify(s)
42958}
42959
42960// GoString returns the string representation
42961func (s ListDomainConfigurationsInput) GoString() string {
42962	return s.String()
42963}
42964
42965// Validate inspects the fields of the type to determine if they are valid.
42966func (s *ListDomainConfigurationsInput) Validate() error {
42967	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
42968	if s.PageSize != nil && *s.PageSize < 1 {
42969		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42970	}
42971
42972	if invalidParams.Len() > 0 {
42973		return invalidParams
42974	}
42975	return nil
42976}
42977
42978// SetMarker sets the Marker field's value.
42979func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
42980	s.Marker = &v
42981	return s
42982}
42983
42984// SetPageSize sets the PageSize field's value.
42985func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
42986	s.PageSize = &v
42987	return s
42988}
42989
42990// SetServiceType sets the ServiceType field's value.
42991func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
42992	s.ServiceType = &v
42993	return s
42994}
42995
42996type ListDomainConfigurationsOutput struct {
42997	_ struct{} `type:"structure"`
42998
42999	// A list of objects that contain summary information about the user's domain
43000	// configurations.
43001	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
43002
43003	// The marker for the next set of results.
43004	NextMarker *string `locationName:"nextMarker" type:"string"`
43005}
43006
43007// String returns the string representation
43008func (s ListDomainConfigurationsOutput) String() string {
43009	return awsutil.Prettify(s)
43010}
43011
43012// GoString returns the string representation
43013func (s ListDomainConfigurationsOutput) GoString() string {
43014	return s.String()
43015}
43016
43017// SetDomainConfigurations sets the DomainConfigurations field's value.
43018func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
43019	s.DomainConfigurations = v
43020	return s
43021}
43022
43023// SetNextMarker sets the NextMarker field's value.
43024func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
43025	s.NextMarker = &v
43026	return s
43027}
43028
43029type ListIndicesInput struct {
43030	_ struct{} `type:"structure"`
43031
43032	// The maximum number of results to return at one time.
43033	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43034
43035	// The token used to get the next set of results, or null if there are no additional
43036	// results.
43037	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43038}
43039
43040// String returns the string representation
43041func (s ListIndicesInput) String() string {
43042	return awsutil.Prettify(s)
43043}
43044
43045// GoString returns the string representation
43046func (s ListIndicesInput) GoString() string {
43047	return s.String()
43048}
43049
43050// Validate inspects the fields of the type to determine if they are valid.
43051func (s *ListIndicesInput) Validate() error {
43052	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
43053	if s.MaxResults != nil && *s.MaxResults < 1 {
43054		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43055	}
43056
43057	if invalidParams.Len() > 0 {
43058		return invalidParams
43059	}
43060	return nil
43061}
43062
43063// SetMaxResults sets the MaxResults field's value.
43064func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
43065	s.MaxResults = &v
43066	return s
43067}
43068
43069// SetNextToken sets the NextToken field's value.
43070func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
43071	s.NextToken = &v
43072	return s
43073}
43074
43075type ListIndicesOutput struct {
43076	_ struct{} `type:"structure"`
43077
43078	// The index names.
43079	IndexNames []*string `locationName:"indexNames" type:"list"`
43080
43081	// The token used to get the next set of results, or null if there are no additional
43082	// results.
43083	NextToken *string `locationName:"nextToken" type:"string"`
43084}
43085
43086// String returns the string representation
43087func (s ListIndicesOutput) String() string {
43088	return awsutil.Prettify(s)
43089}
43090
43091// GoString returns the string representation
43092func (s ListIndicesOutput) GoString() string {
43093	return s.String()
43094}
43095
43096// SetIndexNames sets the IndexNames field's value.
43097func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
43098	s.IndexNames = v
43099	return s
43100}
43101
43102// SetNextToken sets the NextToken field's value.
43103func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
43104	s.NextToken = &v
43105	return s
43106}
43107
43108type ListJobExecutionsForJobInput struct {
43109	_ struct{} `type:"structure"`
43110
43111	// The unique identifier you assigned to this job when it was created.
43112	//
43113	// JobId is a required field
43114	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
43115
43116	// The maximum number of results to be returned per request.
43117	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43118
43119	// The token to retrieve the next set of results.
43120	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43121
43122	// The status of the job.
43123	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
43124}
43125
43126// String returns the string representation
43127func (s ListJobExecutionsForJobInput) String() string {
43128	return awsutil.Prettify(s)
43129}
43130
43131// GoString returns the string representation
43132func (s ListJobExecutionsForJobInput) GoString() string {
43133	return s.String()
43134}
43135
43136// Validate inspects the fields of the type to determine if they are valid.
43137func (s *ListJobExecutionsForJobInput) Validate() error {
43138	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
43139	if s.JobId == nil {
43140		invalidParams.Add(request.NewErrParamRequired("JobId"))
43141	}
43142	if s.JobId != nil && len(*s.JobId) < 1 {
43143		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
43144	}
43145	if s.MaxResults != nil && *s.MaxResults < 1 {
43146		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43147	}
43148
43149	if invalidParams.Len() > 0 {
43150		return invalidParams
43151	}
43152	return nil
43153}
43154
43155// SetJobId sets the JobId field's value.
43156func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
43157	s.JobId = &v
43158	return s
43159}
43160
43161// SetMaxResults sets the MaxResults field's value.
43162func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
43163	s.MaxResults = &v
43164	return s
43165}
43166
43167// SetNextToken sets the NextToken field's value.
43168func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
43169	s.NextToken = &v
43170	return s
43171}
43172
43173// SetStatus sets the Status field's value.
43174func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
43175	s.Status = &v
43176	return s
43177}
43178
43179type ListJobExecutionsForJobOutput struct {
43180	_ struct{} `type:"structure"`
43181
43182	// A list of job execution summaries.
43183	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
43184
43185	// The token for the next set of results, or null if there are no additional
43186	// results.
43187	NextToken *string `locationName:"nextToken" type:"string"`
43188}
43189
43190// String returns the string representation
43191func (s ListJobExecutionsForJobOutput) String() string {
43192	return awsutil.Prettify(s)
43193}
43194
43195// GoString returns the string representation
43196func (s ListJobExecutionsForJobOutput) GoString() string {
43197	return s.String()
43198}
43199
43200// SetExecutionSummaries sets the ExecutionSummaries field's value.
43201func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
43202	s.ExecutionSummaries = v
43203	return s
43204}
43205
43206// SetNextToken sets the NextToken field's value.
43207func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
43208	s.NextToken = &v
43209	return s
43210}
43211
43212type ListJobExecutionsForThingInput struct {
43213	_ struct{} `type:"structure"`
43214
43215	// The maximum number of results to be returned per request.
43216	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43217
43218	// The namespace used to indicate that a job is a customer-managed job.
43219	//
43220	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
43221	// to MQTT topics that contain the value in the following format.
43222	//
43223	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
43224	//
43225	// The namespaceId feature is in public preview.
43226	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
43227
43228	// The token to retrieve the next set of results.
43229	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43230
43231	// An optional filter that lets you search for jobs that have the specified
43232	// status.
43233	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
43234
43235	// The thing name.
43236	//
43237	// ThingName is a required field
43238	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
43239}
43240
43241// String returns the string representation
43242func (s ListJobExecutionsForThingInput) String() string {
43243	return awsutil.Prettify(s)
43244}
43245
43246// GoString returns the string representation
43247func (s ListJobExecutionsForThingInput) GoString() string {
43248	return s.String()
43249}
43250
43251// Validate inspects the fields of the type to determine if they are valid.
43252func (s *ListJobExecutionsForThingInput) Validate() error {
43253	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
43254	if s.MaxResults != nil && *s.MaxResults < 1 {
43255		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43256	}
43257	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
43258		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
43259	}
43260	if s.ThingName == nil {
43261		invalidParams.Add(request.NewErrParamRequired("ThingName"))
43262	}
43263	if s.ThingName != nil && len(*s.ThingName) < 1 {
43264		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
43265	}
43266
43267	if invalidParams.Len() > 0 {
43268		return invalidParams
43269	}
43270	return nil
43271}
43272
43273// SetMaxResults sets the MaxResults field's value.
43274func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
43275	s.MaxResults = &v
43276	return s
43277}
43278
43279// SetNamespaceId sets the NamespaceId field's value.
43280func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
43281	s.NamespaceId = &v
43282	return s
43283}
43284
43285// SetNextToken sets the NextToken field's value.
43286func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
43287	s.NextToken = &v
43288	return s
43289}
43290
43291// SetStatus sets the Status field's value.
43292func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
43293	s.Status = &v
43294	return s
43295}
43296
43297// SetThingName sets the ThingName field's value.
43298func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
43299	s.ThingName = &v
43300	return s
43301}
43302
43303type ListJobExecutionsForThingOutput struct {
43304	_ struct{} `type:"structure"`
43305
43306	// A list of job execution summaries.
43307	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
43308
43309	// The token for the next set of results, or null if there are no additional
43310	// results.
43311	NextToken *string `locationName:"nextToken" type:"string"`
43312}
43313
43314// String returns the string representation
43315func (s ListJobExecutionsForThingOutput) String() string {
43316	return awsutil.Prettify(s)
43317}
43318
43319// GoString returns the string representation
43320func (s ListJobExecutionsForThingOutput) GoString() string {
43321	return s.String()
43322}
43323
43324// SetExecutionSummaries sets the ExecutionSummaries field's value.
43325func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
43326	s.ExecutionSummaries = v
43327	return s
43328}
43329
43330// SetNextToken sets the NextToken field's value.
43331func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
43332	s.NextToken = &v
43333	return s
43334}
43335
43336type ListJobsInput struct {
43337	_ struct{} `type:"structure"`
43338
43339	// The maximum number of results to return per request.
43340	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43341
43342	// The namespace used to indicate that a job is a customer-managed job.
43343	//
43344	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
43345	// to MQTT topics that contain the value in the following format.
43346	//
43347	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
43348	//
43349	// The namespaceId feature is in public preview.
43350	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
43351
43352	// The token to retrieve the next set of results.
43353	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43354
43355	// An optional filter that lets you search for jobs that have the specified
43356	// status.
43357	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
43358
43359	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
43360	// after all those things specified as targets have completed the job (SNAPSHOT).
43361	// If continuous, the job may also be run on a thing when a change is detected
43362	// in a target. For example, a job will run on a thing when the thing is added
43363	// to a target group, even after the job was completed by all things originally
43364	// in the group.
43365	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
43366
43367	// A filter that limits the returned jobs to those for the specified group.
43368	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
43369
43370	// A filter that limits the returned jobs to those for the specified group.
43371	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
43372}
43373
43374// String returns the string representation
43375func (s ListJobsInput) String() string {
43376	return awsutil.Prettify(s)
43377}
43378
43379// GoString returns the string representation
43380func (s ListJobsInput) GoString() string {
43381	return s.String()
43382}
43383
43384// Validate inspects the fields of the type to determine if they are valid.
43385func (s *ListJobsInput) Validate() error {
43386	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
43387	if s.MaxResults != nil && *s.MaxResults < 1 {
43388		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43389	}
43390	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
43391		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
43392	}
43393	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
43394		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
43395	}
43396	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
43397		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
43398	}
43399
43400	if invalidParams.Len() > 0 {
43401		return invalidParams
43402	}
43403	return nil
43404}
43405
43406// SetMaxResults sets the MaxResults field's value.
43407func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
43408	s.MaxResults = &v
43409	return s
43410}
43411
43412// SetNamespaceId sets the NamespaceId field's value.
43413func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
43414	s.NamespaceId = &v
43415	return s
43416}
43417
43418// SetNextToken sets the NextToken field's value.
43419func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
43420	s.NextToken = &v
43421	return s
43422}
43423
43424// SetStatus sets the Status field's value.
43425func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
43426	s.Status = &v
43427	return s
43428}
43429
43430// SetTargetSelection sets the TargetSelection field's value.
43431func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
43432	s.TargetSelection = &v
43433	return s
43434}
43435
43436// SetThingGroupId sets the ThingGroupId field's value.
43437func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
43438	s.ThingGroupId = &v
43439	return s
43440}
43441
43442// SetThingGroupName sets the ThingGroupName field's value.
43443func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
43444	s.ThingGroupName = &v
43445	return s
43446}
43447
43448type ListJobsOutput struct {
43449	_ struct{} `type:"structure"`
43450
43451	// A list of jobs.
43452	Jobs []*JobSummary `locationName:"jobs" type:"list"`
43453
43454	// The token for the next set of results, or null if there are no additional
43455	// results.
43456	NextToken *string `locationName:"nextToken" type:"string"`
43457}
43458
43459// String returns the string representation
43460func (s ListJobsOutput) String() string {
43461	return awsutil.Prettify(s)
43462}
43463
43464// GoString returns the string representation
43465func (s ListJobsOutput) GoString() string {
43466	return s.String()
43467}
43468
43469// SetJobs sets the Jobs field's value.
43470func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
43471	s.Jobs = v
43472	return s
43473}
43474
43475// SetNextToken sets the NextToken field's value.
43476func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
43477	s.NextToken = &v
43478	return s
43479}
43480
43481type ListMitigationActionsInput struct {
43482	_ struct{} `type:"structure"`
43483
43484	// Specify a value to limit the result to mitigation actions with a specific
43485	// action type.
43486	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
43487
43488	// The maximum number of results to return at one time. The default is 25.
43489	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43490
43491	// The token for the next set of results.
43492	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43493}
43494
43495// String returns the string representation
43496func (s ListMitigationActionsInput) String() string {
43497	return awsutil.Prettify(s)
43498}
43499
43500// GoString returns the string representation
43501func (s ListMitigationActionsInput) GoString() string {
43502	return s.String()
43503}
43504
43505// Validate inspects the fields of the type to determine if they are valid.
43506func (s *ListMitigationActionsInput) Validate() error {
43507	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
43508	if s.MaxResults != nil && *s.MaxResults < 1 {
43509		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43510	}
43511
43512	if invalidParams.Len() > 0 {
43513		return invalidParams
43514	}
43515	return nil
43516}
43517
43518// SetActionType sets the ActionType field's value.
43519func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
43520	s.ActionType = &v
43521	return s
43522}
43523
43524// SetMaxResults sets the MaxResults field's value.
43525func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
43526	s.MaxResults = &v
43527	return s
43528}
43529
43530// SetNextToken sets the NextToken field's value.
43531func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
43532	s.NextToken = &v
43533	return s
43534}
43535
43536type ListMitigationActionsOutput struct {
43537	_ struct{} `type:"structure"`
43538
43539	// A set of actions that matched the specified filter criteria.
43540	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
43541
43542	// The token for the next set of results.
43543	NextToken *string `locationName:"nextToken" type:"string"`
43544}
43545
43546// String returns the string representation
43547func (s ListMitigationActionsOutput) String() string {
43548	return awsutil.Prettify(s)
43549}
43550
43551// GoString returns the string representation
43552func (s ListMitigationActionsOutput) GoString() string {
43553	return s.String()
43554}
43555
43556// SetActionIdentifiers sets the ActionIdentifiers field's value.
43557func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
43558	s.ActionIdentifiers = v
43559	return s
43560}
43561
43562// SetNextToken sets the NextToken field's value.
43563func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
43564	s.NextToken = &v
43565	return s
43566}
43567
43568type ListOTAUpdatesInput struct {
43569	_ struct{} `type:"structure"`
43570
43571	// The maximum number of results to return at one time.
43572	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43573
43574	// A token used to retrieve the next set of results.
43575	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43576
43577	// The OTA update job status.
43578	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
43579}
43580
43581// String returns the string representation
43582func (s ListOTAUpdatesInput) String() string {
43583	return awsutil.Prettify(s)
43584}
43585
43586// GoString returns the string representation
43587func (s ListOTAUpdatesInput) GoString() string {
43588	return s.String()
43589}
43590
43591// Validate inspects the fields of the type to determine if they are valid.
43592func (s *ListOTAUpdatesInput) Validate() error {
43593	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
43594	if s.MaxResults != nil && *s.MaxResults < 1 {
43595		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43596	}
43597
43598	if invalidParams.Len() > 0 {
43599		return invalidParams
43600	}
43601	return nil
43602}
43603
43604// SetMaxResults sets the MaxResults field's value.
43605func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
43606	s.MaxResults = &v
43607	return s
43608}
43609
43610// SetNextToken sets the NextToken field's value.
43611func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
43612	s.NextToken = &v
43613	return s
43614}
43615
43616// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
43617func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
43618	s.OtaUpdateStatus = &v
43619	return s
43620}
43621
43622type ListOTAUpdatesOutput struct {
43623	_ struct{} `type:"structure"`
43624
43625	// A token to use to get the next set of results.
43626	NextToken *string `locationName:"nextToken" type:"string"`
43627
43628	// A list of OTA update jobs.
43629	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
43630}
43631
43632// String returns the string representation
43633func (s ListOTAUpdatesOutput) String() string {
43634	return awsutil.Prettify(s)
43635}
43636
43637// GoString returns the string representation
43638func (s ListOTAUpdatesOutput) GoString() string {
43639	return s.String()
43640}
43641
43642// SetNextToken sets the NextToken field's value.
43643func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
43644	s.NextToken = &v
43645	return s
43646}
43647
43648// SetOtaUpdates sets the OtaUpdates field's value.
43649func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
43650	s.OtaUpdates = v
43651	return s
43652}
43653
43654// The input to the ListOutgoingCertificates operation.
43655type ListOutgoingCertificatesInput struct {
43656	_ struct{} `type:"structure"`
43657
43658	// Specifies the order for results. If True, the results are returned in ascending
43659	// order, based on the creation date.
43660	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43661
43662	// The marker for the next set of results.
43663	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43664
43665	// The result page size.
43666	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43667}
43668
43669// String returns the string representation
43670func (s ListOutgoingCertificatesInput) String() string {
43671	return awsutil.Prettify(s)
43672}
43673
43674// GoString returns the string representation
43675func (s ListOutgoingCertificatesInput) GoString() string {
43676	return s.String()
43677}
43678
43679// Validate inspects the fields of the type to determine if they are valid.
43680func (s *ListOutgoingCertificatesInput) Validate() error {
43681	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
43682	if s.PageSize != nil && *s.PageSize < 1 {
43683		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43684	}
43685
43686	if invalidParams.Len() > 0 {
43687		return invalidParams
43688	}
43689	return nil
43690}
43691
43692// SetAscendingOrder sets the AscendingOrder field's value.
43693func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
43694	s.AscendingOrder = &v
43695	return s
43696}
43697
43698// SetMarker sets the Marker field's value.
43699func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
43700	s.Marker = &v
43701	return s
43702}
43703
43704// SetPageSize sets the PageSize field's value.
43705func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
43706	s.PageSize = &v
43707	return s
43708}
43709
43710// The output from the ListOutgoingCertificates operation.
43711type ListOutgoingCertificatesOutput struct {
43712	_ struct{} `type:"structure"`
43713
43714	// The marker for the next set of results.
43715	NextMarker *string `locationName:"nextMarker" type:"string"`
43716
43717	// The certificates that are being transferred but not yet accepted.
43718	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
43719}
43720
43721// String returns the string representation
43722func (s ListOutgoingCertificatesOutput) String() string {
43723	return awsutil.Prettify(s)
43724}
43725
43726// GoString returns the string representation
43727func (s ListOutgoingCertificatesOutput) GoString() string {
43728	return s.String()
43729}
43730
43731// SetNextMarker sets the NextMarker field's value.
43732func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
43733	s.NextMarker = &v
43734	return s
43735}
43736
43737// SetOutgoingCertificates sets the OutgoingCertificates field's value.
43738func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
43739	s.OutgoingCertificates = v
43740	return s
43741}
43742
43743// The input for the ListPolicies operation.
43744type ListPoliciesInput struct {
43745	_ struct{} `type:"structure"`
43746
43747	// Specifies the order for results. If true, the results are returned in ascending
43748	// creation order.
43749	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43750
43751	// The marker for the next set of results.
43752	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43753
43754	// The result page size.
43755	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43756}
43757
43758// String returns the string representation
43759func (s ListPoliciesInput) String() string {
43760	return awsutil.Prettify(s)
43761}
43762
43763// GoString returns the string representation
43764func (s ListPoliciesInput) GoString() string {
43765	return s.String()
43766}
43767
43768// Validate inspects the fields of the type to determine if they are valid.
43769func (s *ListPoliciesInput) Validate() error {
43770	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
43771	if s.PageSize != nil && *s.PageSize < 1 {
43772		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43773	}
43774
43775	if invalidParams.Len() > 0 {
43776		return invalidParams
43777	}
43778	return nil
43779}
43780
43781// SetAscendingOrder sets the AscendingOrder field's value.
43782func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
43783	s.AscendingOrder = &v
43784	return s
43785}
43786
43787// SetMarker sets the Marker field's value.
43788func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
43789	s.Marker = &v
43790	return s
43791}
43792
43793// SetPageSize sets the PageSize field's value.
43794func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
43795	s.PageSize = &v
43796	return s
43797}
43798
43799// The output from the ListPolicies operation.
43800type ListPoliciesOutput struct {
43801	_ struct{} `type:"structure"`
43802
43803	// The marker for the next set of results, or null if there are no additional
43804	// results.
43805	NextMarker *string `locationName:"nextMarker" type:"string"`
43806
43807	// The descriptions of the policies.
43808	Policies []*Policy `locationName:"policies" type:"list"`
43809}
43810
43811// String returns the string representation
43812func (s ListPoliciesOutput) String() string {
43813	return awsutil.Prettify(s)
43814}
43815
43816// GoString returns the string representation
43817func (s ListPoliciesOutput) GoString() string {
43818	return s.String()
43819}
43820
43821// SetNextMarker sets the NextMarker field's value.
43822func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
43823	s.NextMarker = &v
43824	return s
43825}
43826
43827// SetPolicies sets the Policies field's value.
43828func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
43829	s.Policies = v
43830	return s
43831}
43832
43833// The input for the ListPolicyPrincipals operation.
43834type ListPolicyPrincipalsInput struct {
43835	_ struct{} `type:"structure"`
43836
43837	// Specifies the order for results. If true, the results are returned in ascending
43838	// creation order.
43839	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43840
43841	// The marker for the next set of results.
43842	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43843
43844	// The result page size.
43845	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43846
43847	// The policy name.
43848	//
43849	// PolicyName is a required field
43850	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
43851}
43852
43853// String returns the string representation
43854func (s ListPolicyPrincipalsInput) String() string {
43855	return awsutil.Prettify(s)
43856}
43857
43858// GoString returns the string representation
43859func (s ListPolicyPrincipalsInput) GoString() string {
43860	return s.String()
43861}
43862
43863// Validate inspects the fields of the type to determine if they are valid.
43864func (s *ListPolicyPrincipalsInput) Validate() error {
43865	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
43866	if s.PageSize != nil && *s.PageSize < 1 {
43867		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43868	}
43869	if s.PolicyName == nil {
43870		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
43871	}
43872	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
43873		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
43874	}
43875
43876	if invalidParams.Len() > 0 {
43877		return invalidParams
43878	}
43879	return nil
43880}
43881
43882// SetAscendingOrder sets the AscendingOrder field's value.
43883func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
43884	s.AscendingOrder = &v
43885	return s
43886}
43887
43888// SetMarker sets the Marker field's value.
43889func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
43890	s.Marker = &v
43891	return s
43892}
43893
43894// SetPageSize sets the PageSize field's value.
43895func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
43896	s.PageSize = &v
43897	return s
43898}
43899
43900// SetPolicyName sets the PolicyName field's value.
43901func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
43902	s.PolicyName = &v
43903	return s
43904}
43905
43906// The output from the ListPolicyPrincipals operation.
43907type ListPolicyPrincipalsOutput struct {
43908	_ struct{} `type:"structure"`
43909
43910	// The marker for the next set of results, or null if there are no additional
43911	// results.
43912	NextMarker *string `locationName:"nextMarker" type:"string"`
43913
43914	// The descriptions of the principals.
43915	Principals []*string `locationName:"principals" type:"list"`
43916}
43917
43918// String returns the string representation
43919func (s ListPolicyPrincipalsOutput) String() string {
43920	return awsutil.Prettify(s)
43921}
43922
43923// GoString returns the string representation
43924func (s ListPolicyPrincipalsOutput) GoString() string {
43925	return s.String()
43926}
43927
43928// SetNextMarker sets the NextMarker field's value.
43929func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
43930	s.NextMarker = &v
43931	return s
43932}
43933
43934// SetPrincipals sets the Principals field's value.
43935func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
43936	s.Principals = v
43937	return s
43938}
43939
43940// The input for the ListPolicyVersions operation.
43941type ListPolicyVersionsInput struct {
43942	_ struct{} `type:"structure"`
43943
43944	// The policy name.
43945	//
43946	// PolicyName is a required field
43947	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
43948}
43949
43950// String returns the string representation
43951func (s ListPolicyVersionsInput) String() string {
43952	return awsutil.Prettify(s)
43953}
43954
43955// GoString returns the string representation
43956func (s ListPolicyVersionsInput) GoString() string {
43957	return s.String()
43958}
43959
43960// Validate inspects the fields of the type to determine if they are valid.
43961func (s *ListPolicyVersionsInput) Validate() error {
43962	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
43963	if s.PolicyName == nil {
43964		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
43965	}
43966	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
43967		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
43968	}
43969
43970	if invalidParams.Len() > 0 {
43971		return invalidParams
43972	}
43973	return nil
43974}
43975
43976// SetPolicyName sets the PolicyName field's value.
43977func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
43978	s.PolicyName = &v
43979	return s
43980}
43981
43982// The output from the ListPolicyVersions operation.
43983type ListPolicyVersionsOutput struct {
43984	_ struct{} `type:"structure"`
43985
43986	// The policy versions.
43987	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
43988}
43989
43990// String returns the string representation
43991func (s ListPolicyVersionsOutput) String() string {
43992	return awsutil.Prettify(s)
43993}
43994
43995// GoString returns the string representation
43996func (s ListPolicyVersionsOutput) GoString() string {
43997	return s.String()
43998}
43999
44000// SetPolicyVersions sets the PolicyVersions field's value.
44001func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
44002	s.PolicyVersions = v
44003	return s
44004}
44005
44006// The input for the ListPrincipalPolicies operation.
44007type ListPrincipalPoliciesInput struct {
44008	_ struct{} `type:"structure"`
44009
44010	// Specifies the order for results. If true, results are returned in ascending
44011	// creation order.
44012	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44013
44014	// The marker for the next set of results.
44015	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44016
44017	// The result page size.
44018	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44019
44020	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
44021	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
44022	// (region:id).
44023	//
44024	// Principal is a required field
44025	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
44026}
44027
44028// String returns the string representation
44029func (s ListPrincipalPoliciesInput) String() string {
44030	return awsutil.Prettify(s)
44031}
44032
44033// GoString returns the string representation
44034func (s ListPrincipalPoliciesInput) GoString() string {
44035	return s.String()
44036}
44037
44038// Validate inspects the fields of the type to determine if they are valid.
44039func (s *ListPrincipalPoliciesInput) Validate() error {
44040	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
44041	if s.PageSize != nil && *s.PageSize < 1 {
44042		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44043	}
44044	if s.Principal == nil {
44045		invalidParams.Add(request.NewErrParamRequired("Principal"))
44046	}
44047
44048	if invalidParams.Len() > 0 {
44049		return invalidParams
44050	}
44051	return nil
44052}
44053
44054// SetAscendingOrder sets the AscendingOrder field's value.
44055func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
44056	s.AscendingOrder = &v
44057	return s
44058}
44059
44060// SetMarker sets the Marker field's value.
44061func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
44062	s.Marker = &v
44063	return s
44064}
44065
44066// SetPageSize sets the PageSize field's value.
44067func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
44068	s.PageSize = &v
44069	return s
44070}
44071
44072// SetPrincipal sets the Principal field's value.
44073func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
44074	s.Principal = &v
44075	return s
44076}
44077
44078// The output from the ListPrincipalPolicies operation.
44079type ListPrincipalPoliciesOutput struct {
44080	_ struct{} `type:"structure"`
44081
44082	// The marker for the next set of results, or null if there are no additional
44083	// results.
44084	NextMarker *string `locationName:"nextMarker" type:"string"`
44085
44086	// The policies.
44087	Policies []*Policy `locationName:"policies" type:"list"`
44088}
44089
44090// String returns the string representation
44091func (s ListPrincipalPoliciesOutput) String() string {
44092	return awsutil.Prettify(s)
44093}
44094
44095// GoString returns the string representation
44096func (s ListPrincipalPoliciesOutput) GoString() string {
44097	return s.String()
44098}
44099
44100// SetNextMarker sets the NextMarker field's value.
44101func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
44102	s.NextMarker = &v
44103	return s
44104}
44105
44106// SetPolicies sets the Policies field's value.
44107func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
44108	s.Policies = v
44109	return s
44110}
44111
44112// The input for the ListPrincipalThings operation.
44113type ListPrincipalThingsInput struct {
44114	_ struct{} `type:"structure"`
44115
44116	// The maximum number of results to return in this operation.
44117	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44118
44119	// To retrieve the next set of results, the nextToken value from a previous
44120	// response; otherwise null to receive the first set of results.
44121	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44122
44123	// The principal.
44124	//
44125	// Principal is a required field
44126	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
44127}
44128
44129// String returns the string representation
44130func (s ListPrincipalThingsInput) String() string {
44131	return awsutil.Prettify(s)
44132}
44133
44134// GoString returns the string representation
44135func (s ListPrincipalThingsInput) GoString() string {
44136	return s.String()
44137}
44138
44139// Validate inspects the fields of the type to determine if they are valid.
44140func (s *ListPrincipalThingsInput) Validate() error {
44141	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
44142	if s.MaxResults != nil && *s.MaxResults < 1 {
44143		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44144	}
44145	if s.Principal == nil {
44146		invalidParams.Add(request.NewErrParamRequired("Principal"))
44147	}
44148
44149	if invalidParams.Len() > 0 {
44150		return invalidParams
44151	}
44152	return nil
44153}
44154
44155// SetMaxResults sets the MaxResults field's value.
44156func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
44157	s.MaxResults = &v
44158	return s
44159}
44160
44161// SetNextToken sets the NextToken field's value.
44162func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
44163	s.NextToken = &v
44164	return s
44165}
44166
44167// SetPrincipal sets the Principal field's value.
44168func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
44169	s.Principal = &v
44170	return s
44171}
44172
44173// The output from the ListPrincipalThings operation.
44174type ListPrincipalThingsOutput struct {
44175	_ struct{} `type:"structure"`
44176
44177	// The token to use to get the next set of results, or null if there are no
44178	// additional results.
44179	NextToken *string `locationName:"nextToken" type:"string"`
44180
44181	// The things.
44182	Things []*string `locationName:"things" type:"list"`
44183}
44184
44185// String returns the string representation
44186func (s ListPrincipalThingsOutput) String() string {
44187	return awsutil.Prettify(s)
44188}
44189
44190// GoString returns the string representation
44191func (s ListPrincipalThingsOutput) GoString() string {
44192	return s.String()
44193}
44194
44195// SetNextToken sets the NextToken field's value.
44196func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
44197	s.NextToken = &v
44198	return s
44199}
44200
44201// SetThings sets the Things field's value.
44202func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
44203	s.Things = v
44204	return s
44205}
44206
44207type ListProvisioningTemplateVersionsInput struct {
44208	_ struct{} `type:"structure"`
44209
44210	// The maximum number of results to return at one time.
44211	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44212
44213	// A token to retrieve the next set of results.
44214	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44215
44216	// The name of the fleet provisioning template.
44217	//
44218	// TemplateName is a required field
44219	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
44220}
44221
44222// String returns the string representation
44223func (s ListProvisioningTemplateVersionsInput) String() string {
44224	return awsutil.Prettify(s)
44225}
44226
44227// GoString returns the string representation
44228func (s ListProvisioningTemplateVersionsInput) GoString() string {
44229	return s.String()
44230}
44231
44232// Validate inspects the fields of the type to determine if they are valid.
44233func (s *ListProvisioningTemplateVersionsInput) Validate() error {
44234	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
44235	if s.MaxResults != nil && *s.MaxResults < 1 {
44236		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44237	}
44238	if s.TemplateName == nil {
44239		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
44240	}
44241	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
44242		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
44243	}
44244
44245	if invalidParams.Len() > 0 {
44246		return invalidParams
44247	}
44248	return nil
44249}
44250
44251// SetMaxResults sets the MaxResults field's value.
44252func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
44253	s.MaxResults = &v
44254	return s
44255}
44256
44257// SetNextToken sets the NextToken field's value.
44258func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
44259	s.NextToken = &v
44260	return s
44261}
44262
44263// SetTemplateName sets the TemplateName field's value.
44264func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
44265	s.TemplateName = &v
44266	return s
44267}
44268
44269type ListProvisioningTemplateVersionsOutput struct {
44270	_ struct{} `type:"structure"`
44271
44272	// A token to retrieve the next set of results.
44273	NextToken *string `locationName:"nextToken" type:"string"`
44274
44275	// The list of fleet provisioning template versions.
44276	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
44277}
44278
44279// String returns the string representation
44280func (s ListProvisioningTemplateVersionsOutput) String() string {
44281	return awsutil.Prettify(s)
44282}
44283
44284// GoString returns the string representation
44285func (s ListProvisioningTemplateVersionsOutput) GoString() string {
44286	return s.String()
44287}
44288
44289// SetNextToken sets the NextToken field's value.
44290func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
44291	s.NextToken = &v
44292	return s
44293}
44294
44295// SetVersions sets the Versions field's value.
44296func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
44297	s.Versions = v
44298	return s
44299}
44300
44301type ListProvisioningTemplatesInput struct {
44302	_ struct{} `type:"structure"`
44303
44304	// The maximum number of results to return at one time.
44305	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44306
44307	// A token to retrieve the next set of results.
44308	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44309}
44310
44311// String returns the string representation
44312func (s ListProvisioningTemplatesInput) String() string {
44313	return awsutil.Prettify(s)
44314}
44315
44316// GoString returns the string representation
44317func (s ListProvisioningTemplatesInput) GoString() string {
44318	return s.String()
44319}
44320
44321// Validate inspects the fields of the type to determine if they are valid.
44322func (s *ListProvisioningTemplatesInput) Validate() error {
44323	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
44324	if s.MaxResults != nil && *s.MaxResults < 1 {
44325		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44326	}
44327
44328	if invalidParams.Len() > 0 {
44329		return invalidParams
44330	}
44331	return nil
44332}
44333
44334// SetMaxResults sets the MaxResults field's value.
44335func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
44336	s.MaxResults = &v
44337	return s
44338}
44339
44340// SetNextToken sets the NextToken field's value.
44341func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
44342	s.NextToken = &v
44343	return s
44344}
44345
44346type ListProvisioningTemplatesOutput struct {
44347	_ struct{} `type:"structure"`
44348
44349	// A token to retrieve the next set of results.
44350	NextToken *string `locationName:"nextToken" type:"string"`
44351
44352	// A list of fleet provisioning templates
44353	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
44354}
44355
44356// String returns the string representation
44357func (s ListProvisioningTemplatesOutput) String() string {
44358	return awsutil.Prettify(s)
44359}
44360
44361// GoString returns the string representation
44362func (s ListProvisioningTemplatesOutput) GoString() string {
44363	return s.String()
44364}
44365
44366// SetNextToken sets the NextToken field's value.
44367func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
44368	s.NextToken = &v
44369	return s
44370}
44371
44372// SetTemplates sets the Templates field's value.
44373func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
44374	s.Templates = v
44375	return s
44376}
44377
44378type ListRoleAliasesInput struct {
44379	_ struct{} `type:"structure"`
44380
44381	// Return the list of role aliases in ascending alphabetical order.
44382	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44383
44384	// A marker used to get the next set of results.
44385	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44386
44387	// The maximum number of results to return at one time.
44388	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44389}
44390
44391// String returns the string representation
44392func (s ListRoleAliasesInput) String() string {
44393	return awsutil.Prettify(s)
44394}
44395
44396// GoString returns the string representation
44397func (s ListRoleAliasesInput) GoString() string {
44398	return s.String()
44399}
44400
44401// Validate inspects the fields of the type to determine if they are valid.
44402func (s *ListRoleAliasesInput) Validate() error {
44403	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
44404	if s.PageSize != nil && *s.PageSize < 1 {
44405		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44406	}
44407
44408	if invalidParams.Len() > 0 {
44409		return invalidParams
44410	}
44411	return nil
44412}
44413
44414// SetAscendingOrder sets the AscendingOrder field's value.
44415func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
44416	s.AscendingOrder = &v
44417	return s
44418}
44419
44420// SetMarker sets the Marker field's value.
44421func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
44422	s.Marker = &v
44423	return s
44424}
44425
44426// SetPageSize sets the PageSize field's value.
44427func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
44428	s.PageSize = &v
44429	return s
44430}
44431
44432type ListRoleAliasesOutput struct {
44433	_ struct{} `type:"structure"`
44434
44435	// A marker used to get the next set of results.
44436	NextMarker *string `locationName:"nextMarker" type:"string"`
44437
44438	// The role aliases.
44439	RoleAliases []*string `locationName:"roleAliases" type:"list"`
44440}
44441
44442// String returns the string representation
44443func (s ListRoleAliasesOutput) String() string {
44444	return awsutil.Prettify(s)
44445}
44446
44447// GoString returns the string representation
44448func (s ListRoleAliasesOutput) GoString() string {
44449	return s.String()
44450}
44451
44452// SetNextMarker sets the NextMarker field's value.
44453func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
44454	s.NextMarker = &v
44455	return s
44456}
44457
44458// SetRoleAliases sets the RoleAliases field's value.
44459func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
44460	s.RoleAliases = v
44461	return s
44462}
44463
44464type ListScheduledAuditsInput struct {
44465	_ struct{} `type:"structure"`
44466
44467	// The maximum number of results to return at one time. The default is 25.
44468	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44469
44470	// The token for the next set of results.
44471	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44472}
44473
44474// String returns the string representation
44475func (s ListScheduledAuditsInput) String() string {
44476	return awsutil.Prettify(s)
44477}
44478
44479// GoString returns the string representation
44480func (s ListScheduledAuditsInput) GoString() string {
44481	return s.String()
44482}
44483
44484// Validate inspects the fields of the type to determine if they are valid.
44485func (s *ListScheduledAuditsInput) Validate() error {
44486	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
44487	if s.MaxResults != nil && *s.MaxResults < 1 {
44488		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44489	}
44490
44491	if invalidParams.Len() > 0 {
44492		return invalidParams
44493	}
44494	return nil
44495}
44496
44497// SetMaxResults sets the MaxResults field's value.
44498func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
44499	s.MaxResults = &v
44500	return s
44501}
44502
44503// SetNextToken sets the NextToken field's value.
44504func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
44505	s.NextToken = &v
44506	return s
44507}
44508
44509type ListScheduledAuditsOutput struct {
44510	_ struct{} `type:"structure"`
44511
44512	// A token that can be used to retrieve the next set of results, or null if
44513	// there are no additional results.
44514	NextToken *string `locationName:"nextToken" type:"string"`
44515
44516	// The list of scheduled audits.
44517	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
44518}
44519
44520// String returns the string representation
44521func (s ListScheduledAuditsOutput) String() string {
44522	return awsutil.Prettify(s)
44523}
44524
44525// GoString returns the string representation
44526func (s ListScheduledAuditsOutput) GoString() string {
44527	return s.String()
44528}
44529
44530// SetNextToken sets the NextToken field's value.
44531func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
44532	s.NextToken = &v
44533	return s
44534}
44535
44536// SetScheduledAudits sets the ScheduledAudits field's value.
44537func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
44538	s.ScheduledAudits = v
44539	return s
44540}
44541
44542type ListSecurityProfilesForTargetInput struct {
44543	_ struct{} `type:"structure"`
44544
44545	// The maximum number of results to return at one time.
44546	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44547
44548	// The token for the next set of results.
44549	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44550
44551	// If true, return child groups too.
44552	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
44553
44554	// The ARN of the target (thing group) whose attached security profiles you
44555	// want to get.
44556	//
44557	// SecurityProfileTargetArn is a required field
44558	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
44559}
44560
44561// String returns the string representation
44562func (s ListSecurityProfilesForTargetInput) String() string {
44563	return awsutil.Prettify(s)
44564}
44565
44566// GoString returns the string representation
44567func (s ListSecurityProfilesForTargetInput) GoString() string {
44568	return s.String()
44569}
44570
44571// Validate inspects the fields of the type to determine if they are valid.
44572func (s *ListSecurityProfilesForTargetInput) Validate() error {
44573	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
44574	if s.MaxResults != nil && *s.MaxResults < 1 {
44575		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44576	}
44577	if s.SecurityProfileTargetArn == nil {
44578		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
44579	}
44580
44581	if invalidParams.Len() > 0 {
44582		return invalidParams
44583	}
44584	return nil
44585}
44586
44587// SetMaxResults sets the MaxResults field's value.
44588func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
44589	s.MaxResults = &v
44590	return s
44591}
44592
44593// SetNextToken sets the NextToken field's value.
44594func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
44595	s.NextToken = &v
44596	return s
44597}
44598
44599// SetRecursive sets the Recursive field's value.
44600func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
44601	s.Recursive = &v
44602	return s
44603}
44604
44605// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
44606func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
44607	s.SecurityProfileTargetArn = &v
44608	return s
44609}
44610
44611type ListSecurityProfilesForTargetOutput struct {
44612	_ struct{} `type:"structure"`
44613
44614	// A token that can be used to retrieve the next set of results, or null if
44615	// there are no additional results.
44616	NextToken *string `locationName:"nextToken" type:"string"`
44617
44618	// A list of security profiles and their associated targets.
44619	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
44620}
44621
44622// String returns the string representation
44623func (s ListSecurityProfilesForTargetOutput) String() string {
44624	return awsutil.Prettify(s)
44625}
44626
44627// GoString returns the string representation
44628func (s ListSecurityProfilesForTargetOutput) GoString() string {
44629	return s.String()
44630}
44631
44632// SetNextToken sets the NextToken field's value.
44633func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
44634	s.NextToken = &v
44635	return s
44636}
44637
44638// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
44639func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
44640	s.SecurityProfileTargetMappings = v
44641	return s
44642}
44643
44644type ListSecurityProfilesInput struct {
44645	_ struct{} `type:"structure"`
44646
44647	// A filter to limit results to the security profiles that use the defined dimension.
44648	// Cannot be used with metricName
44649	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
44650
44651	// The maximum number of results to return at one time.
44652	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44653
44654	// The name of the custom metric. Cannot be used with dimensionName.
44655	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
44656
44657	// The token for the next set of results.
44658	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44659}
44660
44661// String returns the string representation
44662func (s ListSecurityProfilesInput) String() string {
44663	return awsutil.Prettify(s)
44664}
44665
44666// GoString returns the string representation
44667func (s ListSecurityProfilesInput) GoString() string {
44668	return s.String()
44669}
44670
44671// Validate inspects the fields of the type to determine if they are valid.
44672func (s *ListSecurityProfilesInput) Validate() error {
44673	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
44674	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
44675		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
44676	}
44677	if s.MaxResults != nil && *s.MaxResults < 1 {
44678		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44679	}
44680	if s.MetricName != nil && len(*s.MetricName) < 1 {
44681		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
44682	}
44683
44684	if invalidParams.Len() > 0 {
44685		return invalidParams
44686	}
44687	return nil
44688}
44689
44690// SetDimensionName sets the DimensionName field's value.
44691func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
44692	s.DimensionName = &v
44693	return s
44694}
44695
44696// SetMaxResults sets the MaxResults field's value.
44697func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
44698	s.MaxResults = &v
44699	return s
44700}
44701
44702// SetMetricName sets the MetricName field's value.
44703func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
44704	s.MetricName = &v
44705	return s
44706}
44707
44708// SetNextToken sets the NextToken field's value.
44709func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
44710	s.NextToken = &v
44711	return s
44712}
44713
44714type ListSecurityProfilesOutput struct {
44715	_ struct{} `type:"structure"`
44716
44717	// A token that can be used to retrieve the next set of results, or null if
44718	// there are no additional results.
44719	NextToken *string `locationName:"nextToken" type:"string"`
44720
44721	// A list of security profile identifiers (names and ARNs).
44722	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
44723}
44724
44725// String returns the string representation
44726func (s ListSecurityProfilesOutput) String() string {
44727	return awsutil.Prettify(s)
44728}
44729
44730// GoString returns the string representation
44731func (s ListSecurityProfilesOutput) GoString() string {
44732	return s.String()
44733}
44734
44735// SetNextToken sets the NextToken field's value.
44736func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
44737	s.NextToken = &v
44738	return s
44739}
44740
44741// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
44742func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
44743	s.SecurityProfileIdentifiers = v
44744	return s
44745}
44746
44747type ListStreamsInput struct {
44748	_ struct{} `type:"structure"`
44749
44750	// Set to true to return the list of streams in ascending order.
44751	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44752
44753	// The maximum number of results to return at a time.
44754	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44755
44756	// A token used to get the next set of results.
44757	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44758}
44759
44760// String returns the string representation
44761func (s ListStreamsInput) String() string {
44762	return awsutil.Prettify(s)
44763}
44764
44765// GoString returns the string representation
44766func (s ListStreamsInput) GoString() string {
44767	return s.String()
44768}
44769
44770// Validate inspects the fields of the type to determine if they are valid.
44771func (s *ListStreamsInput) Validate() error {
44772	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
44773	if s.MaxResults != nil && *s.MaxResults < 1 {
44774		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44775	}
44776
44777	if invalidParams.Len() > 0 {
44778		return invalidParams
44779	}
44780	return nil
44781}
44782
44783// SetAscendingOrder sets the AscendingOrder field's value.
44784func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
44785	s.AscendingOrder = &v
44786	return s
44787}
44788
44789// SetMaxResults sets the MaxResults field's value.
44790func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
44791	s.MaxResults = &v
44792	return s
44793}
44794
44795// SetNextToken sets the NextToken field's value.
44796func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
44797	s.NextToken = &v
44798	return s
44799}
44800
44801type ListStreamsOutput struct {
44802	_ struct{} `type:"structure"`
44803
44804	// A token used to get the next set of results.
44805	NextToken *string `locationName:"nextToken" type:"string"`
44806
44807	// A list of streams.
44808	Streams []*StreamSummary `locationName:"streams" type:"list"`
44809}
44810
44811// String returns the string representation
44812func (s ListStreamsOutput) String() string {
44813	return awsutil.Prettify(s)
44814}
44815
44816// GoString returns the string representation
44817func (s ListStreamsOutput) GoString() string {
44818	return s.String()
44819}
44820
44821// SetNextToken sets the NextToken field's value.
44822func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
44823	s.NextToken = &v
44824	return s
44825}
44826
44827// SetStreams sets the Streams field's value.
44828func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
44829	s.Streams = v
44830	return s
44831}
44832
44833type ListTagsForResourceInput struct {
44834	_ struct{} `type:"structure"`
44835
44836	// To retrieve the next set of results, the nextToken value from a previous
44837	// response; otherwise null to receive the first set of results.
44838	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44839
44840	// The ARN of the resource.
44841	//
44842	// ResourceArn is a required field
44843	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
44844}
44845
44846// String returns the string representation
44847func (s ListTagsForResourceInput) String() string {
44848	return awsutil.Prettify(s)
44849}
44850
44851// GoString returns the string representation
44852func (s ListTagsForResourceInput) GoString() string {
44853	return s.String()
44854}
44855
44856// Validate inspects the fields of the type to determine if they are valid.
44857func (s *ListTagsForResourceInput) Validate() error {
44858	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
44859	if s.ResourceArn == nil {
44860		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
44861	}
44862
44863	if invalidParams.Len() > 0 {
44864		return invalidParams
44865	}
44866	return nil
44867}
44868
44869// SetNextToken sets the NextToken field's value.
44870func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
44871	s.NextToken = &v
44872	return s
44873}
44874
44875// SetResourceArn sets the ResourceArn field's value.
44876func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
44877	s.ResourceArn = &v
44878	return s
44879}
44880
44881type ListTagsForResourceOutput struct {
44882	_ struct{} `type:"structure"`
44883
44884	// The token to use to get the next set of results, or null if there are no
44885	// additional results.
44886	NextToken *string `locationName:"nextToken" type:"string"`
44887
44888	// The list of tags assigned to the resource.
44889	Tags []*Tag `locationName:"tags" type:"list"`
44890}
44891
44892// String returns the string representation
44893func (s ListTagsForResourceOutput) String() string {
44894	return awsutil.Prettify(s)
44895}
44896
44897// GoString returns the string representation
44898func (s ListTagsForResourceOutput) GoString() string {
44899	return s.String()
44900}
44901
44902// SetNextToken sets the NextToken field's value.
44903func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
44904	s.NextToken = &v
44905	return s
44906}
44907
44908// SetTags sets the Tags field's value.
44909func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
44910	s.Tags = v
44911	return s
44912}
44913
44914type ListTargetsForPolicyInput struct {
44915	_ struct{} `type:"structure"`
44916
44917	// A marker used to get the next set of results.
44918	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44919
44920	// The maximum number of results to return at one time.
44921	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44922
44923	// The policy name.
44924	//
44925	// PolicyName is a required field
44926	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
44927}
44928
44929// String returns the string representation
44930func (s ListTargetsForPolicyInput) String() string {
44931	return awsutil.Prettify(s)
44932}
44933
44934// GoString returns the string representation
44935func (s ListTargetsForPolicyInput) GoString() string {
44936	return s.String()
44937}
44938
44939// Validate inspects the fields of the type to determine if they are valid.
44940func (s *ListTargetsForPolicyInput) Validate() error {
44941	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
44942	if s.PageSize != nil && *s.PageSize < 1 {
44943		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44944	}
44945	if s.PolicyName == nil {
44946		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44947	}
44948	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44949		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44950	}
44951
44952	if invalidParams.Len() > 0 {
44953		return invalidParams
44954	}
44955	return nil
44956}
44957
44958// SetMarker sets the Marker field's value.
44959func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
44960	s.Marker = &v
44961	return s
44962}
44963
44964// SetPageSize sets the PageSize field's value.
44965func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
44966	s.PageSize = &v
44967	return s
44968}
44969
44970// SetPolicyName sets the PolicyName field's value.
44971func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
44972	s.PolicyName = &v
44973	return s
44974}
44975
44976type ListTargetsForPolicyOutput struct {
44977	_ struct{} `type:"structure"`
44978
44979	// A marker used to get the next set of results.
44980	NextMarker *string `locationName:"nextMarker" type:"string"`
44981
44982	// The policy targets.
44983	Targets []*string `locationName:"targets" type:"list"`
44984}
44985
44986// String returns the string representation
44987func (s ListTargetsForPolicyOutput) String() string {
44988	return awsutil.Prettify(s)
44989}
44990
44991// GoString returns the string representation
44992func (s ListTargetsForPolicyOutput) GoString() string {
44993	return s.String()
44994}
44995
44996// SetNextMarker sets the NextMarker field's value.
44997func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
44998	s.NextMarker = &v
44999	return s
45000}
45001
45002// SetTargets sets the Targets field's value.
45003func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
45004	s.Targets = v
45005	return s
45006}
45007
45008type ListTargetsForSecurityProfileInput struct {
45009	_ struct{} `type:"structure"`
45010
45011	// The maximum number of results to return at one time.
45012	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45013
45014	// The token for the next set of results.
45015	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45016
45017	// The security profile.
45018	//
45019	// SecurityProfileName is a required field
45020	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
45021}
45022
45023// String returns the string representation
45024func (s ListTargetsForSecurityProfileInput) String() string {
45025	return awsutil.Prettify(s)
45026}
45027
45028// GoString returns the string representation
45029func (s ListTargetsForSecurityProfileInput) GoString() string {
45030	return s.String()
45031}
45032
45033// Validate inspects the fields of the type to determine if they are valid.
45034func (s *ListTargetsForSecurityProfileInput) Validate() error {
45035	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
45036	if s.MaxResults != nil && *s.MaxResults < 1 {
45037		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45038	}
45039	if s.SecurityProfileName == nil {
45040		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
45041	}
45042	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
45043		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
45044	}
45045
45046	if invalidParams.Len() > 0 {
45047		return invalidParams
45048	}
45049	return nil
45050}
45051
45052// SetMaxResults sets the MaxResults field's value.
45053func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
45054	s.MaxResults = &v
45055	return s
45056}
45057
45058// SetNextToken sets the NextToken field's value.
45059func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
45060	s.NextToken = &v
45061	return s
45062}
45063
45064// SetSecurityProfileName sets the SecurityProfileName field's value.
45065func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
45066	s.SecurityProfileName = &v
45067	return s
45068}
45069
45070type ListTargetsForSecurityProfileOutput struct {
45071	_ struct{} `type:"structure"`
45072
45073	// A token that can be used to retrieve the next set of results, or null if
45074	// there are no additional results.
45075	NextToken *string `locationName:"nextToken" type:"string"`
45076
45077	// The thing groups to which the security profile is attached.
45078	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
45079}
45080
45081// String returns the string representation
45082func (s ListTargetsForSecurityProfileOutput) String() string {
45083	return awsutil.Prettify(s)
45084}
45085
45086// GoString returns the string representation
45087func (s ListTargetsForSecurityProfileOutput) GoString() string {
45088	return s.String()
45089}
45090
45091// SetNextToken sets the NextToken field's value.
45092func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
45093	s.NextToken = &v
45094	return s
45095}
45096
45097// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
45098func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
45099	s.SecurityProfileTargets = v
45100	return s
45101}
45102
45103type ListThingGroupsForThingInput struct {
45104	_ struct{} `type:"structure"`
45105
45106	// The maximum number of results to return at one time.
45107	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45108
45109	// To retrieve the next set of results, the nextToken value from a previous
45110	// response; otherwise null to receive the first set of results.
45111	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45112
45113	// The thing name.
45114	//
45115	// ThingName is a required field
45116	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
45117}
45118
45119// String returns the string representation
45120func (s ListThingGroupsForThingInput) String() string {
45121	return awsutil.Prettify(s)
45122}
45123
45124// GoString returns the string representation
45125func (s ListThingGroupsForThingInput) GoString() string {
45126	return s.String()
45127}
45128
45129// Validate inspects the fields of the type to determine if they are valid.
45130func (s *ListThingGroupsForThingInput) Validate() error {
45131	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
45132	if s.MaxResults != nil && *s.MaxResults < 1 {
45133		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45134	}
45135	if s.ThingName == nil {
45136		invalidParams.Add(request.NewErrParamRequired("ThingName"))
45137	}
45138	if s.ThingName != nil && len(*s.ThingName) < 1 {
45139		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
45140	}
45141
45142	if invalidParams.Len() > 0 {
45143		return invalidParams
45144	}
45145	return nil
45146}
45147
45148// SetMaxResults sets the MaxResults field's value.
45149func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
45150	s.MaxResults = &v
45151	return s
45152}
45153
45154// SetNextToken sets the NextToken field's value.
45155func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
45156	s.NextToken = &v
45157	return s
45158}
45159
45160// SetThingName sets the ThingName field's value.
45161func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
45162	s.ThingName = &v
45163	return s
45164}
45165
45166type ListThingGroupsForThingOutput struct {
45167	_ struct{} `type:"structure"`
45168
45169	// The token to use to get the next set of results, or null if there are no
45170	// additional results.
45171	NextToken *string `locationName:"nextToken" type:"string"`
45172
45173	// The thing groups.
45174	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
45175}
45176
45177// String returns the string representation
45178func (s ListThingGroupsForThingOutput) String() string {
45179	return awsutil.Prettify(s)
45180}
45181
45182// GoString returns the string representation
45183func (s ListThingGroupsForThingOutput) GoString() string {
45184	return s.String()
45185}
45186
45187// SetNextToken sets the NextToken field's value.
45188func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
45189	s.NextToken = &v
45190	return s
45191}
45192
45193// SetThingGroups sets the ThingGroups field's value.
45194func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
45195	s.ThingGroups = v
45196	return s
45197}
45198
45199type ListThingGroupsInput struct {
45200	_ struct{} `type:"structure"`
45201
45202	// The maximum number of results to return at one time.
45203	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45204
45205	// A filter that limits the results to those with the specified name prefix.
45206	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
45207
45208	// To retrieve the next set of results, the nextToken value from a previous
45209	// response; otherwise null to receive the first set of results.
45210	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45211
45212	// A filter that limits the results to those with the specified parent group.
45213	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
45214
45215	// If true, return child groups as well.
45216	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
45217}
45218
45219// String returns the string representation
45220func (s ListThingGroupsInput) String() string {
45221	return awsutil.Prettify(s)
45222}
45223
45224// GoString returns the string representation
45225func (s ListThingGroupsInput) GoString() string {
45226	return s.String()
45227}
45228
45229// Validate inspects the fields of the type to determine if they are valid.
45230func (s *ListThingGroupsInput) Validate() error {
45231	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
45232	if s.MaxResults != nil && *s.MaxResults < 1 {
45233		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45234	}
45235	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
45236		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
45237	}
45238	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
45239		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
45240	}
45241
45242	if invalidParams.Len() > 0 {
45243		return invalidParams
45244	}
45245	return nil
45246}
45247
45248// SetMaxResults sets the MaxResults field's value.
45249func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
45250	s.MaxResults = &v
45251	return s
45252}
45253
45254// SetNamePrefixFilter sets the NamePrefixFilter field's value.
45255func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
45256	s.NamePrefixFilter = &v
45257	return s
45258}
45259
45260// SetNextToken sets the NextToken field's value.
45261func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
45262	s.NextToken = &v
45263	return s
45264}
45265
45266// SetParentGroup sets the ParentGroup field's value.
45267func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
45268	s.ParentGroup = &v
45269	return s
45270}
45271
45272// SetRecursive sets the Recursive field's value.
45273func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
45274	s.Recursive = &v
45275	return s
45276}
45277
45278type ListThingGroupsOutput struct {
45279	_ struct{} `type:"structure"`
45280
45281	// The token to use to get the next set of results. Will not be returned if
45282	// operation has returned all results.
45283	NextToken *string `locationName:"nextToken" type:"string"`
45284
45285	// The thing groups.
45286	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
45287}
45288
45289// String returns the string representation
45290func (s ListThingGroupsOutput) String() string {
45291	return awsutil.Prettify(s)
45292}
45293
45294// GoString returns the string representation
45295func (s ListThingGroupsOutput) GoString() string {
45296	return s.String()
45297}
45298
45299// SetNextToken sets the NextToken field's value.
45300func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
45301	s.NextToken = &v
45302	return s
45303}
45304
45305// SetThingGroups sets the ThingGroups field's value.
45306func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
45307	s.ThingGroups = v
45308	return s
45309}
45310
45311// The input for the ListThingPrincipal operation.
45312type ListThingPrincipalsInput struct {
45313	_ struct{} `type:"structure"`
45314
45315	// The maximum number of results to return in this operation.
45316	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45317
45318	// To retrieve the next set of results, the nextToken value from a previous
45319	// response; otherwise null to receive the first set of results.
45320	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45321
45322	// The name of the thing.
45323	//
45324	// ThingName is a required field
45325	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
45326}
45327
45328// String returns the string representation
45329func (s ListThingPrincipalsInput) String() string {
45330	return awsutil.Prettify(s)
45331}
45332
45333// GoString returns the string representation
45334func (s ListThingPrincipalsInput) GoString() string {
45335	return s.String()
45336}
45337
45338// Validate inspects the fields of the type to determine if they are valid.
45339func (s *ListThingPrincipalsInput) Validate() error {
45340	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
45341	if s.MaxResults != nil && *s.MaxResults < 1 {
45342		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45343	}
45344	if s.ThingName == nil {
45345		invalidParams.Add(request.NewErrParamRequired("ThingName"))
45346	}
45347	if s.ThingName != nil && len(*s.ThingName) < 1 {
45348		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
45349	}
45350
45351	if invalidParams.Len() > 0 {
45352		return invalidParams
45353	}
45354	return nil
45355}
45356
45357// SetMaxResults sets the MaxResults field's value.
45358func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
45359	s.MaxResults = &v
45360	return s
45361}
45362
45363// SetNextToken sets the NextToken field's value.
45364func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
45365	s.NextToken = &v
45366	return s
45367}
45368
45369// SetThingName sets the ThingName field's value.
45370func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
45371	s.ThingName = &v
45372	return s
45373}
45374
45375// The output from the ListThingPrincipals operation.
45376type ListThingPrincipalsOutput struct {
45377	_ struct{} `type:"structure"`
45378
45379	// The token to use to get the next set of results, or null if there are no
45380	// additional results.
45381	NextToken *string `locationName:"nextToken" type:"string"`
45382
45383	// The principals associated with the thing.
45384	Principals []*string `locationName:"principals" type:"list"`
45385}
45386
45387// String returns the string representation
45388func (s ListThingPrincipalsOutput) String() string {
45389	return awsutil.Prettify(s)
45390}
45391
45392// GoString returns the string representation
45393func (s ListThingPrincipalsOutput) GoString() string {
45394	return s.String()
45395}
45396
45397// SetNextToken sets the NextToken field's value.
45398func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
45399	s.NextToken = &v
45400	return s
45401}
45402
45403// SetPrincipals sets the Principals field's value.
45404func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
45405	s.Principals = v
45406	return s
45407}
45408
45409type ListThingRegistrationTaskReportsInput struct {
45410	_ struct{} `type:"structure"`
45411
45412	// The maximum number of results to return per request.
45413	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45414
45415	// To retrieve the next set of results, the nextToken value from a previous
45416	// response; otherwise null to receive the first set of results.
45417	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45418
45419	// The type of task report.
45420	//
45421	// ReportType is a required field
45422	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
45423
45424	// The id of the task.
45425	//
45426	// TaskId is a required field
45427	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
45428}
45429
45430// String returns the string representation
45431func (s ListThingRegistrationTaskReportsInput) String() string {
45432	return awsutil.Prettify(s)
45433}
45434
45435// GoString returns the string representation
45436func (s ListThingRegistrationTaskReportsInput) GoString() string {
45437	return s.String()
45438}
45439
45440// Validate inspects the fields of the type to determine if they are valid.
45441func (s *ListThingRegistrationTaskReportsInput) Validate() error {
45442	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
45443	if s.MaxResults != nil && *s.MaxResults < 1 {
45444		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45445	}
45446	if s.ReportType == nil {
45447		invalidParams.Add(request.NewErrParamRequired("ReportType"))
45448	}
45449	if s.TaskId == nil {
45450		invalidParams.Add(request.NewErrParamRequired("TaskId"))
45451	}
45452	if s.TaskId != nil && len(*s.TaskId) < 1 {
45453		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
45454	}
45455
45456	if invalidParams.Len() > 0 {
45457		return invalidParams
45458	}
45459	return nil
45460}
45461
45462// SetMaxResults sets the MaxResults field's value.
45463func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
45464	s.MaxResults = &v
45465	return s
45466}
45467
45468// SetNextToken sets the NextToken field's value.
45469func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
45470	s.NextToken = &v
45471	return s
45472}
45473
45474// SetReportType sets the ReportType field's value.
45475func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
45476	s.ReportType = &v
45477	return s
45478}
45479
45480// SetTaskId sets the TaskId field's value.
45481func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
45482	s.TaskId = &v
45483	return s
45484}
45485
45486type ListThingRegistrationTaskReportsOutput struct {
45487	_ struct{} `type:"structure"`
45488
45489	// The token to use to get the next set of results, or null if there are no
45490	// additional results.
45491	NextToken *string `locationName:"nextToken" type:"string"`
45492
45493	// The type of task report.
45494	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
45495
45496	// Links to the task resources.
45497	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
45498}
45499
45500// String returns the string representation
45501func (s ListThingRegistrationTaskReportsOutput) String() string {
45502	return awsutil.Prettify(s)
45503}
45504
45505// GoString returns the string representation
45506func (s ListThingRegistrationTaskReportsOutput) GoString() string {
45507	return s.String()
45508}
45509
45510// SetNextToken sets the NextToken field's value.
45511func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
45512	s.NextToken = &v
45513	return s
45514}
45515
45516// SetReportType sets the ReportType field's value.
45517func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
45518	s.ReportType = &v
45519	return s
45520}
45521
45522// SetResourceLinks sets the ResourceLinks field's value.
45523func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
45524	s.ResourceLinks = v
45525	return s
45526}
45527
45528type ListThingRegistrationTasksInput struct {
45529	_ struct{} `type:"structure"`
45530
45531	// The maximum number of results to return at one time.
45532	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45533
45534	// To retrieve the next set of results, the nextToken value from a previous
45535	// response; otherwise null to receive the first set of results.
45536	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45537
45538	// The status of the bulk thing provisioning task.
45539	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
45540}
45541
45542// String returns the string representation
45543func (s ListThingRegistrationTasksInput) String() string {
45544	return awsutil.Prettify(s)
45545}
45546
45547// GoString returns the string representation
45548func (s ListThingRegistrationTasksInput) GoString() string {
45549	return s.String()
45550}
45551
45552// Validate inspects the fields of the type to determine if they are valid.
45553func (s *ListThingRegistrationTasksInput) Validate() error {
45554	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
45555	if s.MaxResults != nil && *s.MaxResults < 1 {
45556		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45557	}
45558
45559	if invalidParams.Len() > 0 {
45560		return invalidParams
45561	}
45562	return nil
45563}
45564
45565// SetMaxResults sets the MaxResults field's value.
45566func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
45567	s.MaxResults = &v
45568	return s
45569}
45570
45571// SetNextToken sets the NextToken field's value.
45572func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
45573	s.NextToken = &v
45574	return s
45575}
45576
45577// SetStatus sets the Status field's value.
45578func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
45579	s.Status = &v
45580	return s
45581}
45582
45583type ListThingRegistrationTasksOutput struct {
45584	_ struct{} `type:"structure"`
45585
45586	// The token to use to get the next set of results, or null if there are no
45587	// additional results.
45588	NextToken *string `locationName:"nextToken" type:"string"`
45589
45590	// A list of bulk thing provisioning task IDs.
45591	TaskIds []*string `locationName:"taskIds" type:"list"`
45592}
45593
45594// String returns the string representation
45595func (s ListThingRegistrationTasksOutput) String() string {
45596	return awsutil.Prettify(s)
45597}
45598
45599// GoString returns the string representation
45600func (s ListThingRegistrationTasksOutput) GoString() string {
45601	return s.String()
45602}
45603
45604// SetNextToken sets the NextToken field's value.
45605func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
45606	s.NextToken = &v
45607	return s
45608}
45609
45610// SetTaskIds sets the TaskIds field's value.
45611func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
45612	s.TaskIds = v
45613	return s
45614}
45615
45616// The input for the ListThingTypes operation.
45617type ListThingTypesInput struct {
45618	_ struct{} `type:"structure"`
45619
45620	// The maximum number of results to return in this operation.
45621	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45622
45623	// To retrieve the next set of results, the nextToken value from a previous
45624	// response; otherwise null to receive the first set of results.
45625	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45626
45627	// The name of the thing type.
45628	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
45629}
45630
45631// String returns the string representation
45632func (s ListThingTypesInput) String() string {
45633	return awsutil.Prettify(s)
45634}
45635
45636// GoString returns the string representation
45637func (s ListThingTypesInput) GoString() string {
45638	return s.String()
45639}
45640
45641// Validate inspects the fields of the type to determine if they are valid.
45642func (s *ListThingTypesInput) Validate() error {
45643	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
45644	if s.MaxResults != nil && *s.MaxResults < 1 {
45645		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45646	}
45647	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
45648		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
45649	}
45650
45651	if invalidParams.Len() > 0 {
45652		return invalidParams
45653	}
45654	return nil
45655}
45656
45657// SetMaxResults sets the MaxResults field's value.
45658func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
45659	s.MaxResults = &v
45660	return s
45661}
45662
45663// SetNextToken sets the NextToken field's value.
45664func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
45665	s.NextToken = &v
45666	return s
45667}
45668
45669// SetThingTypeName sets the ThingTypeName field's value.
45670func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
45671	s.ThingTypeName = &v
45672	return s
45673}
45674
45675// The output for the ListThingTypes operation.
45676type ListThingTypesOutput struct {
45677	_ struct{} `type:"structure"`
45678
45679	// The token for the next set of results. Will not be returned if operation
45680	// has returned all results.
45681	NextToken *string `locationName:"nextToken" type:"string"`
45682
45683	// The thing types.
45684	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
45685}
45686
45687// String returns the string representation
45688func (s ListThingTypesOutput) String() string {
45689	return awsutil.Prettify(s)
45690}
45691
45692// GoString returns the string representation
45693func (s ListThingTypesOutput) GoString() string {
45694	return s.String()
45695}
45696
45697// SetNextToken sets the NextToken field's value.
45698func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
45699	s.NextToken = &v
45700	return s
45701}
45702
45703// SetThingTypes sets the ThingTypes field's value.
45704func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
45705	s.ThingTypes = v
45706	return s
45707}
45708
45709type ListThingsInBillingGroupInput struct {
45710	_ struct{} `type:"structure"`
45711
45712	// The name of the billing group.
45713	//
45714	// BillingGroupName is a required field
45715	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
45716
45717	// The maximum number of results to return per request.
45718	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45719
45720	// To retrieve the next set of results, the nextToken value from a previous
45721	// response; otherwise null to receive the first set of results.
45722	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45723}
45724
45725// String returns the string representation
45726func (s ListThingsInBillingGroupInput) String() string {
45727	return awsutil.Prettify(s)
45728}
45729
45730// GoString returns the string representation
45731func (s ListThingsInBillingGroupInput) GoString() string {
45732	return s.String()
45733}
45734
45735// Validate inspects the fields of the type to determine if they are valid.
45736func (s *ListThingsInBillingGroupInput) Validate() error {
45737	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
45738	if s.BillingGroupName == nil {
45739		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
45740	}
45741	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
45742		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
45743	}
45744	if s.MaxResults != nil && *s.MaxResults < 1 {
45745		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45746	}
45747
45748	if invalidParams.Len() > 0 {
45749		return invalidParams
45750	}
45751	return nil
45752}
45753
45754// SetBillingGroupName sets the BillingGroupName field's value.
45755func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
45756	s.BillingGroupName = &v
45757	return s
45758}
45759
45760// SetMaxResults sets the MaxResults field's value.
45761func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
45762	s.MaxResults = &v
45763	return s
45764}
45765
45766// SetNextToken sets the NextToken field's value.
45767func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
45768	s.NextToken = &v
45769	return s
45770}
45771
45772type ListThingsInBillingGroupOutput struct {
45773	_ struct{} `type:"structure"`
45774
45775	// The token to use to get the next set of results. Will not be returned if
45776	// operation has returned all results.
45777	NextToken *string `locationName:"nextToken" type:"string"`
45778
45779	// A list of things in the billing group.
45780	Things []*string `locationName:"things" type:"list"`
45781}
45782
45783// String returns the string representation
45784func (s ListThingsInBillingGroupOutput) String() string {
45785	return awsutil.Prettify(s)
45786}
45787
45788// GoString returns the string representation
45789func (s ListThingsInBillingGroupOutput) GoString() string {
45790	return s.String()
45791}
45792
45793// SetNextToken sets the NextToken field's value.
45794func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
45795	s.NextToken = &v
45796	return s
45797}
45798
45799// SetThings sets the Things field's value.
45800func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
45801	s.Things = v
45802	return s
45803}
45804
45805type ListThingsInThingGroupInput struct {
45806	_ struct{} `type:"structure"`
45807
45808	// The maximum number of results to return at one time.
45809	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45810
45811	// To retrieve the next set of results, the nextToken value from a previous
45812	// response; otherwise null to receive the first set of results.
45813	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45814
45815	// When true, list things in this thing group and in all child groups as well.
45816	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
45817
45818	// The thing group name.
45819	//
45820	// ThingGroupName is a required field
45821	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
45822}
45823
45824// String returns the string representation
45825func (s ListThingsInThingGroupInput) String() string {
45826	return awsutil.Prettify(s)
45827}
45828
45829// GoString returns the string representation
45830func (s ListThingsInThingGroupInput) GoString() string {
45831	return s.String()
45832}
45833
45834// Validate inspects the fields of the type to determine if they are valid.
45835func (s *ListThingsInThingGroupInput) Validate() error {
45836	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
45837	if s.MaxResults != nil && *s.MaxResults < 1 {
45838		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45839	}
45840	if s.ThingGroupName == nil {
45841		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
45842	}
45843	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
45844		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
45845	}
45846
45847	if invalidParams.Len() > 0 {
45848		return invalidParams
45849	}
45850	return nil
45851}
45852
45853// SetMaxResults sets the MaxResults field's value.
45854func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
45855	s.MaxResults = &v
45856	return s
45857}
45858
45859// SetNextToken sets the NextToken field's value.
45860func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
45861	s.NextToken = &v
45862	return s
45863}
45864
45865// SetRecursive sets the Recursive field's value.
45866func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
45867	s.Recursive = &v
45868	return s
45869}
45870
45871// SetThingGroupName sets the ThingGroupName field's value.
45872func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
45873	s.ThingGroupName = &v
45874	return s
45875}
45876
45877type ListThingsInThingGroupOutput struct {
45878	_ struct{} `type:"structure"`
45879
45880	// The token to use to get the next set of results, or null if there are no
45881	// additional results.
45882	NextToken *string `locationName:"nextToken" type:"string"`
45883
45884	// The things in the specified thing group.
45885	Things []*string `locationName:"things" type:"list"`
45886}
45887
45888// String returns the string representation
45889func (s ListThingsInThingGroupOutput) String() string {
45890	return awsutil.Prettify(s)
45891}
45892
45893// GoString returns the string representation
45894func (s ListThingsInThingGroupOutput) GoString() string {
45895	return s.String()
45896}
45897
45898// SetNextToken sets the NextToken field's value.
45899func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
45900	s.NextToken = &v
45901	return s
45902}
45903
45904// SetThings sets the Things field's value.
45905func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
45906	s.Things = v
45907	return s
45908}
45909
45910// The input for the ListThings operation.
45911type ListThingsInput struct {
45912	_ struct{} `type:"structure"`
45913
45914	// The attribute name used to search for things.
45915	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
45916
45917	// The attribute value used to search for things.
45918	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
45919
45920	// The maximum number of results to return in this operation.
45921	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45922
45923	// To retrieve the next set of results, the nextToken value from a previous
45924	// response; otherwise null to receive the first set of results.
45925	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45926
45927	// The name of the thing type used to search for things.
45928	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
45929}
45930
45931// String returns the string representation
45932func (s ListThingsInput) String() string {
45933	return awsutil.Prettify(s)
45934}
45935
45936// GoString returns the string representation
45937func (s ListThingsInput) GoString() string {
45938	return s.String()
45939}
45940
45941// Validate inspects the fields of the type to determine if they are valid.
45942func (s *ListThingsInput) Validate() error {
45943	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
45944	if s.MaxResults != nil && *s.MaxResults < 1 {
45945		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45946	}
45947	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
45948		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
45949	}
45950
45951	if invalidParams.Len() > 0 {
45952		return invalidParams
45953	}
45954	return nil
45955}
45956
45957// SetAttributeName sets the AttributeName field's value.
45958func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
45959	s.AttributeName = &v
45960	return s
45961}
45962
45963// SetAttributeValue sets the AttributeValue field's value.
45964func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
45965	s.AttributeValue = &v
45966	return s
45967}
45968
45969// SetMaxResults sets the MaxResults field's value.
45970func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
45971	s.MaxResults = &v
45972	return s
45973}
45974
45975// SetNextToken sets the NextToken field's value.
45976func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
45977	s.NextToken = &v
45978	return s
45979}
45980
45981// SetThingTypeName sets the ThingTypeName field's value.
45982func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
45983	s.ThingTypeName = &v
45984	return s
45985}
45986
45987// The output from the ListThings operation.
45988type ListThingsOutput struct {
45989	_ struct{} `type:"structure"`
45990
45991	// The token to use to get the next set of results. Will not be returned if
45992	// operation has returned all results.
45993	NextToken *string `locationName:"nextToken" type:"string"`
45994
45995	// The things.
45996	Things []*ThingAttribute `locationName:"things" type:"list"`
45997}
45998
45999// String returns the string representation
46000func (s ListThingsOutput) String() string {
46001	return awsutil.Prettify(s)
46002}
46003
46004// GoString returns the string representation
46005func (s ListThingsOutput) GoString() string {
46006	return s.String()
46007}
46008
46009// SetNextToken sets the NextToken field's value.
46010func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
46011	s.NextToken = &v
46012	return s
46013}
46014
46015// SetThings sets the Things field's value.
46016func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
46017	s.Things = v
46018	return s
46019}
46020
46021type ListTopicRuleDestinationsInput struct {
46022	_ struct{} `type:"structure"`
46023
46024	// The maximum number of results to return at one time.
46025	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46026
46027	// To retrieve the next set of results, the nextToken value from a previous
46028	// response; otherwise null to receive the first set of results.
46029	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46030}
46031
46032// String returns the string representation
46033func (s ListTopicRuleDestinationsInput) String() string {
46034	return awsutil.Prettify(s)
46035}
46036
46037// GoString returns the string representation
46038func (s ListTopicRuleDestinationsInput) GoString() string {
46039	return s.String()
46040}
46041
46042// Validate inspects the fields of the type to determine if they are valid.
46043func (s *ListTopicRuleDestinationsInput) Validate() error {
46044	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
46045	if s.MaxResults != nil && *s.MaxResults < 1 {
46046		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46047	}
46048
46049	if invalidParams.Len() > 0 {
46050		return invalidParams
46051	}
46052	return nil
46053}
46054
46055// SetMaxResults sets the MaxResults field's value.
46056func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
46057	s.MaxResults = &v
46058	return s
46059}
46060
46061// SetNextToken sets the NextToken field's value.
46062func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
46063	s.NextToken = &v
46064	return s
46065}
46066
46067type ListTopicRuleDestinationsOutput struct {
46068	_ struct{} `type:"structure"`
46069
46070	// Information about a topic rule destination.
46071	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
46072
46073	// The token to use to get the next set of results, or null if there are no
46074	// additional results.
46075	NextToken *string `locationName:"nextToken" type:"string"`
46076}
46077
46078// String returns the string representation
46079func (s ListTopicRuleDestinationsOutput) String() string {
46080	return awsutil.Prettify(s)
46081}
46082
46083// GoString returns the string representation
46084func (s ListTopicRuleDestinationsOutput) GoString() string {
46085	return s.String()
46086}
46087
46088// SetDestinationSummaries sets the DestinationSummaries field's value.
46089func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
46090	s.DestinationSummaries = v
46091	return s
46092}
46093
46094// SetNextToken sets the NextToken field's value.
46095func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
46096	s.NextToken = &v
46097	return s
46098}
46099
46100// The input for the ListTopicRules operation.
46101type ListTopicRulesInput struct {
46102	_ struct{} `type:"structure"`
46103
46104	// The maximum number of results to return.
46105	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46106
46107	// To retrieve the next set of results, the nextToken value from a previous
46108	// response; otherwise null to receive the first set of results.
46109	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46110
46111	// Specifies whether the rule is disabled.
46112	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
46113
46114	// The topic.
46115	Topic *string `location:"querystring" locationName:"topic" type:"string"`
46116}
46117
46118// String returns the string representation
46119func (s ListTopicRulesInput) String() string {
46120	return awsutil.Prettify(s)
46121}
46122
46123// GoString returns the string representation
46124func (s ListTopicRulesInput) GoString() string {
46125	return s.String()
46126}
46127
46128// Validate inspects the fields of the type to determine if they are valid.
46129func (s *ListTopicRulesInput) Validate() error {
46130	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
46131	if s.MaxResults != nil && *s.MaxResults < 1 {
46132		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46133	}
46134
46135	if invalidParams.Len() > 0 {
46136		return invalidParams
46137	}
46138	return nil
46139}
46140
46141// SetMaxResults sets the MaxResults field's value.
46142func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
46143	s.MaxResults = &v
46144	return s
46145}
46146
46147// SetNextToken sets the NextToken field's value.
46148func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
46149	s.NextToken = &v
46150	return s
46151}
46152
46153// SetRuleDisabled sets the RuleDisabled field's value.
46154func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
46155	s.RuleDisabled = &v
46156	return s
46157}
46158
46159// SetTopic sets the Topic field's value.
46160func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
46161	s.Topic = &v
46162	return s
46163}
46164
46165// The output from the ListTopicRules operation.
46166type ListTopicRulesOutput struct {
46167	_ struct{} `type:"structure"`
46168
46169	// The token to use to get the next set of results, or null if there are no
46170	// additional results.
46171	NextToken *string `locationName:"nextToken" type:"string"`
46172
46173	// The rules.
46174	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
46175}
46176
46177// String returns the string representation
46178func (s ListTopicRulesOutput) String() string {
46179	return awsutil.Prettify(s)
46180}
46181
46182// GoString returns the string representation
46183func (s ListTopicRulesOutput) GoString() string {
46184	return s.String()
46185}
46186
46187// SetNextToken sets the NextToken field's value.
46188func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
46189	s.NextToken = &v
46190	return s
46191}
46192
46193// SetRules sets the Rules field's value.
46194func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
46195	s.Rules = v
46196	return s
46197}
46198
46199type ListV2LoggingLevelsInput struct {
46200	_ struct{} `type:"structure"`
46201
46202	// The maximum number of results to return at one time.
46203	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46204
46205	// To retrieve the next set of results, the nextToken value from a previous
46206	// response; otherwise null to receive the first set of results.
46207	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46208
46209	// The type of resource for which you are configuring logging. Must be THING_Group.
46210	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
46211}
46212
46213// String returns the string representation
46214func (s ListV2LoggingLevelsInput) String() string {
46215	return awsutil.Prettify(s)
46216}
46217
46218// GoString returns the string representation
46219func (s ListV2LoggingLevelsInput) GoString() string {
46220	return s.String()
46221}
46222
46223// Validate inspects the fields of the type to determine if they are valid.
46224func (s *ListV2LoggingLevelsInput) Validate() error {
46225	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
46226	if s.MaxResults != nil && *s.MaxResults < 1 {
46227		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46228	}
46229
46230	if invalidParams.Len() > 0 {
46231		return invalidParams
46232	}
46233	return nil
46234}
46235
46236// SetMaxResults sets the MaxResults field's value.
46237func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
46238	s.MaxResults = &v
46239	return s
46240}
46241
46242// SetNextToken sets the NextToken field's value.
46243func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
46244	s.NextToken = &v
46245	return s
46246}
46247
46248// SetTargetType sets the TargetType field's value.
46249func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
46250	s.TargetType = &v
46251	return s
46252}
46253
46254type ListV2LoggingLevelsOutput struct {
46255	_ struct{} `type:"structure"`
46256
46257	// The logging configuration for a target.
46258	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
46259
46260	// The token to use to get the next set of results, or null if there are no
46261	// additional results.
46262	NextToken *string `locationName:"nextToken" type:"string"`
46263}
46264
46265// String returns the string representation
46266func (s ListV2LoggingLevelsOutput) String() string {
46267	return awsutil.Prettify(s)
46268}
46269
46270// GoString returns the string representation
46271func (s ListV2LoggingLevelsOutput) GoString() string {
46272	return s.String()
46273}
46274
46275// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
46276func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
46277	s.LogTargetConfigurations = v
46278	return s
46279}
46280
46281// SetNextToken sets the NextToken field's value.
46282func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
46283	s.NextToken = &v
46284	return s
46285}
46286
46287type ListViolationEventsInput struct {
46288	_ struct{} `type:"structure"`
46289
46290	// The criteria for a behavior.
46291	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
46292
46293	// The end time for the alerts to be listed.
46294	//
46295	// EndTime is a required field
46296	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
46297
46298	// A list of all suppressed alerts.
46299	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
46300
46301	// The maximum number of results to return at one time.
46302	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46303
46304	// The token for the next set of results.
46305	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46306
46307	// A filter to limit results to those alerts generated by the specified security
46308	// profile.
46309	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
46310
46311	// The start time for the alerts to be listed.
46312	//
46313	// StartTime is a required field
46314	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
46315
46316	// A filter to limit results to those alerts caused by the specified thing.
46317	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
46318}
46319
46320// String returns the string representation
46321func (s ListViolationEventsInput) String() string {
46322	return awsutil.Prettify(s)
46323}
46324
46325// GoString returns the string representation
46326func (s ListViolationEventsInput) GoString() string {
46327	return s.String()
46328}
46329
46330// Validate inspects the fields of the type to determine if they are valid.
46331func (s *ListViolationEventsInput) Validate() error {
46332	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
46333	if s.EndTime == nil {
46334		invalidParams.Add(request.NewErrParamRequired("EndTime"))
46335	}
46336	if s.MaxResults != nil && *s.MaxResults < 1 {
46337		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46338	}
46339	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
46340		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
46341	}
46342	if s.StartTime == nil {
46343		invalidParams.Add(request.NewErrParamRequired("StartTime"))
46344	}
46345	if s.ThingName != nil && len(*s.ThingName) < 1 {
46346		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46347	}
46348
46349	if invalidParams.Len() > 0 {
46350		return invalidParams
46351	}
46352	return nil
46353}
46354
46355// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
46356func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
46357	s.BehaviorCriteriaType = &v
46358	return s
46359}
46360
46361// SetEndTime sets the EndTime field's value.
46362func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
46363	s.EndTime = &v
46364	return s
46365}
46366
46367// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
46368func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
46369	s.ListSuppressedAlerts = &v
46370	return s
46371}
46372
46373// SetMaxResults sets the MaxResults field's value.
46374func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
46375	s.MaxResults = &v
46376	return s
46377}
46378
46379// SetNextToken sets the NextToken field's value.
46380func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
46381	s.NextToken = &v
46382	return s
46383}
46384
46385// SetSecurityProfileName sets the SecurityProfileName field's value.
46386func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
46387	s.SecurityProfileName = &v
46388	return s
46389}
46390
46391// SetStartTime sets the StartTime field's value.
46392func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
46393	s.StartTime = &v
46394	return s
46395}
46396
46397// SetThingName sets the ThingName field's value.
46398func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
46399	s.ThingName = &v
46400	return s
46401}
46402
46403type ListViolationEventsOutput struct {
46404	_ struct{} `type:"structure"`
46405
46406	// A token that can be used to retrieve the next set of results, or null if
46407	// there are no additional results.
46408	NextToken *string `locationName:"nextToken" type:"string"`
46409
46410	// The security profile violation alerts issued for this account during the
46411	// given time period, potentially filtered by security profile, behavior violated,
46412	// or thing (device) violating.
46413	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
46414}
46415
46416// String returns the string representation
46417func (s ListViolationEventsOutput) String() string {
46418	return awsutil.Prettify(s)
46419}
46420
46421// GoString returns the string representation
46422func (s ListViolationEventsOutput) GoString() string {
46423	return s.String()
46424}
46425
46426// SetNextToken sets the NextToken field's value.
46427func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
46428	s.NextToken = &v
46429	return s
46430}
46431
46432// SetViolationEvents sets the ViolationEvents field's value.
46433func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
46434	s.ViolationEvents = v
46435	return s
46436}
46437
46438// A log target.
46439type LogTarget struct {
46440	_ struct{} `type:"structure"`
46441
46442	// The target name.
46443	TargetName *string `locationName:"targetName" type:"string"`
46444
46445	// The target type.
46446	//
46447	// TargetType is a required field
46448	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
46449}
46450
46451// String returns the string representation
46452func (s LogTarget) String() string {
46453	return awsutil.Prettify(s)
46454}
46455
46456// GoString returns the string representation
46457func (s LogTarget) GoString() string {
46458	return s.String()
46459}
46460
46461// Validate inspects the fields of the type to determine if they are valid.
46462func (s *LogTarget) Validate() error {
46463	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
46464	if s.TargetType == nil {
46465		invalidParams.Add(request.NewErrParamRequired("TargetType"))
46466	}
46467
46468	if invalidParams.Len() > 0 {
46469		return invalidParams
46470	}
46471	return nil
46472}
46473
46474// SetTargetName sets the TargetName field's value.
46475func (s *LogTarget) SetTargetName(v string) *LogTarget {
46476	s.TargetName = &v
46477	return s
46478}
46479
46480// SetTargetType sets the TargetType field's value.
46481func (s *LogTarget) SetTargetType(v string) *LogTarget {
46482	s.TargetType = &v
46483	return s
46484}
46485
46486// The target configuration.
46487type LogTargetConfiguration struct {
46488	_ struct{} `type:"structure"`
46489
46490	// The logging level.
46491	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
46492
46493	// A log target
46494	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
46495}
46496
46497// String returns the string representation
46498func (s LogTargetConfiguration) String() string {
46499	return awsutil.Prettify(s)
46500}
46501
46502// GoString returns the string representation
46503func (s LogTargetConfiguration) GoString() string {
46504	return s.String()
46505}
46506
46507// SetLogLevel sets the LogLevel field's value.
46508func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
46509	s.LogLevel = &v
46510	return s
46511}
46512
46513// SetLogTarget sets the LogTarget field's value.
46514func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
46515	s.LogTarget = v
46516	return s
46517}
46518
46519// Describes the logging options payload.
46520type LoggingOptionsPayload struct {
46521	_ struct{} `type:"structure"`
46522
46523	// The log level.
46524	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
46525
46526	// The ARN of the IAM role that grants access.
46527	//
46528	// RoleArn is a required field
46529	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
46530}
46531
46532// String returns the string representation
46533func (s LoggingOptionsPayload) String() string {
46534	return awsutil.Prettify(s)
46535}
46536
46537// GoString returns the string representation
46538func (s LoggingOptionsPayload) GoString() string {
46539	return s.String()
46540}
46541
46542// Validate inspects the fields of the type to determine if they are valid.
46543func (s *LoggingOptionsPayload) Validate() error {
46544	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
46545	if s.RoleArn == nil {
46546		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
46547	}
46548
46549	if invalidParams.Len() > 0 {
46550		return invalidParams
46551	}
46552	return nil
46553}
46554
46555// SetLogLevel sets the LogLevel field's value.
46556func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
46557	s.LogLevel = &v
46558	return s
46559}
46560
46561// SetRoleArn sets the RoleArn field's value.
46562func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
46563	s.RoleArn = &v
46564	return s
46565}
46566
46567// The configuration of an ML Detect Security Profile.
46568type MachineLearningDetectionConfig struct {
46569	_ struct{} `type:"structure"`
46570
46571	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
46572	// High.
46573	//
46574	// ConfidenceLevel is a required field
46575	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
46576}
46577
46578// String returns the string representation
46579func (s MachineLearningDetectionConfig) String() string {
46580	return awsutil.Prettify(s)
46581}
46582
46583// GoString returns the string representation
46584func (s MachineLearningDetectionConfig) GoString() string {
46585	return s.String()
46586}
46587
46588// Validate inspects the fields of the type to determine if they are valid.
46589func (s *MachineLearningDetectionConfig) Validate() error {
46590	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
46591	if s.ConfidenceLevel == nil {
46592		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
46593	}
46594
46595	if invalidParams.Len() > 0 {
46596		return invalidParams
46597	}
46598	return nil
46599}
46600
46601// SetConfidenceLevel sets the ConfidenceLevel field's value.
46602func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
46603	s.ConfidenceLevel = &v
46604	return s
46605}
46606
46607// The policy documentation is not valid.
46608type MalformedPolicyException struct {
46609	_            struct{}                  `type:"structure"`
46610	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
46611
46612	// The message for the exception.
46613	Message_ *string `locationName:"message" type:"string"`
46614}
46615
46616// String returns the string representation
46617func (s MalformedPolicyException) String() string {
46618	return awsutil.Prettify(s)
46619}
46620
46621// GoString returns the string representation
46622func (s MalformedPolicyException) GoString() string {
46623	return s.String()
46624}
46625
46626func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
46627	return &MalformedPolicyException{
46628		RespMetadata: v,
46629	}
46630}
46631
46632// Code returns the exception type name.
46633func (s *MalformedPolicyException) Code() string {
46634	return "MalformedPolicyException"
46635}
46636
46637// Message returns the exception's message.
46638func (s *MalformedPolicyException) Message() string {
46639	if s.Message_ != nil {
46640		return *s.Message_
46641	}
46642	return ""
46643}
46644
46645// OrigErr always returns nil, satisfies awserr.Error interface.
46646func (s *MalformedPolicyException) OrigErr() error {
46647	return nil
46648}
46649
46650func (s *MalformedPolicyException) Error() string {
46651	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
46652}
46653
46654// Status code returns the HTTP status code for the request's response error.
46655func (s *MalformedPolicyException) StatusCode() int {
46656	return s.RespMetadata.StatusCode
46657}
46658
46659// RequestID returns the service's response RequestID for request.
46660func (s *MalformedPolicyException) RequestID() string {
46661	return s.RespMetadata.RequestID
46662}
46663
46664// The dimension of a metric.
46665type MetricDimension struct {
46666	_ struct{} `type:"structure"`
46667
46668	// A unique identifier for the dimension.
46669	//
46670	// DimensionName is a required field
46671	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
46672
46673	// Defines how the dimensionValues of a dimension are interpreted. For example,
46674	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
46675	// only if its topic matches one of the topic filters. With NOT_IN operator,
46676	// a message will be counted only if it doesn't match any of the topic filters.
46677	// The operator is optional: if it's not provided (is null), it will be interpreted
46678	// as IN.
46679	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
46680}
46681
46682// String returns the string representation
46683func (s MetricDimension) String() string {
46684	return awsutil.Prettify(s)
46685}
46686
46687// GoString returns the string representation
46688func (s MetricDimension) GoString() string {
46689	return s.String()
46690}
46691
46692// Validate inspects the fields of the type to determine if they are valid.
46693func (s *MetricDimension) Validate() error {
46694	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
46695	if s.DimensionName == nil {
46696		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
46697	}
46698	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
46699		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
46700	}
46701
46702	if invalidParams.Len() > 0 {
46703		return invalidParams
46704	}
46705	return nil
46706}
46707
46708// SetDimensionName sets the DimensionName field's value.
46709func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
46710	s.DimensionName = &v
46711	return s
46712}
46713
46714// SetOperator sets the Operator field's value.
46715func (s *MetricDimension) SetOperator(v string) *MetricDimension {
46716	s.Operator = &v
46717	return s
46718}
46719
46720// The metric you want to retain. Dimensions are optional.
46721type MetricToRetain struct {
46722	_ struct{} `type:"structure"`
46723
46724	// What is measured by the behavior.
46725	//
46726	// Metric is a required field
46727	Metric *string `locationName:"metric" type:"string" required:"true"`
46728
46729	// The dimension of a metric. This can't be used with custom metrics.
46730	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
46731}
46732
46733// String returns the string representation
46734func (s MetricToRetain) String() string {
46735	return awsutil.Prettify(s)
46736}
46737
46738// GoString returns the string representation
46739func (s MetricToRetain) GoString() string {
46740	return s.String()
46741}
46742
46743// Validate inspects the fields of the type to determine if they are valid.
46744func (s *MetricToRetain) Validate() error {
46745	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
46746	if s.Metric == nil {
46747		invalidParams.Add(request.NewErrParamRequired("Metric"))
46748	}
46749	if s.MetricDimension != nil {
46750		if err := s.MetricDimension.Validate(); err != nil {
46751			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
46752		}
46753	}
46754
46755	if invalidParams.Len() > 0 {
46756		return invalidParams
46757	}
46758	return nil
46759}
46760
46761// SetMetric sets the Metric field's value.
46762func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
46763	s.Metric = &v
46764	return s
46765}
46766
46767// SetMetricDimension sets the MetricDimension field's value.
46768func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
46769	s.MetricDimension = v
46770	return s
46771}
46772
46773// The value to be compared with the metric.
46774type MetricValue struct {
46775	_ struct{} `type:"structure"`
46776
46777	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
46778	// set to be compared with the metric.
46779	Cidrs []*string `locationName:"cidrs" type:"list"`
46780
46781	// If the comparisonOperator calls for a numeric value, use this to specify
46782	// that numeric value to be compared with the metric.
46783	Count *int64 `locationName:"count" type:"long"`
46784
46785	// The numeral value of a metric.
46786	Number *float64 `locationName:"number" type:"double"`
46787
46788	// The numeral values of a metric.
46789	Numbers []*float64 `locationName:"numbers" type:"list"`
46790
46791	// If the comparisonOperator calls for a set of ports, use this to specify that
46792	// set to be compared with the metric.
46793	Ports []*int64 `locationName:"ports" type:"list"`
46794
46795	// The string values of a metric.
46796	Strings []*string `locationName:"strings" type:"list"`
46797}
46798
46799// String returns the string representation
46800func (s MetricValue) String() string {
46801	return awsutil.Prettify(s)
46802}
46803
46804// GoString returns the string representation
46805func (s MetricValue) GoString() string {
46806	return s.String()
46807}
46808
46809// SetCidrs sets the Cidrs field's value.
46810func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
46811	s.Cidrs = v
46812	return s
46813}
46814
46815// SetCount sets the Count field's value.
46816func (s *MetricValue) SetCount(v int64) *MetricValue {
46817	s.Count = &v
46818	return s
46819}
46820
46821// SetNumber sets the Number field's value.
46822func (s *MetricValue) SetNumber(v float64) *MetricValue {
46823	s.Number = &v
46824	return s
46825}
46826
46827// SetNumbers sets the Numbers field's value.
46828func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
46829	s.Numbers = v
46830	return s
46831}
46832
46833// SetPorts sets the Ports field's value.
46834func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
46835	s.Ports = v
46836	return s
46837}
46838
46839// SetStrings sets the Strings field's value.
46840func (s *MetricValue) SetStrings(v []*string) *MetricValue {
46841	s.Strings = v
46842	return s
46843}
46844
46845// Describes which changes should be applied as part of a mitigation action.
46846type MitigationAction struct {
46847	_ struct{} `type:"structure"`
46848
46849	// The set of parameters for this mitigation action. The parameters vary, depending
46850	// on the kind of action you apply.
46851	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
46852
46853	// A unique identifier for the mitigation action.
46854	Id *string `locationName:"id" type:"string"`
46855
46856	// A user-friendly name for the mitigation action.
46857	Name *string `locationName:"name" type:"string"`
46858
46859	// The IAM role ARN used to apply this mitigation action.
46860	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
46861}
46862
46863// String returns the string representation
46864func (s MitigationAction) String() string {
46865	return awsutil.Prettify(s)
46866}
46867
46868// GoString returns the string representation
46869func (s MitigationAction) GoString() string {
46870	return s.String()
46871}
46872
46873// SetActionParams sets the ActionParams field's value.
46874func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
46875	s.ActionParams = v
46876	return s
46877}
46878
46879// SetId sets the Id field's value.
46880func (s *MitigationAction) SetId(v string) *MitigationAction {
46881	s.Id = &v
46882	return s
46883}
46884
46885// SetName sets the Name field's value.
46886func (s *MitigationAction) SetName(v string) *MitigationAction {
46887	s.Name = &v
46888	return s
46889}
46890
46891// SetRoleArn sets the RoleArn field's value.
46892func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
46893	s.RoleArn = &v
46894	return s
46895}
46896
46897// Information that identifies a mitigation action. This information is returned
46898// by ListMitigationActions.
46899type MitigationActionIdentifier struct {
46900	_ struct{} `type:"structure"`
46901
46902	// The IAM role ARN used to apply this mitigation action.
46903	ActionArn *string `locationName:"actionArn" type:"string"`
46904
46905	// The friendly name of the mitigation action.
46906	ActionName *string `locationName:"actionName" type:"string"`
46907
46908	// The date when this mitigation action was created.
46909	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
46910}
46911
46912// String returns the string representation
46913func (s MitigationActionIdentifier) String() string {
46914	return awsutil.Prettify(s)
46915}
46916
46917// GoString returns the string representation
46918func (s MitigationActionIdentifier) GoString() string {
46919	return s.String()
46920}
46921
46922// SetActionArn sets the ActionArn field's value.
46923func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
46924	s.ActionArn = &v
46925	return s
46926}
46927
46928// SetActionName sets the ActionName field's value.
46929func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
46930	s.ActionName = &v
46931	return s
46932}
46933
46934// SetCreationDate sets the CreationDate field's value.
46935func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
46936	s.CreationDate = &v
46937	return s
46938}
46939
46940// The set of parameters for this mitigation action. You can specify only one
46941// type of parameter (in other words, you can apply only one action for each
46942// defined mitigation action).
46943type MitigationActionParams struct {
46944	_ struct{} `type:"structure"`
46945
46946	// Parameters to define a mitigation action that moves devices associated with
46947	// a certificate to one or more specified thing groups, typically for quarantine.
46948	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
46949
46950	// Parameters to define a mitigation action that enables AWS IoT logging at
46951	// a specified level of detail.
46952	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
46953
46954	// Parameters to define a mitigation action that publishes findings to Amazon
46955	// Simple Notification Service (Amazon SNS. You can implement your own custom
46956	// actions in response to the Amazon SNS messages.
46957	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
46958
46959	// Parameters to define a mitigation action that adds a blank policy to restrict
46960	// permissions.
46961	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
46962
46963	// Parameters to define a mitigation action that changes the state of the CA
46964	// certificate to inactive.
46965	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
46966
46967	// Parameters to define a mitigation action that changes the state of the device
46968	// certificate to inactive.
46969	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
46970}
46971
46972// String returns the string representation
46973func (s MitigationActionParams) String() string {
46974	return awsutil.Prettify(s)
46975}
46976
46977// GoString returns the string representation
46978func (s MitigationActionParams) GoString() string {
46979	return s.String()
46980}
46981
46982// Validate inspects the fields of the type to determine if they are valid.
46983func (s *MitigationActionParams) Validate() error {
46984	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
46985	if s.AddThingsToThingGroupParams != nil {
46986		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
46987			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
46988		}
46989	}
46990	if s.EnableIoTLoggingParams != nil {
46991		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
46992			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
46993		}
46994	}
46995	if s.PublishFindingToSnsParams != nil {
46996		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
46997			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
46998		}
46999	}
47000	if s.ReplaceDefaultPolicyVersionParams != nil {
47001		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
47002			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
47003		}
47004	}
47005	if s.UpdateCACertificateParams != nil {
47006		if err := s.UpdateCACertificateParams.Validate(); err != nil {
47007			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
47008		}
47009	}
47010	if s.UpdateDeviceCertificateParams != nil {
47011		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
47012			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
47013		}
47014	}
47015
47016	if invalidParams.Len() > 0 {
47017		return invalidParams
47018	}
47019	return nil
47020}
47021
47022// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
47023func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
47024	s.AddThingsToThingGroupParams = v
47025	return s
47026}
47027
47028// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
47029func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
47030	s.EnableIoTLoggingParams = v
47031	return s
47032}
47033
47034// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
47035func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
47036	s.PublishFindingToSnsParams = v
47037	return s
47038}
47039
47040// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
47041func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
47042	s.ReplaceDefaultPolicyVersionParams = v
47043	return s
47044}
47045
47046// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
47047func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
47048	s.UpdateCACertificateParams = v
47049	return s
47050}
47051
47052// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
47053func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
47054	s.UpdateDeviceCertificateParams = v
47055	return s
47056}
47057
47058// Specifies the MQTT context to use for the test authorizer request
47059type MqttContext struct {
47060	_ struct{} `type:"structure"`
47061
47062	// The value of the clientId key in an MQTT authorization request.
47063	ClientId *string `locationName:"clientId" min:"1" type:"string"`
47064
47065	// The value of the password key in an MQTT authorization request.
47066	//
47067	// Password is automatically base64 encoded/decoded by the SDK.
47068	Password []byte `locationName:"password" min:"1" type:"blob"`
47069
47070	// The value of the username key in an MQTT authorization request.
47071	Username *string `locationName:"username" min:"1" type:"string"`
47072}
47073
47074// String returns the string representation
47075func (s MqttContext) String() string {
47076	return awsutil.Prettify(s)
47077}
47078
47079// GoString returns the string representation
47080func (s MqttContext) GoString() string {
47081	return s.String()
47082}
47083
47084// Validate inspects the fields of the type to determine if they are valid.
47085func (s *MqttContext) Validate() error {
47086	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
47087	if s.ClientId != nil && len(*s.ClientId) < 1 {
47088		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
47089	}
47090	if s.Password != nil && len(s.Password) < 1 {
47091		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
47092	}
47093	if s.Username != nil && len(*s.Username) < 1 {
47094		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
47095	}
47096
47097	if invalidParams.Len() > 0 {
47098		return invalidParams
47099	}
47100	return nil
47101}
47102
47103// SetClientId sets the ClientId field's value.
47104func (s *MqttContext) SetClientId(v string) *MqttContext {
47105	s.ClientId = &v
47106	return s
47107}
47108
47109// SetPassword sets the Password field's value.
47110func (s *MqttContext) SetPassword(v []byte) *MqttContext {
47111	s.Password = v
47112	return s
47113}
47114
47115// SetUsername sets the Username field's value.
47116func (s *MqttContext) SetUsername(v string) *MqttContext {
47117	s.Username = &v
47118	return s
47119}
47120
47121// Information about the resource that was noncompliant with the audit check.
47122type NonCompliantResource struct {
47123	_ struct{} `type:"structure"`
47124
47125	// Other information about the noncompliant resource.
47126	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
47127
47128	// Information that identifies the noncompliant resource.
47129	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
47130
47131	// The type of the noncompliant resource.
47132	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
47133}
47134
47135// String returns the string representation
47136func (s NonCompliantResource) String() string {
47137	return awsutil.Prettify(s)
47138}
47139
47140// GoString returns the string representation
47141func (s NonCompliantResource) GoString() string {
47142	return s.String()
47143}
47144
47145// SetAdditionalInfo sets the AdditionalInfo field's value.
47146func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
47147	s.AdditionalInfo = v
47148	return s
47149}
47150
47151// SetResourceIdentifier sets the ResourceIdentifier field's value.
47152func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
47153	s.ResourceIdentifier = v
47154	return s
47155}
47156
47157// SetResourceType sets the ResourceType field's value.
47158func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
47159	s.ResourceType = &v
47160	return s
47161}
47162
47163// The resource is not configured.
47164type NotConfiguredException struct {
47165	_            struct{}                  `type:"structure"`
47166	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
47167
47168	// The message for the exception.
47169	Message_ *string `locationName:"message" type:"string"`
47170}
47171
47172// String returns the string representation
47173func (s NotConfiguredException) String() string {
47174	return awsutil.Prettify(s)
47175}
47176
47177// GoString returns the string representation
47178func (s NotConfiguredException) GoString() string {
47179	return s.String()
47180}
47181
47182func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
47183	return &NotConfiguredException{
47184		RespMetadata: v,
47185	}
47186}
47187
47188// Code returns the exception type name.
47189func (s *NotConfiguredException) Code() string {
47190	return "NotConfiguredException"
47191}
47192
47193// Message returns the exception's message.
47194func (s *NotConfiguredException) Message() string {
47195	if s.Message_ != nil {
47196		return *s.Message_
47197	}
47198	return ""
47199}
47200
47201// OrigErr always returns nil, satisfies awserr.Error interface.
47202func (s *NotConfiguredException) OrigErr() error {
47203	return nil
47204}
47205
47206func (s *NotConfiguredException) Error() string {
47207	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
47208}
47209
47210// Status code returns the HTTP status code for the request's response error.
47211func (s *NotConfiguredException) StatusCode() int {
47212	return s.RespMetadata.StatusCode
47213}
47214
47215// RequestID returns the service's response RequestID for request.
47216func (s *NotConfiguredException) RequestID() string {
47217	return s.RespMetadata.RequestID
47218}
47219
47220// Describes a file to be associated with an OTA update.
47221type OTAUpdateFile struct {
47222	_ struct{} `type:"structure"`
47223
47224	// A list of name/attribute pairs.
47225	Attributes map[string]*string `locationName:"attributes" type:"map"`
47226
47227	// The code signing method of the file.
47228	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
47229
47230	// The location of the updated firmware.
47231	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
47232
47233	// The name of the file.
47234	FileName *string `locationName:"fileName" type:"string"`
47235
47236	// An integer value you can include in the job document to allow your devices
47237	// to identify the type of file received from the cloud.
47238	FileType *int64 `locationName:"fileType" type:"integer"`
47239
47240	// The file version.
47241	FileVersion *string `locationName:"fileVersion" type:"string"`
47242}
47243
47244// String returns the string representation
47245func (s OTAUpdateFile) String() string {
47246	return awsutil.Prettify(s)
47247}
47248
47249// GoString returns the string representation
47250func (s OTAUpdateFile) GoString() string {
47251	return s.String()
47252}
47253
47254// Validate inspects the fields of the type to determine if they are valid.
47255func (s *OTAUpdateFile) Validate() error {
47256	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
47257	if s.CodeSigning != nil {
47258		if err := s.CodeSigning.Validate(); err != nil {
47259			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
47260		}
47261	}
47262	if s.FileLocation != nil {
47263		if err := s.FileLocation.Validate(); err != nil {
47264			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
47265		}
47266	}
47267
47268	if invalidParams.Len() > 0 {
47269		return invalidParams
47270	}
47271	return nil
47272}
47273
47274// SetAttributes sets the Attributes field's value.
47275func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
47276	s.Attributes = v
47277	return s
47278}
47279
47280// SetCodeSigning sets the CodeSigning field's value.
47281func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
47282	s.CodeSigning = v
47283	return s
47284}
47285
47286// SetFileLocation sets the FileLocation field's value.
47287func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
47288	s.FileLocation = v
47289	return s
47290}
47291
47292// SetFileName sets the FileName field's value.
47293func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
47294	s.FileName = &v
47295	return s
47296}
47297
47298// SetFileType sets the FileType field's value.
47299func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
47300	s.FileType = &v
47301	return s
47302}
47303
47304// SetFileVersion sets the FileVersion field's value.
47305func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
47306	s.FileVersion = &v
47307	return s
47308}
47309
47310// Information about an OTA update.
47311type OTAUpdateInfo struct {
47312	_ struct{} `type:"structure"`
47313
47314	// A collection of name/value pairs
47315	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
47316
47317	// The AWS IoT job ARN associated with the OTA update.
47318	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
47319
47320	// The AWS IoT job ID associated with the OTA update.
47321	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
47322
47323	// Configuration for the rollout of OTA updates.
47324	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
47325
47326	// Configuration information for pre-signed URLs. Valid when protocols contains
47327	// HTTP.
47328	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
47329
47330	// The date when the OTA update was created.
47331	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47332
47333	// A description of the OTA update.
47334	Description *string `locationName:"description" type:"string"`
47335
47336	// Error information associated with the OTA update.
47337	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
47338
47339	// The date when the OTA update was last updated.
47340	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
47341
47342	// The OTA update ARN.
47343	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
47344
47345	// A list of files associated with the OTA update.
47346	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
47347
47348	// The OTA update ID.
47349	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
47350
47351	// The status of the OTA update.
47352	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
47353
47354	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
47355	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
47356	// can choose the protocol.
47357	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
47358
47359	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
47360	// be complete after all those things specified as targets have completed the
47361	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
47362	// thing when a change is detected in a target. For example, an OTA update will
47363	// run on a thing when the thing is added to a target group, even after the
47364	// OTA update was completed by all things originally in the group.
47365	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
47366
47367	// The targets of the OTA update.
47368	Targets []*string `locationName:"targets" min:"1" type:"list"`
47369}
47370
47371// String returns the string representation
47372func (s OTAUpdateInfo) String() string {
47373	return awsutil.Prettify(s)
47374}
47375
47376// GoString returns the string representation
47377func (s OTAUpdateInfo) GoString() string {
47378	return s.String()
47379}
47380
47381// SetAdditionalParameters sets the AdditionalParameters field's value.
47382func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
47383	s.AdditionalParameters = v
47384	return s
47385}
47386
47387// SetAwsIotJobArn sets the AwsIotJobArn field's value.
47388func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
47389	s.AwsIotJobArn = &v
47390	return s
47391}
47392
47393// SetAwsIotJobId sets the AwsIotJobId field's value.
47394func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
47395	s.AwsIotJobId = &v
47396	return s
47397}
47398
47399// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
47400func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
47401	s.AwsJobExecutionsRolloutConfig = v
47402	return s
47403}
47404
47405// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
47406func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
47407	s.AwsJobPresignedUrlConfig = v
47408	return s
47409}
47410
47411// SetCreationDate sets the CreationDate field's value.
47412func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
47413	s.CreationDate = &v
47414	return s
47415}
47416
47417// SetDescription sets the Description field's value.
47418func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
47419	s.Description = &v
47420	return s
47421}
47422
47423// SetErrorInfo sets the ErrorInfo field's value.
47424func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
47425	s.ErrorInfo = v
47426	return s
47427}
47428
47429// SetLastModifiedDate sets the LastModifiedDate field's value.
47430func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
47431	s.LastModifiedDate = &v
47432	return s
47433}
47434
47435// SetOtaUpdateArn sets the OtaUpdateArn field's value.
47436func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
47437	s.OtaUpdateArn = &v
47438	return s
47439}
47440
47441// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
47442func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
47443	s.OtaUpdateFiles = v
47444	return s
47445}
47446
47447// SetOtaUpdateId sets the OtaUpdateId field's value.
47448func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
47449	s.OtaUpdateId = &v
47450	return s
47451}
47452
47453// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
47454func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
47455	s.OtaUpdateStatus = &v
47456	return s
47457}
47458
47459// SetProtocols sets the Protocols field's value.
47460func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
47461	s.Protocols = v
47462	return s
47463}
47464
47465// SetTargetSelection sets the TargetSelection field's value.
47466func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
47467	s.TargetSelection = &v
47468	return s
47469}
47470
47471// SetTargets sets the Targets field's value.
47472func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
47473	s.Targets = v
47474	return s
47475}
47476
47477// An OTA update summary.
47478type OTAUpdateSummary struct {
47479	_ struct{} `type:"structure"`
47480
47481	// The date when the OTA update was created.
47482	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47483
47484	// The OTA update ARN.
47485	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
47486
47487	// The OTA update ID.
47488	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
47489}
47490
47491// String returns the string representation
47492func (s OTAUpdateSummary) String() string {
47493	return awsutil.Prettify(s)
47494}
47495
47496// GoString returns the string representation
47497func (s OTAUpdateSummary) GoString() string {
47498	return s.String()
47499}
47500
47501// SetCreationDate sets the CreationDate field's value.
47502func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
47503	s.CreationDate = &v
47504	return s
47505}
47506
47507// SetOtaUpdateArn sets the OtaUpdateArn field's value.
47508func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
47509	s.OtaUpdateArn = &v
47510	return s
47511}
47512
47513// SetOtaUpdateId sets the OtaUpdateId field's value.
47514func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
47515	s.OtaUpdateId = &v
47516	return s
47517}
47518
47519// A certificate that has been transferred but not yet accepted.
47520type OutgoingCertificate struct {
47521	_ struct{} `type:"structure"`
47522
47523	// The certificate ARN.
47524	CertificateArn *string `locationName:"certificateArn" type:"string"`
47525
47526	// The certificate ID.
47527	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
47528
47529	// The certificate creation date.
47530	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47531
47532	// The date the transfer was initiated.
47533	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
47534
47535	// The transfer message.
47536	TransferMessage *string `locationName:"transferMessage" type:"string"`
47537
47538	// The AWS account to which the transfer was made.
47539	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
47540}
47541
47542// String returns the string representation
47543func (s OutgoingCertificate) String() string {
47544	return awsutil.Prettify(s)
47545}
47546
47547// GoString returns the string representation
47548func (s OutgoingCertificate) GoString() string {
47549	return s.String()
47550}
47551
47552// SetCertificateArn sets the CertificateArn field's value.
47553func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
47554	s.CertificateArn = &v
47555	return s
47556}
47557
47558// SetCertificateId sets the CertificateId field's value.
47559func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
47560	s.CertificateId = &v
47561	return s
47562}
47563
47564// SetCreationDate sets the CreationDate field's value.
47565func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
47566	s.CreationDate = &v
47567	return s
47568}
47569
47570// SetTransferDate sets the TransferDate field's value.
47571func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
47572	s.TransferDate = &v
47573	return s
47574}
47575
47576// SetTransferMessage sets the TransferMessage field's value.
47577func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
47578	s.TransferMessage = &v
47579	return s
47580}
47581
47582// SetTransferredTo sets the TransferredTo field's value.
47583func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
47584	s.TransferredTo = &v
47585	return s
47586}
47587
47588// Describes the percentile and percentile value.
47589type PercentPair struct {
47590	_ struct{} `type:"structure"`
47591
47592	// The percentile.
47593	Percent *float64 `locationName:"percent" type:"double"`
47594
47595	// The value of the percentile.
47596	Value *float64 `locationName:"value" type:"double"`
47597}
47598
47599// String returns the string representation
47600func (s PercentPair) String() string {
47601	return awsutil.Prettify(s)
47602}
47603
47604// GoString returns the string representation
47605func (s PercentPair) GoString() string {
47606	return s.String()
47607}
47608
47609// SetPercent sets the Percent field's value.
47610func (s *PercentPair) SetPercent(v float64) *PercentPair {
47611	s.Percent = &v
47612	return s
47613}
47614
47615// SetValue sets the Value field's value.
47616func (s *PercentPair) SetValue(v float64) *PercentPair {
47617	s.Value = &v
47618	return s
47619}
47620
47621// Describes an AWS IoT policy.
47622type Policy struct {
47623	_ struct{} `type:"structure"`
47624
47625	// The policy ARN.
47626	PolicyArn *string `locationName:"policyArn" type:"string"`
47627
47628	// The policy name.
47629	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
47630}
47631
47632// String returns the string representation
47633func (s Policy) String() string {
47634	return awsutil.Prettify(s)
47635}
47636
47637// GoString returns the string representation
47638func (s Policy) GoString() string {
47639	return s.String()
47640}
47641
47642// SetPolicyArn sets the PolicyArn field's value.
47643func (s *Policy) SetPolicyArn(v string) *Policy {
47644	s.PolicyArn = &v
47645	return s
47646}
47647
47648// SetPolicyName sets the PolicyName field's value.
47649func (s *Policy) SetPolicyName(v string) *Policy {
47650	s.PolicyName = &v
47651	return s
47652}
47653
47654// Describes a policy version.
47655type PolicyVersion struct {
47656	_ struct{} `type:"structure"`
47657
47658	// The date and time the policy was created.
47659	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
47660
47661	// Specifies whether the policy version is the default.
47662	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
47663
47664	// The policy version ID.
47665	VersionId *string `locationName:"versionId" type:"string"`
47666}
47667
47668// String returns the string representation
47669func (s PolicyVersion) String() string {
47670	return awsutil.Prettify(s)
47671}
47672
47673// GoString returns the string representation
47674func (s PolicyVersion) GoString() string {
47675	return s.String()
47676}
47677
47678// SetCreateDate sets the CreateDate field's value.
47679func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
47680	s.CreateDate = &v
47681	return s
47682}
47683
47684// SetIsDefaultVersion sets the IsDefaultVersion field's value.
47685func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
47686	s.IsDefaultVersion = &v
47687	return s
47688}
47689
47690// SetVersionId sets the VersionId field's value.
47691func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
47692	s.VersionId = &v
47693	return s
47694}
47695
47696// Information about the version of the policy associated with the resource.
47697type PolicyVersionIdentifier struct {
47698	_ struct{} `type:"structure"`
47699
47700	// The name of the policy.
47701	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
47702
47703	// The ID of the version of the policy associated with the resource.
47704	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
47705}
47706
47707// String returns the string representation
47708func (s PolicyVersionIdentifier) String() string {
47709	return awsutil.Prettify(s)
47710}
47711
47712// GoString returns the string representation
47713func (s PolicyVersionIdentifier) GoString() string {
47714	return s.String()
47715}
47716
47717// Validate inspects the fields of the type to determine if they are valid.
47718func (s *PolicyVersionIdentifier) Validate() error {
47719	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
47720	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
47721		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
47722	}
47723
47724	if invalidParams.Len() > 0 {
47725		return invalidParams
47726	}
47727	return nil
47728}
47729
47730// SetPolicyName sets the PolicyName field's value.
47731func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
47732	s.PolicyName = &v
47733	return s
47734}
47735
47736// SetPolicyVersionId sets the PolicyVersionId field's value.
47737func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
47738	s.PolicyVersionId = &v
47739	return s
47740}
47741
47742// Configuration for pre-signed S3 URLs.
47743type PresignedUrlConfig struct {
47744	_ struct{} `type:"structure"`
47745
47746	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
47747	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
47748	// receives an MQTT request for the job document.
47749	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
47750
47751	// The ARN of an IAM role that grants grants permission to download files from
47752	// the S3 bucket where the job data/updates are stored. The role must also grant
47753	// permission for IoT to download the files.
47754	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
47755}
47756
47757// String returns the string representation
47758func (s PresignedUrlConfig) String() string {
47759	return awsutil.Prettify(s)
47760}
47761
47762// GoString returns the string representation
47763func (s PresignedUrlConfig) GoString() string {
47764	return s.String()
47765}
47766
47767// Validate inspects the fields of the type to determine if they are valid.
47768func (s *PresignedUrlConfig) Validate() error {
47769	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
47770	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
47771		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
47772	}
47773	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
47774		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
47775	}
47776
47777	if invalidParams.Len() > 0 {
47778		return invalidParams
47779	}
47780	return nil
47781}
47782
47783// SetExpiresInSec sets the ExpiresInSec field's value.
47784func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
47785	s.ExpiresInSec = &v
47786	return s
47787}
47788
47789// SetRoleArn sets the RoleArn field's value.
47790func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
47791	s.RoleArn = &v
47792	return s
47793}
47794
47795// Structure that contains payloadVersion and targetArn.
47796type ProvisioningHook struct {
47797	_ struct{} `type:"structure"`
47798
47799	// The payload that was sent to the target function.
47800	//
47801	// Note: Only Lambda functions are currently supported.
47802	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
47803
47804	// The ARN of the target function.
47805	//
47806	// Note: Only Lambda functions are currently supported.
47807	//
47808	// TargetArn is a required field
47809	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
47810}
47811
47812// String returns the string representation
47813func (s ProvisioningHook) String() string {
47814	return awsutil.Prettify(s)
47815}
47816
47817// GoString returns the string representation
47818func (s ProvisioningHook) GoString() string {
47819	return s.String()
47820}
47821
47822// Validate inspects the fields of the type to determine if they are valid.
47823func (s *ProvisioningHook) Validate() error {
47824	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
47825	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
47826		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
47827	}
47828	if s.TargetArn == nil {
47829		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
47830	}
47831
47832	if invalidParams.Len() > 0 {
47833		return invalidParams
47834	}
47835	return nil
47836}
47837
47838// SetPayloadVersion sets the PayloadVersion field's value.
47839func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
47840	s.PayloadVersion = &v
47841	return s
47842}
47843
47844// SetTargetArn sets the TargetArn field's value.
47845func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
47846	s.TargetArn = &v
47847	return s
47848}
47849
47850// A summary of information about a fleet provisioning template.
47851type ProvisioningTemplateSummary struct {
47852	_ struct{} `type:"structure"`
47853
47854	// The date when the fleet provisioning template summary was created.
47855	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47856
47857	// The description of the fleet provisioning template.
47858	Description *string `locationName:"description" type:"string"`
47859
47860	// True if the fleet provision template is enabled, otherwise false.
47861	Enabled *bool `locationName:"enabled" type:"boolean"`
47862
47863	// The date when the fleet provisioning template summary was last modified.
47864	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
47865
47866	// The ARN of the fleet provisioning template.
47867	TemplateArn *string `locationName:"templateArn" type:"string"`
47868
47869	// The name of the fleet provisioning template.
47870	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
47871}
47872
47873// String returns the string representation
47874func (s ProvisioningTemplateSummary) String() string {
47875	return awsutil.Prettify(s)
47876}
47877
47878// GoString returns the string representation
47879func (s ProvisioningTemplateSummary) GoString() string {
47880	return s.String()
47881}
47882
47883// SetCreationDate sets the CreationDate field's value.
47884func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
47885	s.CreationDate = &v
47886	return s
47887}
47888
47889// SetDescription sets the Description field's value.
47890func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
47891	s.Description = &v
47892	return s
47893}
47894
47895// SetEnabled sets the Enabled field's value.
47896func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
47897	s.Enabled = &v
47898	return s
47899}
47900
47901// SetLastModifiedDate sets the LastModifiedDate field's value.
47902func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
47903	s.LastModifiedDate = &v
47904	return s
47905}
47906
47907// SetTemplateArn sets the TemplateArn field's value.
47908func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
47909	s.TemplateArn = &v
47910	return s
47911}
47912
47913// SetTemplateName sets the TemplateName field's value.
47914func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
47915	s.TemplateName = &v
47916	return s
47917}
47918
47919// A summary of information about a fleet provision template version.
47920type ProvisioningTemplateVersionSummary struct {
47921	_ struct{} `type:"structure"`
47922
47923	// The date when the fleet provisioning template version was created
47924	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47925
47926	// True if the fleet provisioning template version is the default version, otherwise
47927	// false.
47928	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
47929
47930	// The ID of the fleet privisioning template version.
47931	VersionId *int64 `locationName:"versionId" type:"integer"`
47932}
47933
47934// String returns the string representation
47935func (s ProvisioningTemplateVersionSummary) String() string {
47936	return awsutil.Prettify(s)
47937}
47938
47939// GoString returns the string representation
47940func (s ProvisioningTemplateVersionSummary) GoString() string {
47941	return s.String()
47942}
47943
47944// SetCreationDate sets the CreationDate field's value.
47945func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
47946	s.CreationDate = &v
47947	return s
47948}
47949
47950// SetIsDefaultVersion sets the IsDefaultVersion field's value.
47951func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
47952	s.IsDefaultVersion = &v
47953	return s
47954}
47955
47956// SetVersionId sets the VersionId field's value.
47957func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
47958	s.VersionId = &v
47959	return s
47960}
47961
47962// Parameters to define a mitigation action that publishes findings to Amazon
47963// SNS. You can implement your own custom actions in response to the Amazon
47964// SNS messages.
47965type PublishFindingToSnsParams struct {
47966	_ struct{} `type:"structure"`
47967
47968	// The ARN of the topic to which you want to publish the findings.
47969	//
47970	// TopicArn is a required field
47971	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
47972}
47973
47974// String returns the string representation
47975func (s PublishFindingToSnsParams) String() string {
47976	return awsutil.Prettify(s)
47977}
47978
47979// GoString returns the string representation
47980func (s PublishFindingToSnsParams) GoString() string {
47981	return s.String()
47982}
47983
47984// Validate inspects the fields of the type to determine if they are valid.
47985func (s *PublishFindingToSnsParams) Validate() error {
47986	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
47987	if s.TopicArn == nil {
47988		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
47989	}
47990
47991	if invalidParams.Len() > 0 {
47992		return invalidParams
47993	}
47994	return nil
47995}
47996
47997// SetTopicArn sets the TopicArn field's value.
47998func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
47999	s.TopicArn = &v
48000	return s
48001}
48002
48003// An asset property value entry containing the following information.
48004type PutAssetPropertyValueEntry struct {
48005	_ struct{} `type:"structure"`
48006
48007	// The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias
48008	// or both an aliasId and a propertyId. Accepts substitution templates.
48009	AssetId *string `locationName:"assetId" type:"string"`
48010
48011	// Optional. A unique identifier for this entry that you can define to better
48012	// track which message caused an error in case of failure. Accepts substitution
48013	// templates. Defaults to a new UUID.
48014	EntryId *string `locationName:"entryId" type:"string"`
48015
48016	// The name of the property alias associated with your asset property. You must
48017	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
48018	// substitution templates.
48019	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
48020
48021	// The ID of the asset's property. You must specify either a propertyAlias or
48022	// both an aliasId and a propertyId. Accepts substitution templates.
48023	PropertyId *string `locationName:"propertyId" type:"string"`
48024
48025	// A list of property values to insert that each contain timestamp, quality,
48026	// and value (TQV) information.
48027	//
48028	// PropertyValues is a required field
48029	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
48030}
48031
48032// String returns the string representation
48033func (s PutAssetPropertyValueEntry) String() string {
48034	return awsutil.Prettify(s)
48035}
48036
48037// GoString returns the string representation
48038func (s PutAssetPropertyValueEntry) GoString() string {
48039	return s.String()
48040}
48041
48042// Validate inspects the fields of the type to determine if they are valid.
48043func (s *PutAssetPropertyValueEntry) Validate() error {
48044	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
48045	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
48046		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
48047	}
48048	if s.PropertyValues == nil {
48049		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
48050	}
48051	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
48052		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
48053	}
48054	if s.PropertyValues != nil {
48055		for i, v := range s.PropertyValues {
48056			if v == nil {
48057				continue
48058			}
48059			if err := v.Validate(); err != nil {
48060				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
48061			}
48062		}
48063	}
48064
48065	if invalidParams.Len() > 0 {
48066		return invalidParams
48067	}
48068	return nil
48069}
48070
48071// SetAssetId sets the AssetId field's value.
48072func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
48073	s.AssetId = &v
48074	return s
48075}
48076
48077// SetEntryId sets the EntryId field's value.
48078func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
48079	s.EntryId = &v
48080	return s
48081}
48082
48083// SetPropertyAlias sets the PropertyAlias field's value.
48084func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
48085	s.PropertyAlias = &v
48086	return s
48087}
48088
48089// SetPropertyId sets the PropertyId field's value.
48090func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
48091	s.PropertyId = &v
48092	return s
48093}
48094
48095// SetPropertyValues sets the PropertyValues field's value.
48096func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
48097	s.PropertyValues = v
48098	return s
48099}
48100
48101// The input for the DynamoActionVS action that specifies the DynamoDB table
48102// to which the message data will be written.
48103type PutItemInput struct {
48104	_ struct{} `type:"structure"`
48105
48106	// The table where the message data will be written.
48107	//
48108	// TableName is a required field
48109	TableName *string `locationName:"tableName" type:"string" required:"true"`
48110}
48111
48112// String returns the string representation
48113func (s PutItemInput) String() string {
48114	return awsutil.Prettify(s)
48115}
48116
48117// GoString returns the string representation
48118func (s PutItemInput) GoString() string {
48119	return s.String()
48120}
48121
48122// Validate inspects the fields of the type to determine if they are valid.
48123func (s *PutItemInput) Validate() error {
48124	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
48125	if s.TableName == nil {
48126		invalidParams.Add(request.NewErrParamRequired("TableName"))
48127	}
48128
48129	if invalidParams.Len() > 0 {
48130		return invalidParams
48131	}
48132	return nil
48133}
48134
48135// SetTableName sets the TableName field's value.
48136func (s *PutItemInput) SetTableName(v string) *PutItemInput {
48137	s.TableName = &v
48138	return s
48139}
48140
48141// Allows you to define a criteria to initiate the increase in rate of rollout
48142// for a job.
48143type RateIncreaseCriteria struct {
48144	_ struct{} `type:"structure"`
48145
48146	// The threshold for number of notified things that will initiate the increase
48147	// in rate of rollout.
48148	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
48149
48150	// The threshold for number of succeeded things that will initiate the increase
48151	// in rate of rollout.
48152	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
48153}
48154
48155// String returns the string representation
48156func (s RateIncreaseCriteria) String() string {
48157	return awsutil.Prettify(s)
48158}
48159
48160// GoString returns the string representation
48161func (s RateIncreaseCriteria) GoString() string {
48162	return s.String()
48163}
48164
48165// Validate inspects the fields of the type to determine if they are valid.
48166func (s *RateIncreaseCriteria) Validate() error {
48167	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
48168	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
48169		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
48170	}
48171	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
48172		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
48173	}
48174
48175	if invalidParams.Len() > 0 {
48176		return invalidParams
48177	}
48178	return nil
48179}
48180
48181// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
48182func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
48183	s.NumberOfNotifiedThings = &v
48184	return s
48185}
48186
48187// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
48188func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
48189	s.NumberOfSucceededThings = &v
48190	return s
48191}
48192
48193// The input to the RegisterCACertificate operation.
48194type RegisterCACertificateInput struct {
48195	_ struct{} `type:"structure"`
48196
48197	// Allows this CA certificate to be used for auto registration of device certificates.
48198	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
48199
48200	// The CA certificate.
48201	//
48202	// CaCertificate is a required field
48203	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
48204
48205	// Information about the registration configuration.
48206	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
48207
48208	// A boolean value that specifies if the CA certificate is set to active.
48209	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
48210
48211	// Metadata which can be used to manage the CA certificate.
48212	//
48213	// For URI Request parameters use format: ...key1=value1&key2=value2...
48214	//
48215	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
48216	//
48217	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
48218	Tags []*Tag `locationName:"tags" type:"list"`
48219
48220	// The private key verification certificate.
48221	//
48222	// VerificationCertificate is a required field
48223	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
48224}
48225
48226// String returns the string representation
48227func (s RegisterCACertificateInput) String() string {
48228	return awsutil.Prettify(s)
48229}
48230
48231// GoString returns the string representation
48232func (s RegisterCACertificateInput) GoString() string {
48233	return s.String()
48234}
48235
48236// Validate inspects the fields of the type to determine if they are valid.
48237func (s *RegisterCACertificateInput) Validate() error {
48238	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
48239	if s.CaCertificate == nil {
48240		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
48241	}
48242	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
48243		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
48244	}
48245	if s.VerificationCertificate == nil {
48246		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
48247	}
48248	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
48249		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
48250	}
48251	if s.RegistrationConfig != nil {
48252		if err := s.RegistrationConfig.Validate(); err != nil {
48253			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
48254		}
48255	}
48256	if s.Tags != nil {
48257		for i, v := range s.Tags {
48258			if v == nil {
48259				continue
48260			}
48261			if err := v.Validate(); err != nil {
48262				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
48263			}
48264		}
48265	}
48266
48267	if invalidParams.Len() > 0 {
48268		return invalidParams
48269	}
48270	return nil
48271}
48272
48273// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
48274func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
48275	s.AllowAutoRegistration = &v
48276	return s
48277}
48278
48279// SetCaCertificate sets the CaCertificate field's value.
48280func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
48281	s.CaCertificate = &v
48282	return s
48283}
48284
48285// SetRegistrationConfig sets the RegistrationConfig field's value.
48286func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
48287	s.RegistrationConfig = v
48288	return s
48289}
48290
48291// SetSetAsActive sets the SetAsActive field's value.
48292func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
48293	s.SetAsActive = &v
48294	return s
48295}
48296
48297// SetTags sets the Tags field's value.
48298func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
48299	s.Tags = v
48300	return s
48301}
48302
48303// SetVerificationCertificate sets the VerificationCertificate field's value.
48304func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
48305	s.VerificationCertificate = &v
48306	return s
48307}
48308
48309// The output from the RegisterCACertificateResponse operation.
48310type RegisterCACertificateOutput struct {
48311	_ struct{} `type:"structure"`
48312
48313	// The CA certificate ARN.
48314	CertificateArn *string `locationName:"certificateArn" type:"string"`
48315
48316	// The CA certificate identifier.
48317	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
48318}
48319
48320// String returns the string representation
48321func (s RegisterCACertificateOutput) String() string {
48322	return awsutil.Prettify(s)
48323}
48324
48325// GoString returns the string representation
48326func (s RegisterCACertificateOutput) GoString() string {
48327	return s.String()
48328}
48329
48330// SetCertificateArn sets the CertificateArn field's value.
48331func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
48332	s.CertificateArn = &v
48333	return s
48334}
48335
48336// SetCertificateId sets the CertificateId field's value.
48337func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
48338	s.CertificateId = &v
48339	return s
48340}
48341
48342// The input to the RegisterCertificate operation.
48343type RegisterCertificateInput struct {
48344	_ struct{} `type:"structure"`
48345
48346	// The CA certificate used to sign the device certificate being registered.
48347	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
48348
48349	// The certificate data, in PEM format.
48350	//
48351	// CertificatePem is a required field
48352	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
48353
48354	// A boolean value that specifies if the certificate is set to active.
48355	//
48356	// Deprecated: SetAsActive has been deprecated
48357	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
48358
48359	// The status of the register certificate request.
48360	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
48361}
48362
48363// String returns the string representation
48364func (s RegisterCertificateInput) String() string {
48365	return awsutil.Prettify(s)
48366}
48367
48368// GoString returns the string representation
48369func (s RegisterCertificateInput) GoString() string {
48370	return s.String()
48371}
48372
48373// Validate inspects the fields of the type to determine if they are valid.
48374func (s *RegisterCertificateInput) Validate() error {
48375	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
48376	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
48377		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
48378	}
48379	if s.CertificatePem == nil {
48380		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
48381	}
48382	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
48383		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
48384	}
48385
48386	if invalidParams.Len() > 0 {
48387		return invalidParams
48388	}
48389	return nil
48390}
48391
48392// SetCaCertificatePem sets the CaCertificatePem field's value.
48393func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
48394	s.CaCertificatePem = &v
48395	return s
48396}
48397
48398// SetCertificatePem sets the CertificatePem field's value.
48399func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
48400	s.CertificatePem = &v
48401	return s
48402}
48403
48404// SetSetAsActive sets the SetAsActive field's value.
48405func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
48406	s.SetAsActive = &v
48407	return s
48408}
48409
48410// SetStatus sets the Status field's value.
48411func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
48412	s.Status = &v
48413	return s
48414}
48415
48416// The output from the RegisterCertificate operation.
48417type RegisterCertificateOutput struct {
48418	_ struct{} `type:"structure"`
48419
48420	// The certificate ARN.
48421	CertificateArn *string `locationName:"certificateArn" type:"string"`
48422
48423	// The certificate identifier.
48424	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
48425}
48426
48427// String returns the string representation
48428func (s RegisterCertificateOutput) String() string {
48429	return awsutil.Prettify(s)
48430}
48431
48432// GoString returns the string representation
48433func (s RegisterCertificateOutput) GoString() string {
48434	return s.String()
48435}
48436
48437// SetCertificateArn sets the CertificateArn field's value.
48438func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
48439	s.CertificateArn = &v
48440	return s
48441}
48442
48443// SetCertificateId sets the CertificateId field's value.
48444func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
48445	s.CertificateId = &v
48446	return s
48447}
48448
48449type RegisterCertificateWithoutCAInput struct {
48450	_ struct{} `type:"structure"`
48451
48452	// The certificate data, in PEM format.
48453	//
48454	// CertificatePem is a required field
48455	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
48456
48457	// The status of the register certificate request.
48458	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
48459}
48460
48461// String returns the string representation
48462func (s RegisterCertificateWithoutCAInput) String() string {
48463	return awsutil.Prettify(s)
48464}
48465
48466// GoString returns the string representation
48467func (s RegisterCertificateWithoutCAInput) GoString() string {
48468	return s.String()
48469}
48470
48471// Validate inspects the fields of the type to determine if they are valid.
48472func (s *RegisterCertificateWithoutCAInput) Validate() error {
48473	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
48474	if s.CertificatePem == nil {
48475		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
48476	}
48477	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
48478		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
48479	}
48480
48481	if invalidParams.Len() > 0 {
48482		return invalidParams
48483	}
48484	return nil
48485}
48486
48487// SetCertificatePem sets the CertificatePem field's value.
48488func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
48489	s.CertificatePem = &v
48490	return s
48491}
48492
48493// SetStatus sets the Status field's value.
48494func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
48495	s.Status = &v
48496	return s
48497}
48498
48499type RegisterCertificateWithoutCAOutput struct {
48500	_ struct{} `type:"structure"`
48501
48502	// The Amazon Resource Name (ARN) of the registered certificate.
48503	CertificateArn *string `locationName:"certificateArn" type:"string"`
48504
48505	// The ID of the registered certificate. (The last part of the certificate ARN
48506	// contains the certificate ID.
48507	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
48508}
48509
48510// String returns the string representation
48511func (s RegisterCertificateWithoutCAOutput) String() string {
48512	return awsutil.Prettify(s)
48513}
48514
48515// GoString returns the string representation
48516func (s RegisterCertificateWithoutCAOutput) GoString() string {
48517	return s.String()
48518}
48519
48520// SetCertificateArn sets the CertificateArn field's value.
48521func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
48522	s.CertificateArn = &v
48523	return s
48524}
48525
48526// SetCertificateId sets the CertificateId field's value.
48527func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
48528	s.CertificateId = &v
48529	return s
48530}
48531
48532type RegisterThingInput struct {
48533	_ struct{} `type:"structure"`
48534
48535	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
48536	// for more information.
48537	Parameters map[string]*string `locationName:"parameters" type:"map"`
48538
48539	// The provisioning template. See Provisioning Devices That Have Device Certificates
48540	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
48541	// for more information.
48542	//
48543	// TemplateBody is a required field
48544	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
48545}
48546
48547// String returns the string representation
48548func (s RegisterThingInput) String() string {
48549	return awsutil.Prettify(s)
48550}
48551
48552// GoString returns the string representation
48553func (s RegisterThingInput) GoString() string {
48554	return s.String()
48555}
48556
48557// Validate inspects the fields of the type to determine if they are valid.
48558func (s *RegisterThingInput) Validate() error {
48559	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
48560	if s.TemplateBody == nil {
48561		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
48562	}
48563
48564	if invalidParams.Len() > 0 {
48565		return invalidParams
48566	}
48567	return nil
48568}
48569
48570// SetParameters sets the Parameters field's value.
48571func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
48572	s.Parameters = v
48573	return s
48574}
48575
48576// SetTemplateBody sets the TemplateBody field's value.
48577func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
48578	s.TemplateBody = &v
48579	return s
48580}
48581
48582type RegisterThingOutput struct {
48583	_ struct{} `type:"structure"`
48584
48585	// The certificate data, in PEM format.
48586	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
48587
48588	// ARNs for the generated resources.
48589	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
48590}
48591
48592// String returns the string representation
48593func (s RegisterThingOutput) String() string {
48594	return awsutil.Prettify(s)
48595}
48596
48597// GoString returns the string representation
48598func (s RegisterThingOutput) GoString() string {
48599	return s.String()
48600}
48601
48602// SetCertificatePem sets the CertificatePem field's value.
48603func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
48604	s.CertificatePem = &v
48605	return s
48606}
48607
48608// SetResourceArns sets the ResourceArns field's value.
48609func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
48610	s.ResourceArns = v
48611	return s
48612}
48613
48614// The registration code is invalid.
48615type RegistrationCodeValidationException struct {
48616	_            struct{}                  `type:"structure"`
48617	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
48618
48619	// Additional information about the exception.
48620	Message_ *string `locationName:"message" type:"string"`
48621}
48622
48623// String returns the string representation
48624func (s RegistrationCodeValidationException) String() string {
48625	return awsutil.Prettify(s)
48626}
48627
48628// GoString returns the string representation
48629func (s RegistrationCodeValidationException) GoString() string {
48630	return s.String()
48631}
48632
48633func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
48634	return &RegistrationCodeValidationException{
48635		RespMetadata: v,
48636	}
48637}
48638
48639// Code returns the exception type name.
48640func (s *RegistrationCodeValidationException) Code() string {
48641	return "RegistrationCodeValidationException"
48642}
48643
48644// Message returns the exception's message.
48645func (s *RegistrationCodeValidationException) Message() string {
48646	if s.Message_ != nil {
48647		return *s.Message_
48648	}
48649	return ""
48650}
48651
48652// OrigErr always returns nil, satisfies awserr.Error interface.
48653func (s *RegistrationCodeValidationException) OrigErr() error {
48654	return nil
48655}
48656
48657func (s *RegistrationCodeValidationException) Error() string {
48658	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
48659}
48660
48661// Status code returns the HTTP status code for the request's response error.
48662func (s *RegistrationCodeValidationException) StatusCode() int {
48663	return s.RespMetadata.StatusCode
48664}
48665
48666// RequestID returns the service's response RequestID for request.
48667func (s *RegistrationCodeValidationException) RequestID() string {
48668	return s.RespMetadata.RequestID
48669}
48670
48671// The registration configuration.
48672type RegistrationConfig struct {
48673	_ struct{} `type:"structure"`
48674
48675	// The ARN of the role.
48676	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
48677
48678	// The template body.
48679	TemplateBody *string `locationName:"templateBody" type:"string"`
48680}
48681
48682// String returns the string representation
48683func (s RegistrationConfig) String() string {
48684	return awsutil.Prettify(s)
48685}
48686
48687// GoString returns the string representation
48688func (s RegistrationConfig) GoString() string {
48689	return s.String()
48690}
48691
48692// Validate inspects the fields of the type to determine if they are valid.
48693func (s *RegistrationConfig) Validate() error {
48694	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
48695	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
48696		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
48697	}
48698
48699	if invalidParams.Len() > 0 {
48700		return invalidParams
48701	}
48702	return nil
48703}
48704
48705// SetRoleArn sets the RoleArn field's value.
48706func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
48707	s.RoleArn = &v
48708	return s
48709}
48710
48711// SetTemplateBody sets the TemplateBody field's value.
48712func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
48713	s.TemplateBody = &v
48714	return s
48715}
48716
48717// The input for the RejectCertificateTransfer operation.
48718type RejectCertificateTransferInput struct {
48719	_ struct{} `type:"structure"`
48720
48721	// The ID of the certificate. (The last part of the certificate ARN contains
48722	// the certificate ID.)
48723	//
48724	// CertificateId is a required field
48725	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
48726
48727	// The reason the certificate transfer was rejected.
48728	RejectReason *string `locationName:"rejectReason" type:"string"`
48729}
48730
48731// String returns the string representation
48732func (s RejectCertificateTransferInput) String() string {
48733	return awsutil.Prettify(s)
48734}
48735
48736// GoString returns the string representation
48737func (s RejectCertificateTransferInput) GoString() string {
48738	return s.String()
48739}
48740
48741// Validate inspects the fields of the type to determine if they are valid.
48742func (s *RejectCertificateTransferInput) Validate() error {
48743	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
48744	if s.CertificateId == nil {
48745		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
48746	}
48747	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
48748		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
48749	}
48750
48751	if invalidParams.Len() > 0 {
48752		return invalidParams
48753	}
48754	return nil
48755}
48756
48757// SetCertificateId sets the CertificateId field's value.
48758func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
48759	s.CertificateId = &v
48760	return s
48761}
48762
48763// SetRejectReason sets the RejectReason field's value.
48764func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
48765	s.RejectReason = &v
48766	return s
48767}
48768
48769type RejectCertificateTransferOutput struct {
48770	_ struct{} `type:"structure"`
48771}
48772
48773// String returns the string representation
48774func (s RejectCertificateTransferOutput) String() string {
48775	return awsutil.Prettify(s)
48776}
48777
48778// GoString returns the string representation
48779func (s RejectCertificateTransferOutput) GoString() string {
48780	return s.String()
48781}
48782
48783// Information about a related resource.
48784type RelatedResource struct {
48785	_ struct{} `type:"structure"`
48786
48787	// Other information about the resource.
48788	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
48789
48790	// Information that identifies the resource.
48791	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
48792
48793	// The type of resource.
48794	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
48795}
48796
48797// String returns the string representation
48798func (s RelatedResource) String() string {
48799	return awsutil.Prettify(s)
48800}
48801
48802// GoString returns the string representation
48803func (s RelatedResource) GoString() string {
48804	return s.String()
48805}
48806
48807// SetAdditionalInfo sets the AdditionalInfo field's value.
48808func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
48809	s.AdditionalInfo = v
48810	return s
48811}
48812
48813// SetResourceIdentifier sets the ResourceIdentifier field's value.
48814func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
48815	s.ResourceIdentifier = v
48816	return s
48817}
48818
48819// SetResourceType sets the ResourceType field's value.
48820func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
48821	s.ResourceType = &v
48822	return s
48823}
48824
48825type RemoveThingFromBillingGroupInput struct {
48826	_ struct{} `type:"structure"`
48827
48828	// The ARN of the billing group.
48829	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
48830
48831	// The name of the billing group.
48832	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
48833
48834	// The ARN of the thing to be removed from the billing group.
48835	ThingArn *string `locationName:"thingArn" type:"string"`
48836
48837	// The name of the thing to be removed from the billing group.
48838	ThingName *string `locationName:"thingName" min:"1" type:"string"`
48839}
48840
48841// String returns the string representation
48842func (s RemoveThingFromBillingGroupInput) String() string {
48843	return awsutil.Prettify(s)
48844}
48845
48846// GoString returns the string representation
48847func (s RemoveThingFromBillingGroupInput) GoString() string {
48848	return s.String()
48849}
48850
48851// Validate inspects the fields of the type to determine if they are valid.
48852func (s *RemoveThingFromBillingGroupInput) Validate() error {
48853	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
48854	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
48855		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
48856	}
48857	if s.ThingName != nil && len(*s.ThingName) < 1 {
48858		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48859	}
48860
48861	if invalidParams.Len() > 0 {
48862		return invalidParams
48863	}
48864	return nil
48865}
48866
48867// SetBillingGroupArn sets the BillingGroupArn field's value.
48868func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
48869	s.BillingGroupArn = &v
48870	return s
48871}
48872
48873// SetBillingGroupName sets the BillingGroupName field's value.
48874func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
48875	s.BillingGroupName = &v
48876	return s
48877}
48878
48879// SetThingArn sets the ThingArn field's value.
48880func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
48881	s.ThingArn = &v
48882	return s
48883}
48884
48885// SetThingName sets the ThingName field's value.
48886func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
48887	s.ThingName = &v
48888	return s
48889}
48890
48891type RemoveThingFromBillingGroupOutput struct {
48892	_ struct{} `type:"structure"`
48893}
48894
48895// String returns the string representation
48896func (s RemoveThingFromBillingGroupOutput) String() string {
48897	return awsutil.Prettify(s)
48898}
48899
48900// GoString returns the string representation
48901func (s RemoveThingFromBillingGroupOutput) GoString() string {
48902	return s.String()
48903}
48904
48905type RemoveThingFromThingGroupInput struct {
48906	_ struct{} `type:"structure"`
48907
48908	// The ARN of the thing to remove from the group.
48909	ThingArn *string `locationName:"thingArn" type:"string"`
48910
48911	// The group ARN.
48912	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
48913
48914	// The group name.
48915	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
48916
48917	// The name of the thing to remove from the group.
48918	ThingName *string `locationName:"thingName" min:"1" type:"string"`
48919}
48920
48921// String returns the string representation
48922func (s RemoveThingFromThingGroupInput) String() string {
48923	return awsutil.Prettify(s)
48924}
48925
48926// GoString returns the string representation
48927func (s RemoveThingFromThingGroupInput) GoString() string {
48928	return s.String()
48929}
48930
48931// Validate inspects the fields of the type to determine if they are valid.
48932func (s *RemoveThingFromThingGroupInput) Validate() error {
48933	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
48934	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
48935		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
48936	}
48937	if s.ThingName != nil && len(*s.ThingName) < 1 {
48938		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48939	}
48940
48941	if invalidParams.Len() > 0 {
48942		return invalidParams
48943	}
48944	return nil
48945}
48946
48947// SetThingArn sets the ThingArn field's value.
48948func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
48949	s.ThingArn = &v
48950	return s
48951}
48952
48953// SetThingGroupArn sets the ThingGroupArn field's value.
48954func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
48955	s.ThingGroupArn = &v
48956	return s
48957}
48958
48959// SetThingGroupName sets the ThingGroupName field's value.
48960func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
48961	s.ThingGroupName = &v
48962	return s
48963}
48964
48965// SetThingName sets the ThingName field's value.
48966func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
48967	s.ThingName = &v
48968	return s
48969}
48970
48971type RemoveThingFromThingGroupOutput struct {
48972	_ struct{} `type:"structure"`
48973}
48974
48975// String returns the string representation
48976func (s RemoveThingFromThingGroupOutput) String() string {
48977	return awsutil.Prettify(s)
48978}
48979
48980// GoString returns the string representation
48981func (s RemoveThingFromThingGroupOutput) GoString() string {
48982	return s.String()
48983}
48984
48985// Parameters to define a mitigation action that adds a blank policy to restrict
48986// permissions.
48987type ReplaceDefaultPolicyVersionParams struct {
48988	_ struct{} `type:"structure"`
48989
48990	// The name of the template to be applied. The only supported value is BLANK_POLICY.
48991	//
48992	// TemplateName is a required field
48993	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
48994}
48995
48996// String returns the string representation
48997func (s ReplaceDefaultPolicyVersionParams) String() string {
48998	return awsutil.Prettify(s)
48999}
49000
49001// GoString returns the string representation
49002func (s ReplaceDefaultPolicyVersionParams) GoString() string {
49003	return s.String()
49004}
49005
49006// Validate inspects the fields of the type to determine if they are valid.
49007func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
49008	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
49009	if s.TemplateName == nil {
49010		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
49011	}
49012
49013	if invalidParams.Len() > 0 {
49014		return invalidParams
49015	}
49016	return nil
49017}
49018
49019// SetTemplateName sets the TemplateName field's value.
49020func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
49021	s.TemplateName = &v
49022	return s
49023}
49024
49025// The input for the ReplaceTopicRule operation.
49026type ReplaceTopicRuleInput struct {
49027	_ struct{} `type:"structure" payload:"TopicRulePayload"`
49028
49029	// The name of the rule.
49030	//
49031	// RuleName is a required field
49032	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
49033
49034	// The rule payload.
49035	//
49036	// TopicRulePayload is a required field
49037	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
49038}
49039
49040// String returns the string representation
49041func (s ReplaceTopicRuleInput) String() string {
49042	return awsutil.Prettify(s)
49043}
49044
49045// GoString returns the string representation
49046func (s ReplaceTopicRuleInput) GoString() string {
49047	return s.String()
49048}
49049
49050// Validate inspects the fields of the type to determine if they are valid.
49051func (s *ReplaceTopicRuleInput) Validate() error {
49052	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
49053	if s.RuleName == nil {
49054		invalidParams.Add(request.NewErrParamRequired("RuleName"))
49055	}
49056	if s.RuleName != nil && len(*s.RuleName) < 1 {
49057		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
49058	}
49059	if s.TopicRulePayload == nil {
49060		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
49061	}
49062	if s.TopicRulePayload != nil {
49063		if err := s.TopicRulePayload.Validate(); err != nil {
49064			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
49065		}
49066	}
49067
49068	if invalidParams.Len() > 0 {
49069		return invalidParams
49070	}
49071	return nil
49072}
49073
49074// SetRuleName sets the RuleName field's value.
49075func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
49076	s.RuleName = &v
49077	return s
49078}
49079
49080// SetTopicRulePayload sets the TopicRulePayload field's value.
49081func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
49082	s.TopicRulePayload = v
49083	return s
49084}
49085
49086type ReplaceTopicRuleOutput struct {
49087	_ struct{} `type:"structure"`
49088}
49089
49090// String returns the string representation
49091func (s ReplaceTopicRuleOutput) String() string {
49092	return awsutil.Prettify(s)
49093}
49094
49095// GoString returns the string representation
49096func (s ReplaceTopicRuleOutput) GoString() string {
49097	return s.String()
49098}
49099
49100// Describes an action to republish to another topic.
49101type RepublishAction struct {
49102	_ struct{} `type:"structure"`
49103
49104	// The Quality of Service (QoS) level to use when republishing messages. The
49105	// default value is 0.
49106	Qos *int64 `locationName:"qos" type:"integer"`
49107
49108	// The ARN of the IAM role that grants access.
49109	//
49110	// RoleArn is a required field
49111	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
49112
49113	// The name of the MQTT topic.
49114	//
49115	// Topic is a required field
49116	Topic *string `locationName:"topic" type:"string" required:"true"`
49117}
49118
49119// String returns the string representation
49120func (s RepublishAction) String() string {
49121	return awsutil.Prettify(s)
49122}
49123
49124// GoString returns the string representation
49125func (s RepublishAction) GoString() string {
49126	return s.String()
49127}
49128
49129// Validate inspects the fields of the type to determine if they are valid.
49130func (s *RepublishAction) Validate() error {
49131	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
49132	if s.RoleArn == nil {
49133		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
49134	}
49135	if s.Topic == nil {
49136		invalidParams.Add(request.NewErrParamRequired("Topic"))
49137	}
49138
49139	if invalidParams.Len() > 0 {
49140		return invalidParams
49141	}
49142	return nil
49143}
49144
49145// SetQos sets the Qos field's value.
49146func (s *RepublishAction) SetQos(v int64) *RepublishAction {
49147	s.Qos = &v
49148	return s
49149}
49150
49151// SetRoleArn sets the RoleArn field's value.
49152func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
49153	s.RoleArn = &v
49154	return s
49155}
49156
49157// SetTopic sets the Topic field's value.
49158func (s *RepublishAction) SetTopic(v string) *RepublishAction {
49159	s.Topic = &v
49160	return s
49161}
49162
49163// The resource already exists.
49164type ResourceAlreadyExistsException struct {
49165	_            struct{}                  `type:"structure"`
49166	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49167
49168	// The message for the exception.
49169	Message_ *string `locationName:"message" type:"string"`
49170
49171	// The ARN of the resource that caused the exception.
49172	ResourceArn *string `locationName:"resourceArn" type:"string"`
49173
49174	// The ID of the resource that caused the exception.
49175	ResourceId *string `locationName:"resourceId" type:"string"`
49176}
49177
49178// String returns the string representation
49179func (s ResourceAlreadyExistsException) String() string {
49180	return awsutil.Prettify(s)
49181}
49182
49183// GoString returns the string representation
49184func (s ResourceAlreadyExistsException) GoString() string {
49185	return s.String()
49186}
49187
49188func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
49189	return &ResourceAlreadyExistsException{
49190		RespMetadata: v,
49191	}
49192}
49193
49194// Code returns the exception type name.
49195func (s *ResourceAlreadyExistsException) Code() string {
49196	return "ResourceAlreadyExistsException"
49197}
49198
49199// Message returns the exception's message.
49200func (s *ResourceAlreadyExistsException) Message() string {
49201	if s.Message_ != nil {
49202		return *s.Message_
49203	}
49204	return ""
49205}
49206
49207// OrigErr always returns nil, satisfies awserr.Error interface.
49208func (s *ResourceAlreadyExistsException) OrigErr() error {
49209	return nil
49210}
49211
49212func (s *ResourceAlreadyExistsException) Error() string {
49213	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
49214}
49215
49216// Status code returns the HTTP status code for the request's response error.
49217func (s *ResourceAlreadyExistsException) StatusCode() int {
49218	return s.RespMetadata.StatusCode
49219}
49220
49221// RequestID returns the service's response RequestID for request.
49222func (s *ResourceAlreadyExistsException) RequestID() string {
49223	return s.RespMetadata.RequestID
49224}
49225
49226// Information that identifies the noncompliant resource.
49227type ResourceIdentifier struct {
49228	_ struct{} `type:"structure"`
49229
49230	// The account with which the resource is associated.
49231	Account *string `locationName:"account" min:"12" type:"string"`
49232
49233	// The ID of the CA certificate used to authorize the certificate.
49234	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
49235
49236	// The client ID.
49237	ClientId *string `locationName:"clientId" type:"string"`
49238
49239	// The ID of the Amazon Cognito identity pool.
49240	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
49241
49242	// The ID of the certificate attached to the resource.
49243	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
49244
49245	// The ARN of the IAM role that has overly permissive actions.
49246	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
49247
49248	// The version of the policy associated with the resource.
49249	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
49250
49251	// The ARN of the role alias that has overly permissive actions.
49252	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
49253}
49254
49255// String returns the string representation
49256func (s ResourceIdentifier) String() string {
49257	return awsutil.Prettify(s)
49258}
49259
49260// GoString returns the string representation
49261func (s ResourceIdentifier) GoString() string {
49262	return s.String()
49263}
49264
49265// Validate inspects the fields of the type to determine if they are valid.
49266func (s *ResourceIdentifier) Validate() error {
49267	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
49268	if s.Account != nil && len(*s.Account) < 12 {
49269		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
49270	}
49271	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
49272		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
49273	}
49274	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
49275		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
49276	}
49277	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
49278		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
49279	}
49280	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
49281		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
49282	}
49283	if s.PolicyVersionIdentifier != nil {
49284		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
49285			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
49286		}
49287	}
49288
49289	if invalidParams.Len() > 0 {
49290		return invalidParams
49291	}
49292	return nil
49293}
49294
49295// SetAccount sets the Account field's value.
49296func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
49297	s.Account = &v
49298	return s
49299}
49300
49301// SetCaCertificateId sets the CaCertificateId field's value.
49302func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
49303	s.CaCertificateId = &v
49304	return s
49305}
49306
49307// SetClientId sets the ClientId field's value.
49308func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
49309	s.ClientId = &v
49310	return s
49311}
49312
49313// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
49314func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
49315	s.CognitoIdentityPoolId = &v
49316	return s
49317}
49318
49319// SetDeviceCertificateId sets the DeviceCertificateId field's value.
49320func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
49321	s.DeviceCertificateId = &v
49322	return s
49323}
49324
49325// SetIamRoleArn sets the IamRoleArn field's value.
49326func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
49327	s.IamRoleArn = &v
49328	return s
49329}
49330
49331// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
49332func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
49333	s.PolicyVersionIdentifier = v
49334	return s
49335}
49336
49337// SetRoleAliasArn sets the RoleAliasArn field's value.
49338func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
49339	s.RoleAliasArn = &v
49340	return s
49341}
49342
49343// The specified resource does not exist.
49344type ResourceNotFoundException struct {
49345	_            struct{}                  `type:"structure"`
49346	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49347
49348	// The message for the exception.
49349	Message_ *string `locationName:"message" type:"string"`
49350}
49351
49352// String returns the string representation
49353func (s ResourceNotFoundException) String() string {
49354	return awsutil.Prettify(s)
49355}
49356
49357// GoString returns the string representation
49358func (s ResourceNotFoundException) GoString() string {
49359	return s.String()
49360}
49361
49362func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
49363	return &ResourceNotFoundException{
49364		RespMetadata: v,
49365	}
49366}
49367
49368// Code returns the exception type name.
49369func (s *ResourceNotFoundException) Code() string {
49370	return "ResourceNotFoundException"
49371}
49372
49373// Message returns the exception's message.
49374func (s *ResourceNotFoundException) Message() string {
49375	if s.Message_ != nil {
49376		return *s.Message_
49377	}
49378	return ""
49379}
49380
49381// OrigErr always returns nil, satisfies awserr.Error interface.
49382func (s *ResourceNotFoundException) OrigErr() error {
49383	return nil
49384}
49385
49386func (s *ResourceNotFoundException) Error() string {
49387	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49388}
49389
49390// Status code returns the HTTP status code for the request's response error.
49391func (s *ResourceNotFoundException) StatusCode() int {
49392	return s.RespMetadata.StatusCode
49393}
49394
49395// RequestID returns the service's response RequestID for request.
49396func (s *ResourceNotFoundException) RequestID() string {
49397	return s.RespMetadata.RequestID
49398}
49399
49400// The resource registration failed.
49401type ResourceRegistrationFailureException struct {
49402	_            struct{}                  `type:"structure"`
49403	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49404
49405	// The message for the exception.
49406	Message_ *string `locationName:"message" type:"string"`
49407}
49408
49409// String returns the string representation
49410func (s ResourceRegistrationFailureException) String() string {
49411	return awsutil.Prettify(s)
49412}
49413
49414// GoString returns the string representation
49415func (s ResourceRegistrationFailureException) GoString() string {
49416	return s.String()
49417}
49418
49419func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
49420	return &ResourceRegistrationFailureException{
49421		RespMetadata: v,
49422	}
49423}
49424
49425// Code returns the exception type name.
49426func (s *ResourceRegistrationFailureException) Code() string {
49427	return "ResourceRegistrationFailureException"
49428}
49429
49430// Message returns the exception's message.
49431func (s *ResourceRegistrationFailureException) Message() string {
49432	if s.Message_ != nil {
49433		return *s.Message_
49434	}
49435	return ""
49436}
49437
49438// OrigErr always returns nil, satisfies awserr.Error interface.
49439func (s *ResourceRegistrationFailureException) OrigErr() error {
49440	return nil
49441}
49442
49443func (s *ResourceRegistrationFailureException) Error() string {
49444	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49445}
49446
49447// Status code returns the HTTP status code for the request's response error.
49448func (s *ResourceRegistrationFailureException) StatusCode() int {
49449	return s.RespMetadata.StatusCode
49450}
49451
49452// RequestID returns the service's response RequestID for request.
49453func (s *ResourceRegistrationFailureException) RequestID() string {
49454	return s.RespMetadata.RequestID
49455}
49456
49457// Role alias description.
49458type RoleAliasDescription struct {
49459	_ struct{} `type:"structure"`
49460
49461	// The UNIX timestamp of when the role alias was created.
49462	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
49463
49464	// The number of seconds for which the credential is valid.
49465	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
49466
49467	// The UNIX timestamp of when the role alias was last modified.
49468	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
49469
49470	// The role alias owner.
49471	Owner *string `locationName:"owner" min:"12" type:"string"`
49472
49473	// The role alias.
49474	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
49475
49476	// The ARN of the role alias.
49477	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
49478
49479	// The role ARN.
49480	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
49481}
49482
49483// String returns the string representation
49484func (s RoleAliasDescription) String() string {
49485	return awsutil.Prettify(s)
49486}
49487
49488// GoString returns the string representation
49489func (s RoleAliasDescription) GoString() string {
49490	return s.String()
49491}
49492
49493// SetCreationDate sets the CreationDate field's value.
49494func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
49495	s.CreationDate = &v
49496	return s
49497}
49498
49499// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
49500func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
49501	s.CredentialDurationSeconds = &v
49502	return s
49503}
49504
49505// SetLastModifiedDate sets the LastModifiedDate field's value.
49506func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
49507	s.LastModifiedDate = &v
49508	return s
49509}
49510
49511// SetOwner sets the Owner field's value.
49512func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
49513	s.Owner = &v
49514	return s
49515}
49516
49517// SetRoleAlias sets the RoleAlias field's value.
49518func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
49519	s.RoleAlias = &v
49520	return s
49521}
49522
49523// SetRoleAliasArn sets the RoleAliasArn field's value.
49524func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
49525	s.RoleAliasArn = &v
49526	return s
49527}
49528
49529// SetRoleArn sets the RoleArn field's value.
49530func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
49531	s.RoleArn = &v
49532	return s
49533}
49534
49535// Describes an action to write data to an Amazon S3 bucket.
49536type S3Action struct {
49537	_ struct{} `type:"structure"`
49538
49539	// The Amazon S3 bucket.
49540	//
49541	// BucketName is a required field
49542	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
49543
49544	// The Amazon S3 canned ACL that controls access to the object identified by
49545	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
49546	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
49547
49548	// The object key. For more information, see Actions, resources, and condition
49549	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
49550	//
49551	// Key is a required field
49552	Key *string `locationName:"key" type:"string" required:"true"`
49553
49554	// The ARN of the IAM role that grants access.
49555	//
49556	// RoleArn is a required field
49557	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
49558}
49559
49560// String returns the string representation
49561func (s S3Action) String() string {
49562	return awsutil.Prettify(s)
49563}
49564
49565// GoString returns the string representation
49566func (s S3Action) GoString() string {
49567	return s.String()
49568}
49569
49570// Validate inspects the fields of the type to determine if they are valid.
49571func (s *S3Action) Validate() error {
49572	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
49573	if s.BucketName == nil {
49574		invalidParams.Add(request.NewErrParamRequired("BucketName"))
49575	}
49576	if s.Key == nil {
49577		invalidParams.Add(request.NewErrParamRequired("Key"))
49578	}
49579	if s.RoleArn == nil {
49580		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
49581	}
49582
49583	if invalidParams.Len() > 0 {
49584		return invalidParams
49585	}
49586	return nil
49587}
49588
49589// SetBucketName sets the BucketName field's value.
49590func (s *S3Action) SetBucketName(v string) *S3Action {
49591	s.BucketName = &v
49592	return s
49593}
49594
49595// SetCannedAcl sets the CannedAcl field's value.
49596func (s *S3Action) SetCannedAcl(v string) *S3Action {
49597	s.CannedAcl = &v
49598	return s
49599}
49600
49601// SetKey sets the Key field's value.
49602func (s *S3Action) SetKey(v string) *S3Action {
49603	s.Key = &v
49604	return s
49605}
49606
49607// SetRoleArn sets the RoleArn field's value.
49608func (s *S3Action) SetRoleArn(v string) *S3Action {
49609	s.RoleArn = &v
49610	return s
49611}
49612
49613// Describes the location of updated firmware in S3.
49614type S3Destination struct {
49615	_ struct{} `type:"structure"`
49616
49617	// The S3 bucket that contains the updated firmware.
49618	Bucket *string `locationName:"bucket" min:"1" type:"string"`
49619
49620	// The S3 prefix.
49621	Prefix *string `locationName:"prefix" type:"string"`
49622}
49623
49624// String returns the string representation
49625func (s S3Destination) String() string {
49626	return awsutil.Prettify(s)
49627}
49628
49629// GoString returns the string representation
49630func (s S3Destination) GoString() string {
49631	return s.String()
49632}
49633
49634// Validate inspects the fields of the type to determine if they are valid.
49635func (s *S3Destination) Validate() error {
49636	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
49637	if s.Bucket != nil && len(*s.Bucket) < 1 {
49638		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
49639	}
49640
49641	if invalidParams.Len() > 0 {
49642		return invalidParams
49643	}
49644	return nil
49645}
49646
49647// SetBucket sets the Bucket field's value.
49648func (s *S3Destination) SetBucket(v string) *S3Destination {
49649	s.Bucket = &v
49650	return s
49651}
49652
49653// SetPrefix sets the Prefix field's value.
49654func (s *S3Destination) SetPrefix(v string) *S3Destination {
49655	s.Prefix = &v
49656	return s
49657}
49658
49659// The S3 location.
49660type S3Location struct {
49661	_ struct{} `type:"structure"`
49662
49663	// The S3 bucket.
49664	Bucket *string `locationName:"bucket" min:"1" type:"string"`
49665
49666	// The S3 key.
49667	Key *string `locationName:"key" min:"1" type:"string"`
49668
49669	// The S3 bucket version.
49670	Version *string `locationName:"version" type:"string"`
49671}
49672
49673// String returns the string representation
49674func (s S3Location) String() string {
49675	return awsutil.Prettify(s)
49676}
49677
49678// GoString returns the string representation
49679func (s S3Location) GoString() string {
49680	return s.String()
49681}
49682
49683// Validate inspects the fields of the type to determine if they are valid.
49684func (s *S3Location) Validate() error {
49685	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
49686	if s.Bucket != nil && len(*s.Bucket) < 1 {
49687		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
49688	}
49689	if s.Key != nil && len(*s.Key) < 1 {
49690		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
49691	}
49692
49693	if invalidParams.Len() > 0 {
49694		return invalidParams
49695	}
49696	return nil
49697}
49698
49699// SetBucket sets the Bucket field's value.
49700func (s *S3Location) SetBucket(v string) *S3Location {
49701	s.Bucket = &v
49702	return s
49703}
49704
49705// SetKey sets the Key field's value.
49706func (s *S3Location) SetKey(v string) *S3Location {
49707	s.Key = &v
49708	return s
49709}
49710
49711// SetVersion sets the Version field's value.
49712func (s *S3Location) SetVersion(v string) *S3Location {
49713	s.Version = &v
49714	return s
49715}
49716
49717// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
49718type SalesforceAction struct {
49719	_ struct{} `type:"structure"`
49720
49721	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
49722	// The token is available from the Salesforce IoT Cloud platform after creation
49723	// of the Input Stream.
49724	//
49725	// Token is a required field
49726	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
49727
49728	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
49729	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
49730	//
49731	// Url is a required field
49732	Url *string `locationName:"url" type:"string" required:"true"`
49733}
49734
49735// String returns the string representation
49736func (s SalesforceAction) String() string {
49737	return awsutil.Prettify(s)
49738}
49739
49740// GoString returns the string representation
49741func (s SalesforceAction) GoString() string {
49742	return s.String()
49743}
49744
49745// Validate inspects the fields of the type to determine if they are valid.
49746func (s *SalesforceAction) Validate() error {
49747	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
49748	if s.Token == nil {
49749		invalidParams.Add(request.NewErrParamRequired("Token"))
49750	}
49751	if s.Token != nil && len(*s.Token) < 40 {
49752		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
49753	}
49754	if s.Url == nil {
49755		invalidParams.Add(request.NewErrParamRequired("Url"))
49756	}
49757
49758	if invalidParams.Len() > 0 {
49759		return invalidParams
49760	}
49761	return nil
49762}
49763
49764// SetToken sets the Token field's value.
49765func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
49766	s.Token = &v
49767	return s
49768}
49769
49770// SetUrl sets the Url field's value.
49771func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
49772	s.Url = &v
49773	return s
49774}
49775
49776// Information about the scheduled audit.
49777type ScheduledAuditMetadata struct {
49778	_ struct{} `type:"structure"`
49779
49780	// The day of the month on which the scheduled audit is run (if the frequency
49781	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
49782	// many days, the audit takes place on the "LAST" day of the month.
49783	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
49784
49785	// The day of the week on which the scheduled audit is run (if the frequency
49786	// is "WEEKLY" or "BIWEEKLY").
49787	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
49788
49789	// How often the scheduled audit occurs.
49790	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
49791
49792	// The ARN of the scheduled audit.
49793	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
49794
49795	// The name of the scheduled audit.
49796	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
49797}
49798
49799// String returns the string representation
49800func (s ScheduledAuditMetadata) String() string {
49801	return awsutil.Prettify(s)
49802}
49803
49804// GoString returns the string representation
49805func (s ScheduledAuditMetadata) GoString() string {
49806	return s.String()
49807}
49808
49809// SetDayOfMonth sets the DayOfMonth field's value.
49810func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
49811	s.DayOfMonth = &v
49812	return s
49813}
49814
49815// SetDayOfWeek sets the DayOfWeek field's value.
49816func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
49817	s.DayOfWeek = &v
49818	return s
49819}
49820
49821// SetFrequency sets the Frequency field's value.
49822func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
49823	s.Frequency = &v
49824	return s
49825}
49826
49827// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
49828func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
49829	s.ScheduledAuditArn = &v
49830	return s
49831}
49832
49833// SetScheduledAuditName sets the ScheduledAuditName field's value.
49834func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
49835	s.ScheduledAuditName = &v
49836	return s
49837}
49838
49839type SearchIndexInput struct {
49840	_ struct{} `type:"structure"`
49841
49842	// The search index name.
49843	IndexName *string `locationName:"indexName" min:"1" type:"string"`
49844
49845	// The maximum number of results to return at one time.
49846	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
49847
49848	// The token used to get the next set of results, or null if there are no additional
49849	// results.
49850	NextToken *string `locationName:"nextToken" type:"string"`
49851
49852	// The search query string.
49853	//
49854	// QueryString is a required field
49855	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
49856
49857	// The query version.
49858	QueryVersion *string `locationName:"queryVersion" type:"string"`
49859}
49860
49861// String returns the string representation
49862func (s SearchIndexInput) String() string {
49863	return awsutil.Prettify(s)
49864}
49865
49866// GoString returns the string representation
49867func (s SearchIndexInput) GoString() string {
49868	return s.String()
49869}
49870
49871// Validate inspects the fields of the type to determine if they are valid.
49872func (s *SearchIndexInput) Validate() error {
49873	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
49874	if s.IndexName != nil && len(*s.IndexName) < 1 {
49875		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
49876	}
49877	if s.MaxResults != nil && *s.MaxResults < 1 {
49878		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49879	}
49880	if s.QueryString == nil {
49881		invalidParams.Add(request.NewErrParamRequired("QueryString"))
49882	}
49883	if s.QueryString != nil && len(*s.QueryString) < 1 {
49884		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
49885	}
49886
49887	if invalidParams.Len() > 0 {
49888		return invalidParams
49889	}
49890	return nil
49891}
49892
49893// SetIndexName sets the IndexName field's value.
49894func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
49895	s.IndexName = &v
49896	return s
49897}
49898
49899// SetMaxResults sets the MaxResults field's value.
49900func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
49901	s.MaxResults = &v
49902	return s
49903}
49904
49905// SetNextToken sets the NextToken field's value.
49906func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
49907	s.NextToken = &v
49908	return s
49909}
49910
49911// SetQueryString sets the QueryString field's value.
49912func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
49913	s.QueryString = &v
49914	return s
49915}
49916
49917// SetQueryVersion sets the QueryVersion field's value.
49918func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
49919	s.QueryVersion = &v
49920	return s
49921}
49922
49923type SearchIndexOutput struct {
49924	_ struct{} `type:"structure"`
49925
49926	// The token used to get the next set of results, or null if there are no additional
49927	// results.
49928	NextToken *string `locationName:"nextToken" type:"string"`
49929
49930	// The thing groups that match the search query.
49931	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
49932
49933	// The things that match the search query.
49934	Things []*ThingDocument `locationName:"things" type:"list"`
49935}
49936
49937// String returns the string representation
49938func (s SearchIndexOutput) String() string {
49939	return awsutil.Prettify(s)
49940}
49941
49942// GoString returns the string representation
49943func (s SearchIndexOutput) GoString() string {
49944	return s.String()
49945}
49946
49947// SetNextToken sets the NextToken field's value.
49948func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
49949	s.NextToken = &v
49950	return s
49951}
49952
49953// SetThingGroups sets the ThingGroups field's value.
49954func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
49955	s.ThingGroups = v
49956	return s
49957}
49958
49959// SetThings sets the Things field's value.
49960func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
49961	s.Things = v
49962	return s
49963}
49964
49965// Identifying information for a Device Defender security profile.
49966type SecurityProfileIdentifier struct {
49967	_ struct{} `type:"structure"`
49968
49969	// The ARN of the security profile.
49970	//
49971	// Arn is a required field
49972	Arn *string `locationName:"arn" type:"string" required:"true"`
49973
49974	// The name you've given to the security profile.
49975	//
49976	// Name is a required field
49977	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
49978}
49979
49980// String returns the string representation
49981func (s SecurityProfileIdentifier) String() string {
49982	return awsutil.Prettify(s)
49983}
49984
49985// GoString returns the string representation
49986func (s SecurityProfileIdentifier) GoString() string {
49987	return s.String()
49988}
49989
49990// SetArn sets the Arn field's value.
49991func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
49992	s.Arn = &v
49993	return s
49994}
49995
49996// SetName sets the Name field's value.
49997func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
49998	s.Name = &v
49999	return s
50000}
50001
50002// A target to which an alert is sent when a security profile behavior is violated.
50003type SecurityProfileTarget struct {
50004	_ struct{} `type:"structure"`
50005
50006	// The ARN of the security profile.
50007	//
50008	// Arn is a required field
50009	Arn *string `locationName:"arn" type:"string" required:"true"`
50010}
50011
50012// String returns the string representation
50013func (s SecurityProfileTarget) String() string {
50014	return awsutil.Prettify(s)
50015}
50016
50017// GoString returns the string representation
50018func (s SecurityProfileTarget) GoString() string {
50019	return s.String()
50020}
50021
50022// SetArn sets the Arn field's value.
50023func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
50024	s.Arn = &v
50025	return s
50026}
50027
50028// Information about a security profile and the target associated with it.
50029type SecurityProfileTargetMapping struct {
50030	_ struct{} `type:"structure"`
50031
50032	// Information that identifies the security profile.
50033	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
50034
50035	// Information about the target (thing group) associated with the security profile.
50036	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
50037}
50038
50039// String returns the string representation
50040func (s SecurityProfileTargetMapping) String() string {
50041	return awsutil.Prettify(s)
50042}
50043
50044// GoString returns the string representation
50045func (s SecurityProfileTargetMapping) GoString() string {
50046	return s.String()
50047}
50048
50049// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
50050func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
50051	s.SecurityProfileIdentifier = v
50052	return s
50053}
50054
50055// SetTarget sets the Target field's value.
50056func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
50057	s.Target = v
50058	return s
50059}
50060
50061// An object that contains information about a server certificate.
50062type ServerCertificateSummary struct {
50063	_ struct{} `type:"structure"`
50064
50065	// The ARN of the server certificate.
50066	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
50067
50068	// The status of the server certificate.
50069	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
50070
50071	// Details that explain the status of the server certificate.
50072	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
50073}
50074
50075// String returns the string representation
50076func (s ServerCertificateSummary) String() string {
50077	return awsutil.Prettify(s)
50078}
50079
50080// GoString returns the string representation
50081func (s ServerCertificateSummary) GoString() string {
50082	return s.String()
50083}
50084
50085// SetServerCertificateArn sets the ServerCertificateArn field's value.
50086func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
50087	s.ServerCertificateArn = &v
50088	return s
50089}
50090
50091// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
50092func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
50093	s.ServerCertificateStatus = &v
50094	return s
50095}
50096
50097// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
50098func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
50099	s.ServerCertificateStatusDetail = &v
50100	return s
50101}
50102
50103// The service is temporarily unavailable.
50104type ServiceUnavailableException struct {
50105	_            struct{}                  `type:"structure"`
50106	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50107
50108	// The message for the exception.
50109	Message_ *string `locationName:"message" type:"string"`
50110}
50111
50112// String returns the string representation
50113func (s ServiceUnavailableException) String() string {
50114	return awsutil.Prettify(s)
50115}
50116
50117// GoString returns the string representation
50118func (s ServiceUnavailableException) GoString() string {
50119	return s.String()
50120}
50121
50122func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
50123	return &ServiceUnavailableException{
50124		RespMetadata: v,
50125	}
50126}
50127
50128// Code returns the exception type name.
50129func (s *ServiceUnavailableException) Code() string {
50130	return "ServiceUnavailableException"
50131}
50132
50133// Message returns the exception's message.
50134func (s *ServiceUnavailableException) Message() string {
50135	if s.Message_ != nil {
50136		return *s.Message_
50137	}
50138	return ""
50139}
50140
50141// OrigErr always returns nil, satisfies awserr.Error interface.
50142func (s *ServiceUnavailableException) OrigErr() error {
50143	return nil
50144}
50145
50146func (s *ServiceUnavailableException) Error() string {
50147	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50148}
50149
50150// Status code returns the HTTP status code for the request's response error.
50151func (s *ServiceUnavailableException) StatusCode() int {
50152	return s.RespMetadata.StatusCode
50153}
50154
50155// RequestID returns the service's response RequestID for request.
50156func (s *ServiceUnavailableException) RequestID() string {
50157	return s.RespMetadata.RequestID
50158}
50159
50160type SetDefaultAuthorizerInput struct {
50161	_ struct{} `type:"structure"`
50162
50163	// The authorizer name.
50164	//
50165	// AuthorizerName is a required field
50166	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
50167}
50168
50169// String returns the string representation
50170func (s SetDefaultAuthorizerInput) String() string {
50171	return awsutil.Prettify(s)
50172}
50173
50174// GoString returns the string representation
50175func (s SetDefaultAuthorizerInput) GoString() string {
50176	return s.String()
50177}
50178
50179// Validate inspects the fields of the type to determine if they are valid.
50180func (s *SetDefaultAuthorizerInput) Validate() error {
50181	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
50182	if s.AuthorizerName == nil {
50183		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
50184	}
50185	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
50186		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
50187	}
50188
50189	if invalidParams.Len() > 0 {
50190		return invalidParams
50191	}
50192	return nil
50193}
50194
50195// SetAuthorizerName sets the AuthorizerName field's value.
50196func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
50197	s.AuthorizerName = &v
50198	return s
50199}
50200
50201type SetDefaultAuthorizerOutput struct {
50202	_ struct{} `type:"structure"`
50203
50204	// The authorizer ARN.
50205	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
50206
50207	// The authorizer name.
50208	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
50209}
50210
50211// String returns the string representation
50212func (s SetDefaultAuthorizerOutput) String() string {
50213	return awsutil.Prettify(s)
50214}
50215
50216// GoString returns the string representation
50217func (s SetDefaultAuthorizerOutput) GoString() string {
50218	return s.String()
50219}
50220
50221// SetAuthorizerArn sets the AuthorizerArn field's value.
50222func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
50223	s.AuthorizerArn = &v
50224	return s
50225}
50226
50227// SetAuthorizerName sets the AuthorizerName field's value.
50228func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
50229	s.AuthorizerName = &v
50230	return s
50231}
50232
50233// The input for the SetDefaultPolicyVersion operation.
50234type SetDefaultPolicyVersionInput struct {
50235	_ struct{} `type:"structure"`
50236
50237	// The policy name.
50238	//
50239	// PolicyName is a required field
50240	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
50241
50242	// The policy version ID.
50243	//
50244	// PolicyVersionId is a required field
50245	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
50246}
50247
50248// String returns the string representation
50249func (s SetDefaultPolicyVersionInput) String() string {
50250	return awsutil.Prettify(s)
50251}
50252
50253// GoString returns the string representation
50254func (s SetDefaultPolicyVersionInput) GoString() string {
50255	return s.String()
50256}
50257
50258// Validate inspects the fields of the type to determine if they are valid.
50259func (s *SetDefaultPolicyVersionInput) Validate() error {
50260	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
50261	if s.PolicyName == nil {
50262		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
50263	}
50264	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
50265		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
50266	}
50267	if s.PolicyVersionId == nil {
50268		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
50269	}
50270	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
50271		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
50272	}
50273
50274	if invalidParams.Len() > 0 {
50275		return invalidParams
50276	}
50277	return nil
50278}
50279
50280// SetPolicyName sets the PolicyName field's value.
50281func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
50282	s.PolicyName = &v
50283	return s
50284}
50285
50286// SetPolicyVersionId sets the PolicyVersionId field's value.
50287func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
50288	s.PolicyVersionId = &v
50289	return s
50290}
50291
50292type SetDefaultPolicyVersionOutput struct {
50293	_ struct{} `type:"structure"`
50294}
50295
50296// String returns the string representation
50297func (s SetDefaultPolicyVersionOutput) String() string {
50298	return awsutil.Prettify(s)
50299}
50300
50301// GoString returns the string representation
50302func (s SetDefaultPolicyVersionOutput) GoString() string {
50303	return s.String()
50304}
50305
50306// The input for the SetLoggingOptions operation.
50307type SetLoggingOptionsInput struct {
50308	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
50309
50310	// The logging options payload.
50311	//
50312	// LoggingOptionsPayload is a required field
50313	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
50314}
50315
50316// String returns the string representation
50317func (s SetLoggingOptionsInput) String() string {
50318	return awsutil.Prettify(s)
50319}
50320
50321// GoString returns the string representation
50322func (s SetLoggingOptionsInput) GoString() string {
50323	return s.String()
50324}
50325
50326// Validate inspects the fields of the type to determine if they are valid.
50327func (s *SetLoggingOptionsInput) Validate() error {
50328	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
50329	if s.LoggingOptionsPayload == nil {
50330		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
50331	}
50332	if s.LoggingOptionsPayload != nil {
50333		if err := s.LoggingOptionsPayload.Validate(); err != nil {
50334			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
50335		}
50336	}
50337
50338	if invalidParams.Len() > 0 {
50339		return invalidParams
50340	}
50341	return nil
50342}
50343
50344// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
50345func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
50346	s.LoggingOptionsPayload = v
50347	return s
50348}
50349
50350type SetLoggingOptionsOutput struct {
50351	_ struct{} `type:"structure"`
50352}
50353
50354// String returns the string representation
50355func (s SetLoggingOptionsOutput) String() string {
50356	return awsutil.Prettify(s)
50357}
50358
50359// GoString returns the string representation
50360func (s SetLoggingOptionsOutput) GoString() string {
50361	return s.String()
50362}
50363
50364type SetV2LoggingLevelInput struct {
50365	_ struct{} `type:"structure"`
50366
50367	// The log level.
50368	//
50369	// LogLevel is a required field
50370	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
50371
50372	// The log target.
50373	//
50374	// LogTarget is a required field
50375	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
50376}
50377
50378// String returns the string representation
50379func (s SetV2LoggingLevelInput) String() string {
50380	return awsutil.Prettify(s)
50381}
50382
50383// GoString returns the string representation
50384func (s SetV2LoggingLevelInput) GoString() string {
50385	return s.String()
50386}
50387
50388// Validate inspects the fields of the type to determine if they are valid.
50389func (s *SetV2LoggingLevelInput) Validate() error {
50390	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
50391	if s.LogLevel == nil {
50392		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
50393	}
50394	if s.LogTarget == nil {
50395		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
50396	}
50397	if s.LogTarget != nil {
50398		if err := s.LogTarget.Validate(); err != nil {
50399			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
50400		}
50401	}
50402
50403	if invalidParams.Len() > 0 {
50404		return invalidParams
50405	}
50406	return nil
50407}
50408
50409// SetLogLevel sets the LogLevel field's value.
50410func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
50411	s.LogLevel = &v
50412	return s
50413}
50414
50415// SetLogTarget sets the LogTarget field's value.
50416func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
50417	s.LogTarget = v
50418	return s
50419}
50420
50421type SetV2LoggingLevelOutput struct {
50422	_ struct{} `type:"structure"`
50423}
50424
50425// String returns the string representation
50426func (s SetV2LoggingLevelOutput) String() string {
50427	return awsutil.Prettify(s)
50428}
50429
50430// GoString returns the string representation
50431func (s SetV2LoggingLevelOutput) GoString() string {
50432	return s.String()
50433}
50434
50435type SetV2LoggingOptionsInput struct {
50436	_ struct{} `type:"structure"`
50437
50438	// The default logging level.
50439	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
50440
50441	// If true all logs are disabled. The default is false.
50442	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
50443
50444	// The ARN of the role that allows IoT to write to Cloudwatch logs.
50445	RoleArn *string `locationName:"roleArn" type:"string"`
50446}
50447
50448// String returns the string representation
50449func (s SetV2LoggingOptionsInput) String() string {
50450	return awsutil.Prettify(s)
50451}
50452
50453// GoString returns the string representation
50454func (s SetV2LoggingOptionsInput) GoString() string {
50455	return s.String()
50456}
50457
50458// SetDefaultLogLevel sets the DefaultLogLevel field's value.
50459func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
50460	s.DefaultLogLevel = &v
50461	return s
50462}
50463
50464// SetDisableAllLogs sets the DisableAllLogs field's value.
50465func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
50466	s.DisableAllLogs = &v
50467	return s
50468}
50469
50470// SetRoleArn sets the RoleArn field's value.
50471func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
50472	s.RoleArn = &v
50473	return s
50474}
50475
50476type SetV2LoggingOptionsOutput struct {
50477	_ struct{} `type:"structure"`
50478}
50479
50480// String returns the string representation
50481func (s SetV2LoggingOptionsOutput) String() string {
50482	return awsutil.Prettify(s)
50483}
50484
50485// GoString returns the string representation
50486func (s SetV2LoggingOptionsOutput) GoString() string {
50487	return s.String()
50488}
50489
50490// For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
50491type SigV4Authorization struct {
50492	_ struct{} `type:"structure"`
50493
50494	// The ARN of the signing role.
50495	//
50496	// RoleArn is a required field
50497	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50498
50499	// The service name to use while signing with Sig V4.
50500	//
50501	// ServiceName is a required field
50502	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
50503
50504	// The signing region.
50505	//
50506	// SigningRegion is a required field
50507	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
50508}
50509
50510// String returns the string representation
50511func (s SigV4Authorization) String() string {
50512	return awsutil.Prettify(s)
50513}
50514
50515// GoString returns the string representation
50516func (s SigV4Authorization) GoString() string {
50517	return s.String()
50518}
50519
50520// Validate inspects the fields of the type to determine if they are valid.
50521func (s *SigV4Authorization) Validate() error {
50522	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
50523	if s.RoleArn == nil {
50524		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50525	}
50526	if s.ServiceName == nil {
50527		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
50528	}
50529	if s.SigningRegion == nil {
50530		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
50531	}
50532
50533	if invalidParams.Len() > 0 {
50534		return invalidParams
50535	}
50536	return nil
50537}
50538
50539// SetRoleArn sets the RoleArn field's value.
50540func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
50541	s.RoleArn = &v
50542	return s
50543}
50544
50545// SetServiceName sets the ServiceName field's value.
50546func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
50547	s.ServiceName = &v
50548	return s
50549}
50550
50551// SetSigningRegion sets the SigningRegion field's value.
50552func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
50553	s.SigningRegion = &v
50554	return s
50555}
50556
50557// Describes the code-signing profile.
50558type SigningProfileParameter struct {
50559	_ struct{} `type:"structure"`
50560
50561	// Certificate ARN.
50562	CertificateArn *string `locationName:"certificateArn" type:"string"`
50563
50564	// The location of the code-signing certificate on your device.
50565	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
50566
50567	// The hardware platform of your device.
50568	Platform *string `locationName:"platform" type:"string"`
50569}
50570
50571// String returns the string representation
50572func (s SigningProfileParameter) String() string {
50573	return awsutil.Prettify(s)
50574}
50575
50576// GoString returns the string representation
50577func (s SigningProfileParameter) GoString() string {
50578	return s.String()
50579}
50580
50581// SetCertificateArn sets the CertificateArn field's value.
50582func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
50583	s.CertificateArn = &v
50584	return s
50585}
50586
50587// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
50588func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
50589	s.CertificatePathOnDevice = &v
50590	return s
50591}
50592
50593// SetPlatform sets the Platform field's value.
50594func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
50595	s.Platform = &v
50596	return s
50597}
50598
50599// Describes an action to publish to an Amazon SNS topic.
50600type SnsAction struct {
50601	_ struct{} `type:"structure"`
50602
50603	// (Optional) The message format of the message to publish. Accepted values
50604	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
50605	// this setting to determine if the payload should be parsed and relevant platform-specific
50606	// bits of the payload should be extracted. To read more about SNS message formats,
50607	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
50608	// refer to their official documentation.
50609	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
50610
50611	// The ARN of the IAM role that grants access.
50612	//
50613	// RoleArn is a required field
50614	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50615
50616	// The ARN of the SNS topic.
50617	//
50618	// TargetArn is a required field
50619	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
50620}
50621
50622// String returns the string representation
50623func (s SnsAction) String() string {
50624	return awsutil.Prettify(s)
50625}
50626
50627// GoString returns the string representation
50628func (s SnsAction) GoString() string {
50629	return s.String()
50630}
50631
50632// Validate inspects the fields of the type to determine if they are valid.
50633func (s *SnsAction) Validate() error {
50634	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
50635	if s.RoleArn == nil {
50636		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50637	}
50638	if s.TargetArn == nil {
50639		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
50640	}
50641
50642	if invalidParams.Len() > 0 {
50643		return invalidParams
50644	}
50645	return nil
50646}
50647
50648// SetMessageFormat sets the MessageFormat field's value.
50649func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
50650	s.MessageFormat = &v
50651	return s
50652}
50653
50654// SetRoleArn sets the RoleArn field's value.
50655func (s *SnsAction) SetRoleArn(v string) *SnsAction {
50656	s.RoleArn = &v
50657	return s
50658}
50659
50660// SetTargetArn sets the TargetArn field's value.
50661func (s *SnsAction) SetTargetArn(v string) *SnsAction {
50662	s.TargetArn = &v
50663	return s
50664}
50665
50666// The Rule-SQL expression can't be parsed correctly.
50667type SqlParseException struct {
50668	_            struct{}                  `type:"structure"`
50669	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50670
50671	// The message for the exception.
50672	Message_ *string `locationName:"message" type:"string"`
50673}
50674
50675// String returns the string representation
50676func (s SqlParseException) String() string {
50677	return awsutil.Prettify(s)
50678}
50679
50680// GoString returns the string representation
50681func (s SqlParseException) GoString() string {
50682	return s.String()
50683}
50684
50685func newErrorSqlParseException(v protocol.ResponseMetadata) error {
50686	return &SqlParseException{
50687		RespMetadata: v,
50688	}
50689}
50690
50691// Code returns the exception type name.
50692func (s *SqlParseException) Code() string {
50693	return "SqlParseException"
50694}
50695
50696// Message returns the exception's message.
50697func (s *SqlParseException) Message() string {
50698	if s.Message_ != nil {
50699		return *s.Message_
50700	}
50701	return ""
50702}
50703
50704// OrigErr always returns nil, satisfies awserr.Error interface.
50705func (s *SqlParseException) OrigErr() error {
50706	return nil
50707}
50708
50709func (s *SqlParseException) Error() string {
50710	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50711}
50712
50713// Status code returns the HTTP status code for the request's response error.
50714func (s *SqlParseException) StatusCode() int {
50715	return s.RespMetadata.StatusCode
50716}
50717
50718// RequestID returns the service's response RequestID for request.
50719func (s *SqlParseException) RequestID() string {
50720	return s.RespMetadata.RequestID
50721}
50722
50723// Describes an action to publish data to an Amazon SQS queue.
50724type SqsAction struct {
50725	_ struct{} `type:"structure"`
50726
50727	// The URL of the Amazon SQS queue.
50728	//
50729	// QueueUrl is a required field
50730	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
50731
50732	// The ARN of the IAM role that grants access.
50733	//
50734	// RoleArn is a required field
50735	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50736
50737	// Specifies whether to use Base64 encoding.
50738	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
50739}
50740
50741// String returns the string representation
50742func (s SqsAction) String() string {
50743	return awsutil.Prettify(s)
50744}
50745
50746// GoString returns the string representation
50747func (s SqsAction) GoString() string {
50748	return s.String()
50749}
50750
50751// Validate inspects the fields of the type to determine if they are valid.
50752func (s *SqsAction) Validate() error {
50753	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
50754	if s.QueueUrl == nil {
50755		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
50756	}
50757	if s.RoleArn == nil {
50758		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50759	}
50760
50761	if invalidParams.Len() > 0 {
50762		return invalidParams
50763	}
50764	return nil
50765}
50766
50767// SetQueueUrl sets the QueueUrl field's value.
50768func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
50769	s.QueueUrl = &v
50770	return s
50771}
50772
50773// SetRoleArn sets the RoleArn field's value.
50774func (s *SqsAction) SetRoleArn(v string) *SqsAction {
50775	s.RoleArn = &v
50776	return s
50777}
50778
50779// SetUseBase64 sets the UseBase64 field's value.
50780func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
50781	s.UseBase64 = &v
50782	return s
50783}
50784
50785type StartAuditMitigationActionsTaskInput struct {
50786	_ struct{} `type:"structure"`
50787
50788	// For an audit check, specifies which mitigation actions to apply. Those actions
50789	// must be defined in your AWS account.
50790	//
50791	// AuditCheckToActionsMapping is a required field
50792	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
50793
50794	// Each audit mitigation task must have a unique client request token. If you
50795	// try to start a new task with the same token as a task that already exists,
50796	// an exception occurs. If you omit this value, a unique client request token
50797	// is generated automatically.
50798	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
50799
50800	// Specifies the audit findings to which the mitigation actions are applied.
50801	// You can apply them to a type of audit check, to all findings from an audit,
50802	// or to a specific set of findings.
50803	//
50804	// Target is a required field
50805	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
50806
50807	// A unique identifier for the task. You can use this identifier to check the
50808	// status of the task or to cancel it.
50809	//
50810	// TaskId is a required field
50811	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
50812}
50813
50814// String returns the string representation
50815func (s StartAuditMitigationActionsTaskInput) String() string {
50816	return awsutil.Prettify(s)
50817}
50818
50819// GoString returns the string representation
50820func (s StartAuditMitigationActionsTaskInput) GoString() string {
50821	return s.String()
50822}
50823
50824// Validate inspects the fields of the type to determine if they are valid.
50825func (s *StartAuditMitigationActionsTaskInput) Validate() error {
50826	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
50827	if s.AuditCheckToActionsMapping == nil {
50828		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
50829	}
50830	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
50831		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
50832	}
50833	if s.Target == nil {
50834		invalidParams.Add(request.NewErrParamRequired("Target"))
50835	}
50836	if s.TaskId == nil {
50837		invalidParams.Add(request.NewErrParamRequired("TaskId"))
50838	}
50839	if s.TaskId != nil && len(*s.TaskId) < 1 {
50840		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
50841	}
50842	if s.Target != nil {
50843		if err := s.Target.Validate(); err != nil {
50844			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
50845		}
50846	}
50847
50848	if invalidParams.Len() > 0 {
50849		return invalidParams
50850	}
50851	return nil
50852}
50853
50854// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
50855func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
50856	s.AuditCheckToActionsMapping = v
50857	return s
50858}
50859
50860// SetClientRequestToken sets the ClientRequestToken field's value.
50861func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
50862	s.ClientRequestToken = &v
50863	return s
50864}
50865
50866// SetTarget sets the Target field's value.
50867func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
50868	s.Target = v
50869	return s
50870}
50871
50872// SetTaskId sets the TaskId field's value.
50873func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
50874	s.TaskId = &v
50875	return s
50876}
50877
50878type StartAuditMitigationActionsTaskOutput struct {
50879	_ struct{} `type:"structure"`
50880
50881	// The unique identifier for the audit mitigation task. This matches the taskId
50882	// that you specified in the request.
50883	TaskId *string `locationName:"taskId" min:"1" type:"string"`
50884}
50885
50886// String returns the string representation
50887func (s StartAuditMitigationActionsTaskOutput) String() string {
50888	return awsutil.Prettify(s)
50889}
50890
50891// GoString returns the string representation
50892func (s StartAuditMitigationActionsTaskOutput) GoString() string {
50893	return s.String()
50894}
50895
50896// SetTaskId sets the TaskId field's value.
50897func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
50898	s.TaskId = &v
50899	return s
50900}
50901
50902type StartDetectMitigationActionsTaskInput struct {
50903	_ struct{} `type:"structure"`
50904
50905	// The actions to be performed when a device has unexpected behavior.
50906	//
50907	// Actions is a required field
50908	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
50909
50910	// Each mitigation action task must have a unique client request token. If you
50911	// try to create a new task with the same token as a task that already exists,
50912	// an exception occurs. If you omit this value, AWS SDKs will automatically
50913	// generate a unique client request.
50914	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
50915
50916	// Specifies to list only active violations.
50917	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
50918
50919	// Specifies to include suppressed alerts.
50920	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
50921
50922	// Specifies the ML Detect findings to which the mitigation actions are applied.
50923	//
50924	// Target is a required field
50925	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
50926
50927	// The unique identifier of the task.
50928	//
50929	// TaskId is a required field
50930	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
50931
50932	// Specifies the time period of which violation events occurred between.
50933	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
50934}
50935
50936// String returns the string representation
50937func (s StartDetectMitigationActionsTaskInput) String() string {
50938	return awsutil.Prettify(s)
50939}
50940
50941// GoString returns the string representation
50942func (s StartDetectMitigationActionsTaskInput) GoString() string {
50943	return s.String()
50944}
50945
50946// Validate inspects the fields of the type to determine if they are valid.
50947func (s *StartDetectMitigationActionsTaskInput) Validate() error {
50948	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
50949	if s.Actions == nil {
50950		invalidParams.Add(request.NewErrParamRequired("Actions"))
50951	}
50952	if s.Actions != nil && len(s.Actions) < 1 {
50953		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
50954	}
50955	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
50956		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
50957	}
50958	if s.Target == nil {
50959		invalidParams.Add(request.NewErrParamRequired("Target"))
50960	}
50961	if s.TaskId == nil {
50962		invalidParams.Add(request.NewErrParamRequired("TaskId"))
50963	}
50964	if s.TaskId != nil && len(*s.TaskId) < 1 {
50965		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
50966	}
50967	if s.Target != nil {
50968		if err := s.Target.Validate(); err != nil {
50969			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
50970		}
50971	}
50972	if s.ViolationEventOccurrenceRange != nil {
50973		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
50974			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
50975		}
50976	}
50977
50978	if invalidParams.Len() > 0 {
50979		return invalidParams
50980	}
50981	return nil
50982}
50983
50984// SetActions sets the Actions field's value.
50985func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
50986	s.Actions = v
50987	return s
50988}
50989
50990// SetClientRequestToken sets the ClientRequestToken field's value.
50991func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
50992	s.ClientRequestToken = &v
50993	return s
50994}
50995
50996// SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
50997func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
50998	s.IncludeOnlyActiveViolations = &v
50999	return s
51000}
51001
51002// SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
51003func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
51004	s.IncludeSuppressedAlerts = &v
51005	return s
51006}
51007
51008// SetTarget sets the Target field's value.
51009func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
51010	s.Target = v
51011	return s
51012}
51013
51014// SetTaskId sets the TaskId field's value.
51015func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
51016	s.TaskId = &v
51017	return s
51018}
51019
51020// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
51021func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
51022	s.ViolationEventOccurrenceRange = v
51023	return s
51024}
51025
51026type StartDetectMitigationActionsTaskOutput struct {
51027	_ struct{} `type:"structure"`
51028
51029	// The unique identifier of the task.
51030	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51031}
51032
51033// String returns the string representation
51034func (s StartDetectMitigationActionsTaskOutput) String() string {
51035	return awsutil.Prettify(s)
51036}
51037
51038// GoString returns the string representation
51039func (s StartDetectMitigationActionsTaskOutput) GoString() string {
51040	return s.String()
51041}
51042
51043// SetTaskId sets the TaskId field's value.
51044func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
51045	s.TaskId = &v
51046	return s
51047}
51048
51049type StartOnDemandAuditTaskInput struct {
51050	_ struct{} `type:"structure"`
51051
51052	// Which checks are performed during the audit. The checks you specify must
51053	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
51054	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
51055	// to select which checks are enabled.
51056	//
51057	// TargetCheckNames is a required field
51058	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
51059}
51060
51061// String returns the string representation
51062func (s StartOnDemandAuditTaskInput) String() string {
51063	return awsutil.Prettify(s)
51064}
51065
51066// GoString returns the string representation
51067func (s StartOnDemandAuditTaskInput) GoString() string {
51068	return s.String()
51069}
51070
51071// Validate inspects the fields of the type to determine if they are valid.
51072func (s *StartOnDemandAuditTaskInput) Validate() error {
51073	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
51074	if s.TargetCheckNames == nil {
51075		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
51076	}
51077
51078	if invalidParams.Len() > 0 {
51079		return invalidParams
51080	}
51081	return nil
51082}
51083
51084// SetTargetCheckNames sets the TargetCheckNames field's value.
51085func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
51086	s.TargetCheckNames = v
51087	return s
51088}
51089
51090type StartOnDemandAuditTaskOutput struct {
51091	_ struct{} `type:"structure"`
51092
51093	// The ID of the on-demand audit you started.
51094	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51095}
51096
51097// String returns the string representation
51098func (s StartOnDemandAuditTaskOutput) String() string {
51099	return awsutil.Prettify(s)
51100}
51101
51102// GoString returns the string representation
51103func (s StartOnDemandAuditTaskOutput) GoString() string {
51104	return s.String()
51105}
51106
51107// SetTaskId sets the TaskId field's value.
51108func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
51109	s.TaskId = &v
51110	return s
51111}
51112
51113// Information required to start a signing job.
51114type StartSigningJobParameter struct {
51115	_ struct{} `type:"structure"`
51116
51117	// The location to write the code-signed file.
51118	Destination *Destination `locationName:"destination" type:"structure"`
51119
51120	// The code-signing profile name.
51121	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
51122
51123	// Describes the code-signing profile.
51124	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
51125}
51126
51127// String returns the string representation
51128func (s StartSigningJobParameter) String() string {
51129	return awsutil.Prettify(s)
51130}
51131
51132// GoString returns the string representation
51133func (s StartSigningJobParameter) GoString() string {
51134	return s.String()
51135}
51136
51137// Validate inspects the fields of the type to determine if they are valid.
51138func (s *StartSigningJobParameter) Validate() error {
51139	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
51140	if s.Destination != nil {
51141		if err := s.Destination.Validate(); err != nil {
51142			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
51143		}
51144	}
51145
51146	if invalidParams.Len() > 0 {
51147		return invalidParams
51148	}
51149	return nil
51150}
51151
51152// SetDestination sets the Destination field's value.
51153func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
51154	s.Destination = v
51155	return s
51156}
51157
51158// SetSigningProfileName sets the SigningProfileName field's value.
51159func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
51160	s.SigningProfileName = &v
51161	return s
51162}
51163
51164// SetSigningProfileParameter sets the SigningProfileParameter field's value.
51165func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
51166	s.SigningProfileParameter = v
51167	return s
51168}
51169
51170type StartThingRegistrationTaskInput struct {
51171	_ struct{} `type:"structure"`
51172
51173	// The S3 bucket that contains the input file.
51174	//
51175	// InputFileBucket is a required field
51176	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
51177
51178	// The name of input file within the S3 bucket. This file contains a newline
51179	// delimited JSON file. Each line contains the parameter values to provision
51180	// one device (thing).
51181	//
51182	// InputFileKey is a required field
51183	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
51184
51185	// The IAM role ARN that grants permission the input file.
51186	//
51187	// RoleArn is a required field
51188	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
51189
51190	// The provisioning template.
51191	//
51192	// TemplateBody is a required field
51193	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
51194}
51195
51196// String returns the string representation
51197func (s StartThingRegistrationTaskInput) String() string {
51198	return awsutil.Prettify(s)
51199}
51200
51201// GoString returns the string representation
51202func (s StartThingRegistrationTaskInput) GoString() string {
51203	return s.String()
51204}
51205
51206// Validate inspects the fields of the type to determine if they are valid.
51207func (s *StartThingRegistrationTaskInput) Validate() error {
51208	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
51209	if s.InputFileBucket == nil {
51210		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
51211	}
51212	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
51213		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
51214	}
51215	if s.InputFileKey == nil {
51216		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
51217	}
51218	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
51219		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
51220	}
51221	if s.RoleArn == nil {
51222		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51223	}
51224	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
51225		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
51226	}
51227	if s.TemplateBody == nil {
51228		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
51229	}
51230
51231	if invalidParams.Len() > 0 {
51232		return invalidParams
51233	}
51234	return nil
51235}
51236
51237// SetInputFileBucket sets the InputFileBucket field's value.
51238func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
51239	s.InputFileBucket = &v
51240	return s
51241}
51242
51243// SetInputFileKey sets the InputFileKey field's value.
51244func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
51245	s.InputFileKey = &v
51246	return s
51247}
51248
51249// SetRoleArn sets the RoleArn field's value.
51250func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
51251	s.RoleArn = &v
51252	return s
51253}
51254
51255// SetTemplateBody sets the TemplateBody field's value.
51256func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
51257	s.TemplateBody = &v
51258	return s
51259}
51260
51261type StartThingRegistrationTaskOutput struct {
51262	_ struct{} `type:"structure"`
51263
51264	// The bulk thing provisioning task ID.
51265	TaskId *string `locationName:"taskId" type:"string"`
51266}
51267
51268// String returns the string representation
51269func (s StartThingRegistrationTaskOutput) String() string {
51270	return awsutil.Prettify(s)
51271}
51272
51273// GoString returns the string representation
51274func (s StartThingRegistrationTaskOutput) GoString() string {
51275	return s.String()
51276}
51277
51278// SetTaskId sets the TaskId field's value.
51279func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
51280	s.TaskId = &v
51281	return s
51282}
51283
51284// A statistical ranking (percentile) that indicates a threshold value by which
51285// a behavior is determined to be in compliance or in violation of the behavior.
51286type StatisticalThreshold struct {
51287	_ struct{} `type:"structure"`
51288
51289	// The percentile that resolves to a threshold value by which compliance with
51290	// a behavior is determined. Metrics are collected over the specified period
51291	// (durationSeconds) from all reporting devices in your account and statistical
51292	// ranks are calculated. Then, the measurements from a device are collected
51293	// over the same period. If the accumulated measurements from the device fall
51294	// above or below (comparisonOperator) the value associated with the percentile
51295	// specified, then the device is considered to be in compliance with the behavior,
51296	// otherwise a violation occurs.
51297	Statistic *string `locationName:"statistic" type:"string"`
51298}
51299
51300// String returns the string representation
51301func (s StatisticalThreshold) String() string {
51302	return awsutil.Prettify(s)
51303}
51304
51305// GoString returns the string representation
51306func (s StatisticalThreshold) GoString() string {
51307	return s.String()
51308}
51309
51310// SetStatistic sets the Statistic field's value.
51311func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
51312	s.Statistic = &v
51313	return s
51314}
51315
51316// A map of key-value pairs for all supported statistics. Currently, only count
51317// is supported.
51318type Statistics struct {
51319	_ struct{} `type:"structure"`
51320
51321	// The average of the aggregated field values.
51322	Average *float64 `locationName:"average" type:"double"`
51323
51324	// The count of things that match the query.
51325	Count *int64 `locationName:"count" type:"integer"`
51326
51327	// The maximum aggregated field value.
51328	Maximum *float64 `locationName:"maximum" type:"double"`
51329
51330	// The minimum aggregated field value.
51331	Minimum *float64 `locationName:"minimum" type:"double"`
51332
51333	// The standard deviation of the aggregated field values.
51334	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
51335
51336	// The sum of the aggregated field values.
51337	Sum *float64 `locationName:"sum" type:"double"`
51338
51339	// The sum of the squares of the aggregated field values.
51340	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
51341
51342	// The variance of the aggregated field values.
51343	Variance *float64 `locationName:"variance" type:"double"`
51344}
51345
51346// String returns the string representation
51347func (s Statistics) String() string {
51348	return awsutil.Prettify(s)
51349}
51350
51351// GoString returns the string representation
51352func (s Statistics) GoString() string {
51353	return s.String()
51354}
51355
51356// SetAverage sets the Average field's value.
51357func (s *Statistics) SetAverage(v float64) *Statistics {
51358	s.Average = &v
51359	return s
51360}
51361
51362// SetCount sets the Count field's value.
51363func (s *Statistics) SetCount(v int64) *Statistics {
51364	s.Count = &v
51365	return s
51366}
51367
51368// SetMaximum sets the Maximum field's value.
51369func (s *Statistics) SetMaximum(v float64) *Statistics {
51370	s.Maximum = &v
51371	return s
51372}
51373
51374// SetMinimum sets the Minimum field's value.
51375func (s *Statistics) SetMinimum(v float64) *Statistics {
51376	s.Minimum = &v
51377	return s
51378}
51379
51380// SetStdDeviation sets the StdDeviation field's value.
51381func (s *Statistics) SetStdDeviation(v float64) *Statistics {
51382	s.StdDeviation = &v
51383	return s
51384}
51385
51386// SetSum sets the Sum field's value.
51387func (s *Statistics) SetSum(v float64) *Statistics {
51388	s.Sum = &v
51389	return s
51390}
51391
51392// SetSumOfSquares sets the SumOfSquares field's value.
51393func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
51394	s.SumOfSquares = &v
51395	return s
51396}
51397
51398// SetVariance sets the Variance field's value.
51399func (s *Statistics) SetVariance(v float64) *Statistics {
51400	s.Variance = &v
51401	return s
51402}
51403
51404// Starts execution of a Step Functions state machine.
51405type StepFunctionsAction struct {
51406	_ struct{} `type:"structure"`
51407
51408	// (Optional) A name will be given to the state machine execution consisting
51409	// of this prefix followed by a UUID. Step Functions automatically creates a
51410	// unique name for each state machine execution if one is not provided.
51411	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
51412
51413	// The ARN of the role that grants IoT permission to start execution of a state
51414	// machine ("Action":"states:StartExecution").
51415	//
51416	// RoleArn is a required field
51417	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51418
51419	// The name of the Step Functions state machine whose execution will be started.
51420	//
51421	// StateMachineName is a required field
51422	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
51423}
51424
51425// String returns the string representation
51426func (s StepFunctionsAction) String() string {
51427	return awsutil.Prettify(s)
51428}
51429
51430// GoString returns the string representation
51431func (s StepFunctionsAction) GoString() string {
51432	return s.String()
51433}
51434
51435// Validate inspects the fields of the type to determine if they are valid.
51436func (s *StepFunctionsAction) Validate() error {
51437	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
51438	if s.RoleArn == nil {
51439		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51440	}
51441	if s.StateMachineName == nil {
51442		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
51443	}
51444
51445	if invalidParams.Len() > 0 {
51446		return invalidParams
51447	}
51448	return nil
51449}
51450
51451// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
51452func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
51453	s.ExecutionNamePrefix = &v
51454	return s
51455}
51456
51457// SetRoleArn sets the RoleArn field's value.
51458func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
51459	s.RoleArn = &v
51460	return s
51461}
51462
51463// SetStateMachineName sets the StateMachineName field's value.
51464func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
51465	s.StateMachineName = &v
51466	return s
51467}
51468
51469type StopThingRegistrationTaskInput struct {
51470	_ struct{} `type:"structure"`
51471
51472	// The bulk thing provisioning task ID.
51473	//
51474	// TaskId is a required field
51475	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
51476}
51477
51478// String returns the string representation
51479func (s StopThingRegistrationTaskInput) String() string {
51480	return awsutil.Prettify(s)
51481}
51482
51483// GoString returns the string representation
51484func (s StopThingRegistrationTaskInput) GoString() string {
51485	return s.String()
51486}
51487
51488// Validate inspects the fields of the type to determine if they are valid.
51489func (s *StopThingRegistrationTaskInput) Validate() error {
51490	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
51491	if s.TaskId == nil {
51492		invalidParams.Add(request.NewErrParamRequired("TaskId"))
51493	}
51494	if s.TaskId != nil && len(*s.TaskId) < 1 {
51495		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
51496	}
51497
51498	if invalidParams.Len() > 0 {
51499		return invalidParams
51500	}
51501	return nil
51502}
51503
51504// SetTaskId sets the TaskId field's value.
51505func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
51506	s.TaskId = &v
51507	return s
51508}
51509
51510type StopThingRegistrationTaskOutput struct {
51511	_ struct{} `type:"structure"`
51512}
51513
51514// String returns the string representation
51515func (s StopThingRegistrationTaskOutput) String() string {
51516	return awsutil.Prettify(s)
51517}
51518
51519// GoString returns the string representation
51520func (s StopThingRegistrationTaskOutput) GoString() string {
51521	return s.String()
51522}
51523
51524// Describes a group of files that can be streamed.
51525type Stream struct {
51526	_ struct{} `type:"structure"`
51527
51528	// The ID of a file associated with a stream.
51529	FileId *int64 `locationName:"fileId" type:"integer"`
51530
51531	// The stream ID.
51532	StreamId *string `locationName:"streamId" min:"1" type:"string"`
51533}
51534
51535// String returns the string representation
51536func (s Stream) String() string {
51537	return awsutil.Prettify(s)
51538}
51539
51540// GoString returns the string representation
51541func (s Stream) GoString() string {
51542	return s.String()
51543}
51544
51545// Validate inspects the fields of the type to determine if they are valid.
51546func (s *Stream) Validate() error {
51547	invalidParams := request.ErrInvalidParams{Context: "Stream"}
51548	if s.StreamId != nil && len(*s.StreamId) < 1 {
51549		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
51550	}
51551
51552	if invalidParams.Len() > 0 {
51553		return invalidParams
51554	}
51555	return nil
51556}
51557
51558// SetFileId sets the FileId field's value.
51559func (s *Stream) SetFileId(v int64) *Stream {
51560	s.FileId = &v
51561	return s
51562}
51563
51564// SetStreamId sets the StreamId field's value.
51565func (s *Stream) SetStreamId(v string) *Stream {
51566	s.StreamId = &v
51567	return s
51568}
51569
51570// Represents a file to stream.
51571type StreamFile struct {
51572	_ struct{} `type:"structure"`
51573
51574	// The file ID.
51575	FileId *int64 `locationName:"fileId" type:"integer"`
51576
51577	// The location of the file in S3.
51578	S3Location *S3Location `locationName:"s3Location" type:"structure"`
51579}
51580
51581// String returns the string representation
51582func (s StreamFile) String() string {
51583	return awsutil.Prettify(s)
51584}
51585
51586// GoString returns the string representation
51587func (s StreamFile) GoString() string {
51588	return s.String()
51589}
51590
51591// Validate inspects the fields of the type to determine if they are valid.
51592func (s *StreamFile) Validate() error {
51593	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
51594	if s.S3Location != nil {
51595		if err := s.S3Location.Validate(); err != nil {
51596			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
51597		}
51598	}
51599
51600	if invalidParams.Len() > 0 {
51601		return invalidParams
51602	}
51603	return nil
51604}
51605
51606// SetFileId sets the FileId field's value.
51607func (s *StreamFile) SetFileId(v int64) *StreamFile {
51608	s.FileId = &v
51609	return s
51610}
51611
51612// SetS3Location sets the S3Location field's value.
51613func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
51614	s.S3Location = v
51615	return s
51616}
51617
51618// Information about a stream.
51619type StreamInfo struct {
51620	_ struct{} `type:"structure"`
51621
51622	// The date when the stream was created.
51623	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
51624
51625	// The description of the stream.
51626	Description *string `locationName:"description" type:"string"`
51627
51628	// The files to stream.
51629	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
51630
51631	// The date when the stream was last updated.
51632	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
51633
51634	// An IAM role AWS IoT assumes to access your S3 files.
51635	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
51636
51637	// The stream ARN.
51638	StreamArn *string `locationName:"streamArn" type:"string"`
51639
51640	// The stream ID.
51641	StreamId *string `locationName:"streamId" min:"1" type:"string"`
51642
51643	// The stream version.
51644	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
51645}
51646
51647// String returns the string representation
51648func (s StreamInfo) String() string {
51649	return awsutil.Prettify(s)
51650}
51651
51652// GoString returns the string representation
51653func (s StreamInfo) GoString() string {
51654	return s.String()
51655}
51656
51657// SetCreatedAt sets the CreatedAt field's value.
51658func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
51659	s.CreatedAt = &v
51660	return s
51661}
51662
51663// SetDescription sets the Description field's value.
51664func (s *StreamInfo) SetDescription(v string) *StreamInfo {
51665	s.Description = &v
51666	return s
51667}
51668
51669// SetFiles sets the Files field's value.
51670func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
51671	s.Files = v
51672	return s
51673}
51674
51675// SetLastUpdatedAt sets the LastUpdatedAt field's value.
51676func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
51677	s.LastUpdatedAt = &v
51678	return s
51679}
51680
51681// SetRoleArn sets the RoleArn field's value.
51682func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
51683	s.RoleArn = &v
51684	return s
51685}
51686
51687// SetStreamArn sets the StreamArn field's value.
51688func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
51689	s.StreamArn = &v
51690	return s
51691}
51692
51693// SetStreamId sets the StreamId field's value.
51694func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
51695	s.StreamId = &v
51696	return s
51697}
51698
51699// SetStreamVersion sets the StreamVersion field's value.
51700func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
51701	s.StreamVersion = &v
51702	return s
51703}
51704
51705// A summary of a stream.
51706type StreamSummary struct {
51707	_ struct{} `type:"structure"`
51708
51709	// A description of the stream.
51710	Description *string `locationName:"description" type:"string"`
51711
51712	// The stream ARN.
51713	StreamArn *string `locationName:"streamArn" type:"string"`
51714
51715	// The stream ID.
51716	StreamId *string `locationName:"streamId" min:"1" type:"string"`
51717
51718	// The stream version.
51719	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
51720}
51721
51722// String returns the string representation
51723func (s StreamSummary) String() string {
51724	return awsutil.Prettify(s)
51725}
51726
51727// GoString returns the string representation
51728func (s StreamSummary) GoString() string {
51729	return s.String()
51730}
51731
51732// SetDescription sets the Description field's value.
51733func (s *StreamSummary) SetDescription(v string) *StreamSummary {
51734	s.Description = &v
51735	return s
51736}
51737
51738// SetStreamArn sets the StreamArn field's value.
51739func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
51740	s.StreamArn = &v
51741	return s
51742}
51743
51744// SetStreamId sets the StreamId field's value.
51745func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
51746	s.StreamId = &v
51747	return s
51748}
51749
51750// SetStreamVersion sets the StreamVersion field's value.
51751func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
51752	s.StreamVersion = &v
51753	return s
51754}
51755
51756// A set of key/value pairs that are used to manage the resource.
51757type Tag struct {
51758	_ struct{} `type:"structure"`
51759
51760	// The tag's key.
51761	//
51762	// Key is a required field
51763	Key *string `min:"1" type:"string" required:"true"`
51764
51765	// The tag's value.
51766	Value *string `min:"1" type:"string"`
51767}
51768
51769// String returns the string representation
51770func (s Tag) String() string {
51771	return awsutil.Prettify(s)
51772}
51773
51774// GoString returns the string representation
51775func (s Tag) GoString() string {
51776	return s.String()
51777}
51778
51779// Validate inspects the fields of the type to determine if they are valid.
51780func (s *Tag) Validate() error {
51781	invalidParams := request.ErrInvalidParams{Context: "Tag"}
51782	if s.Key == nil {
51783		invalidParams.Add(request.NewErrParamRequired("Key"))
51784	}
51785	if s.Key != nil && len(*s.Key) < 1 {
51786		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
51787	}
51788	if s.Value != nil && len(*s.Value) < 1 {
51789		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
51790	}
51791
51792	if invalidParams.Len() > 0 {
51793		return invalidParams
51794	}
51795	return nil
51796}
51797
51798// SetKey sets the Key field's value.
51799func (s *Tag) SetKey(v string) *Tag {
51800	s.Key = &v
51801	return s
51802}
51803
51804// SetValue sets the Value field's value.
51805func (s *Tag) SetValue(v string) *Tag {
51806	s.Value = &v
51807	return s
51808}
51809
51810type TagResourceInput struct {
51811	_ struct{} `type:"structure"`
51812
51813	// The ARN of the resource.
51814	//
51815	// ResourceArn is a required field
51816	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
51817
51818	// The new or modified tags for the resource.
51819	//
51820	// Tags is a required field
51821	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
51822}
51823
51824// String returns the string representation
51825func (s TagResourceInput) String() string {
51826	return awsutil.Prettify(s)
51827}
51828
51829// GoString returns the string representation
51830func (s TagResourceInput) GoString() string {
51831	return s.String()
51832}
51833
51834// Validate inspects the fields of the type to determine if they are valid.
51835func (s *TagResourceInput) Validate() error {
51836	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
51837	if s.ResourceArn == nil {
51838		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
51839	}
51840	if s.Tags == nil {
51841		invalidParams.Add(request.NewErrParamRequired("Tags"))
51842	}
51843	if s.Tags != nil {
51844		for i, v := range s.Tags {
51845			if v == nil {
51846				continue
51847			}
51848			if err := v.Validate(); err != nil {
51849				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
51850			}
51851		}
51852	}
51853
51854	if invalidParams.Len() > 0 {
51855		return invalidParams
51856	}
51857	return nil
51858}
51859
51860// SetResourceArn sets the ResourceArn field's value.
51861func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
51862	s.ResourceArn = &v
51863	return s
51864}
51865
51866// SetTags sets the Tags field's value.
51867func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
51868	s.Tags = v
51869	return s
51870}
51871
51872type TagResourceOutput struct {
51873	_ struct{} `type:"structure"`
51874}
51875
51876// String returns the string representation
51877func (s TagResourceOutput) String() string {
51878	return awsutil.Prettify(s)
51879}
51880
51881// GoString returns the string representation
51882func (s TagResourceOutput) GoString() string {
51883	return s.String()
51884}
51885
51886// This exception occurs if you attempt to start a task with the same task-id
51887// as an existing task but with a different clientRequestToken.
51888type TaskAlreadyExistsException struct {
51889	_            struct{}                  `type:"structure"`
51890	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51891
51892	Message_ *string `locationName:"message" type:"string"`
51893}
51894
51895// String returns the string representation
51896func (s TaskAlreadyExistsException) String() string {
51897	return awsutil.Prettify(s)
51898}
51899
51900// GoString returns the string representation
51901func (s TaskAlreadyExistsException) GoString() string {
51902	return s.String()
51903}
51904
51905func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
51906	return &TaskAlreadyExistsException{
51907		RespMetadata: v,
51908	}
51909}
51910
51911// Code returns the exception type name.
51912func (s *TaskAlreadyExistsException) Code() string {
51913	return "TaskAlreadyExistsException"
51914}
51915
51916// Message returns the exception's message.
51917func (s *TaskAlreadyExistsException) Message() string {
51918	if s.Message_ != nil {
51919		return *s.Message_
51920	}
51921	return ""
51922}
51923
51924// OrigErr always returns nil, satisfies awserr.Error interface.
51925func (s *TaskAlreadyExistsException) OrigErr() error {
51926	return nil
51927}
51928
51929func (s *TaskAlreadyExistsException) Error() string {
51930	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51931}
51932
51933// Status code returns the HTTP status code for the request's response error.
51934func (s *TaskAlreadyExistsException) StatusCode() int {
51935	return s.RespMetadata.StatusCode
51936}
51937
51938// RequestID returns the service's response RequestID for request.
51939func (s *TaskAlreadyExistsException) RequestID() string {
51940	return s.RespMetadata.RequestID
51941}
51942
51943// Statistics for the checks performed during the audit.
51944type TaskStatistics struct {
51945	_ struct{} `type:"structure"`
51946
51947	// The number of checks that did not run because the audit was canceled.
51948	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
51949
51950	// The number of checks that found compliant resources.
51951	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
51952
51953	// The number of checks.
51954	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
51955
51956	// The number of checks in progress.
51957	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
51958
51959	// The number of checks that found noncompliant resources.
51960	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
51961
51962	// The number of checks in this audit.
51963	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
51964
51965	// The number of checks waiting for data collection.
51966	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
51967}
51968
51969// String returns the string representation
51970func (s TaskStatistics) String() string {
51971	return awsutil.Prettify(s)
51972}
51973
51974// GoString returns the string representation
51975func (s TaskStatistics) GoString() string {
51976	return s.String()
51977}
51978
51979// SetCanceledChecks sets the CanceledChecks field's value.
51980func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
51981	s.CanceledChecks = &v
51982	return s
51983}
51984
51985// SetCompliantChecks sets the CompliantChecks field's value.
51986func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
51987	s.CompliantChecks = &v
51988	return s
51989}
51990
51991// SetFailedChecks sets the FailedChecks field's value.
51992func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
51993	s.FailedChecks = &v
51994	return s
51995}
51996
51997// SetInProgressChecks sets the InProgressChecks field's value.
51998func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
51999	s.InProgressChecks = &v
52000	return s
52001}
52002
52003// SetNonCompliantChecks sets the NonCompliantChecks field's value.
52004func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
52005	s.NonCompliantChecks = &v
52006	return s
52007}
52008
52009// SetTotalChecks sets the TotalChecks field's value.
52010func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
52011	s.TotalChecks = &v
52012	return s
52013}
52014
52015// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
52016func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
52017	s.WaitingForDataCollectionChecks = &v
52018	return s
52019}
52020
52021// Provides summary counts of how many tasks for findings are in a particular
52022// state. This information is included in the response from DescribeAuditMitigationActionsTask.
52023type TaskStatisticsForAuditCheck struct {
52024	_ struct{} `type:"structure"`
52025
52026	// The number of findings to which the mitigation action task was canceled when
52027	// applied.
52028	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
52029
52030	// The number of findings for which at least one of the actions failed when
52031	// applied.
52032	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
52033
52034	// The number of findings skipped because of filter conditions provided in the
52035	// parameters to the command.
52036	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
52037
52038	// The number of findings for which all mitigation actions succeeded when applied.
52039	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
52040
52041	// The total number of findings to which a task is being applied.
52042	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
52043}
52044
52045// String returns the string representation
52046func (s TaskStatisticsForAuditCheck) String() string {
52047	return awsutil.Prettify(s)
52048}
52049
52050// GoString returns the string representation
52051func (s TaskStatisticsForAuditCheck) GoString() string {
52052	return s.String()
52053}
52054
52055// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
52056func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
52057	s.CanceledFindingsCount = &v
52058	return s
52059}
52060
52061// SetFailedFindingsCount sets the FailedFindingsCount field's value.
52062func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
52063	s.FailedFindingsCount = &v
52064	return s
52065}
52066
52067// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
52068func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
52069	s.SkippedFindingsCount = &v
52070	return s
52071}
52072
52073// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
52074func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
52075	s.SucceededFindingsCount = &v
52076	return s
52077}
52078
52079// SetTotalFindingsCount sets the TotalFindingsCount field's value.
52080func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
52081	s.TotalFindingsCount = &v
52082	return s
52083}
52084
52085type TestAuthorizationInput struct {
52086	_ struct{} `type:"structure"`
52087
52088	// A list of authorization info objects. Simulating authorization will create
52089	// a response for each authInfo object in the list.
52090	//
52091	// AuthInfos is a required field
52092	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
52093
52094	// The MQTT client ID.
52095	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
52096
52097	// The Cognito identity pool ID.
52098	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
52099
52100	// When testing custom authorization, the policies specified here are treated
52101	// as if they are attached to the principal being authorized.
52102	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
52103
52104	// When testing custom authorization, the policies specified here are treated
52105	// as if they are not attached to the principal being authorized.
52106	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
52107
52108	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
52109	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
52110	// (region:id).
52111	Principal *string `locationName:"principal" type:"string"`
52112}
52113
52114// String returns the string representation
52115func (s TestAuthorizationInput) String() string {
52116	return awsutil.Prettify(s)
52117}
52118
52119// GoString returns the string representation
52120func (s TestAuthorizationInput) GoString() string {
52121	return s.String()
52122}
52123
52124// Validate inspects the fields of the type to determine if they are valid.
52125func (s *TestAuthorizationInput) Validate() error {
52126	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
52127	if s.AuthInfos == nil {
52128		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
52129	}
52130	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
52131		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
52132	}
52133	if s.AuthInfos != nil {
52134		for i, v := range s.AuthInfos {
52135			if v == nil {
52136				continue
52137			}
52138			if err := v.Validate(); err != nil {
52139				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
52140			}
52141		}
52142	}
52143
52144	if invalidParams.Len() > 0 {
52145		return invalidParams
52146	}
52147	return nil
52148}
52149
52150// SetAuthInfos sets the AuthInfos field's value.
52151func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
52152	s.AuthInfos = v
52153	return s
52154}
52155
52156// SetClientId sets the ClientId field's value.
52157func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
52158	s.ClientId = &v
52159	return s
52160}
52161
52162// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
52163func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
52164	s.CognitoIdentityPoolId = &v
52165	return s
52166}
52167
52168// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
52169func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
52170	s.PolicyNamesToAdd = v
52171	return s
52172}
52173
52174// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
52175func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
52176	s.PolicyNamesToSkip = v
52177	return s
52178}
52179
52180// SetPrincipal sets the Principal field's value.
52181func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
52182	s.Principal = &v
52183	return s
52184}
52185
52186type TestAuthorizationOutput struct {
52187	_ struct{} `type:"structure"`
52188
52189	// The authentication results.
52190	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
52191}
52192
52193// String returns the string representation
52194func (s TestAuthorizationOutput) String() string {
52195	return awsutil.Prettify(s)
52196}
52197
52198// GoString returns the string representation
52199func (s TestAuthorizationOutput) GoString() string {
52200	return s.String()
52201}
52202
52203// SetAuthResults sets the AuthResults field's value.
52204func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
52205	s.AuthResults = v
52206	return s
52207}
52208
52209type TestInvokeAuthorizerInput struct {
52210	_ struct{} `type:"structure"`
52211
52212	// The custom authorizer name.
52213	//
52214	// AuthorizerName is a required field
52215	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
52216
52217	// Specifies a test HTTP authorization request.
52218	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
52219
52220	// Specifies a test MQTT authorization request.
52221	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
52222
52223	// Specifies a test TLS authorization request.
52224	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
52225
52226	// The token returned by your custom authentication service.
52227	Token *string `locationName:"token" min:"1" type:"string"`
52228
52229	// The signature made with the token and your custom authentication service's
52230	// private key. This value must be Base-64-encoded.
52231	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
52232}
52233
52234// String returns the string representation
52235func (s TestInvokeAuthorizerInput) String() string {
52236	return awsutil.Prettify(s)
52237}
52238
52239// GoString returns the string representation
52240func (s TestInvokeAuthorizerInput) GoString() string {
52241	return s.String()
52242}
52243
52244// Validate inspects the fields of the type to determine if they are valid.
52245func (s *TestInvokeAuthorizerInput) Validate() error {
52246	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
52247	if s.AuthorizerName == nil {
52248		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
52249	}
52250	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
52251		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
52252	}
52253	if s.Token != nil && len(*s.Token) < 1 {
52254		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
52255	}
52256	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
52257		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
52258	}
52259	if s.HttpContext != nil {
52260		if err := s.HttpContext.Validate(); err != nil {
52261			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
52262		}
52263	}
52264	if s.MqttContext != nil {
52265		if err := s.MqttContext.Validate(); err != nil {
52266			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
52267		}
52268	}
52269	if s.TlsContext != nil {
52270		if err := s.TlsContext.Validate(); err != nil {
52271			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
52272		}
52273	}
52274
52275	if invalidParams.Len() > 0 {
52276		return invalidParams
52277	}
52278	return nil
52279}
52280
52281// SetAuthorizerName sets the AuthorizerName field's value.
52282func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
52283	s.AuthorizerName = &v
52284	return s
52285}
52286
52287// SetHttpContext sets the HttpContext field's value.
52288func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
52289	s.HttpContext = v
52290	return s
52291}
52292
52293// SetMqttContext sets the MqttContext field's value.
52294func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
52295	s.MqttContext = v
52296	return s
52297}
52298
52299// SetTlsContext sets the TlsContext field's value.
52300func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
52301	s.TlsContext = v
52302	return s
52303}
52304
52305// SetToken sets the Token field's value.
52306func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
52307	s.Token = &v
52308	return s
52309}
52310
52311// SetTokenSignature sets the TokenSignature field's value.
52312func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
52313	s.TokenSignature = &v
52314	return s
52315}
52316
52317type TestInvokeAuthorizerOutput struct {
52318	_ struct{} `type:"structure"`
52319
52320	// The number of seconds after which the connection is terminated.
52321	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
52322
52323	// True if the token is authenticated, otherwise false.
52324	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
52325
52326	// IAM policy documents.
52327	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
52328
52329	// The principal ID.
52330	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
52331
52332	// The number of seconds after which the temporary credentials are refreshed.
52333	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
52334}
52335
52336// String returns the string representation
52337func (s TestInvokeAuthorizerOutput) String() string {
52338	return awsutil.Prettify(s)
52339}
52340
52341// GoString returns the string representation
52342func (s TestInvokeAuthorizerOutput) GoString() string {
52343	return s.String()
52344}
52345
52346// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
52347func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
52348	s.DisconnectAfterInSeconds = &v
52349	return s
52350}
52351
52352// SetIsAuthenticated sets the IsAuthenticated field's value.
52353func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
52354	s.IsAuthenticated = &v
52355	return s
52356}
52357
52358// SetPolicyDocuments sets the PolicyDocuments field's value.
52359func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
52360	s.PolicyDocuments = v
52361	return s
52362}
52363
52364// SetPrincipalId sets the PrincipalId field's value.
52365func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
52366	s.PrincipalId = &v
52367	return s
52368}
52369
52370// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
52371func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
52372	s.RefreshAfterInSeconds = &v
52373	return s
52374}
52375
52376// The properties of the thing, including thing name, thing type name, and a
52377// list of thing attributes.
52378type ThingAttribute struct {
52379	_ struct{} `type:"structure"`
52380
52381	// A list of thing attributes which are name-value pairs.
52382	Attributes map[string]*string `locationName:"attributes" type:"map"`
52383
52384	// The thing ARN.
52385	ThingArn *string `locationName:"thingArn" type:"string"`
52386
52387	// The name of the thing.
52388	ThingName *string `locationName:"thingName" min:"1" type:"string"`
52389
52390	// The name of the thing type, if the thing has been associated with a type.
52391	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
52392
52393	// The version of the thing record in the registry.
52394	Version *int64 `locationName:"version" type:"long"`
52395}
52396
52397// String returns the string representation
52398func (s ThingAttribute) String() string {
52399	return awsutil.Prettify(s)
52400}
52401
52402// GoString returns the string representation
52403func (s ThingAttribute) GoString() string {
52404	return s.String()
52405}
52406
52407// SetAttributes sets the Attributes field's value.
52408func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
52409	s.Attributes = v
52410	return s
52411}
52412
52413// SetThingArn sets the ThingArn field's value.
52414func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
52415	s.ThingArn = &v
52416	return s
52417}
52418
52419// SetThingName sets the ThingName field's value.
52420func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
52421	s.ThingName = &v
52422	return s
52423}
52424
52425// SetThingTypeName sets the ThingTypeName field's value.
52426func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
52427	s.ThingTypeName = &v
52428	return s
52429}
52430
52431// SetVersion sets the Version field's value.
52432func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
52433	s.Version = &v
52434	return s
52435}
52436
52437// The connectivity status of the thing.
52438type ThingConnectivity struct {
52439	_ struct{} `type:"structure"`
52440
52441	// True if the thing is connected to the AWS IoT service; false if it is not
52442	// connected.
52443	Connected *bool `locationName:"connected" type:"boolean"`
52444
52445	// The epoch time (in milliseconds) when the thing last connected or disconnected.
52446	// If the thing has been disconnected for more than a few weeks, the time value
52447	// might be missing.
52448	Timestamp *int64 `locationName:"timestamp" type:"long"`
52449}
52450
52451// String returns the string representation
52452func (s ThingConnectivity) String() string {
52453	return awsutil.Prettify(s)
52454}
52455
52456// GoString returns the string representation
52457func (s ThingConnectivity) GoString() string {
52458	return s.String()
52459}
52460
52461// SetConnected sets the Connected field's value.
52462func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
52463	s.Connected = &v
52464	return s
52465}
52466
52467// SetTimestamp sets the Timestamp field's value.
52468func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
52469	s.Timestamp = &v
52470	return s
52471}
52472
52473// The thing search index document.
52474type ThingDocument struct {
52475	_ struct{} `type:"structure"`
52476
52477	// The attributes.
52478	Attributes map[string]*string `locationName:"attributes" type:"map"`
52479
52480	// Indicates whether the thing is connected to the AWS IoT service.
52481	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
52482
52483	// The shadow.
52484	Shadow *string `locationName:"shadow" type:"string"`
52485
52486	// Thing group names.
52487	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
52488
52489	// The thing ID.
52490	ThingId *string `locationName:"thingId" type:"string"`
52491
52492	// The thing name.
52493	ThingName *string `locationName:"thingName" min:"1" type:"string"`
52494
52495	// The thing type name.
52496	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
52497}
52498
52499// String returns the string representation
52500func (s ThingDocument) String() string {
52501	return awsutil.Prettify(s)
52502}
52503
52504// GoString returns the string representation
52505func (s ThingDocument) GoString() string {
52506	return s.String()
52507}
52508
52509// SetAttributes sets the Attributes field's value.
52510func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
52511	s.Attributes = v
52512	return s
52513}
52514
52515// SetConnectivity sets the Connectivity field's value.
52516func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
52517	s.Connectivity = v
52518	return s
52519}
52520
52521// SetShadow sets the Shadow field's value.
52522func (s *ThingDocument) SetShadow(v string) *ThingDocument {
52523	s.Shadow = &v
52524	return s
52525}
52526
52527// SetThingGroupNames sets the ThingGroupNames field's value.
52528func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
52529	s.ThingGroupNames = v
52530	return s
52531}
52532
52533// SetThingId sets the ThingId field's value.
52534func (s *ThingDocument) SetThingId(v string) *ThingDocument {
52535	s.ThingId = &v
52536	return s
52537}
52538
52539// SetThingName sets the ThingName field's value.
52540func (s *ThingDocument) SetThingName(v string) *ThingDocument {
52541	s.ThingName = &v
52542	return s
52543}
52544
52545// SetThingTypeName sets the ThingTypeName field's value.
52546func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
52547	s.ThingTypeName = &v
52548	return s
52549}
52550
52551// The thing group search index document.
52552type ThingGroupDocument struct {
52553	_ struct{} `type:"structure"`
52554
52555	// The thing group attributes.
52556	Attributes map[string]*string `locationName:"attributes" type:"map"`
52557
52558	// Parent group names.
52559	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
52560
52561	// The thing group description.
52562	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
52563
52564	// The thing group ID.
52565	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
52566
52567	// The thing group name.
52568	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
52569}
52570
52571// String returns the string representation
52572func (s ThingGroupDocument) String() string {
52573	return awsutil.Prettify(s)
52574}
52575
52576// GoString returns the string representation
52577func (s ThingGroupDocument) GoString() string {
52578	return s.String()
52579}
52580
52581// SetAttributes sets the Attributes field's value.
52582func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
52583	s.Attributes = v
52584	return s
52585}
52586
52587// SetParentGroupNames sets the ParentGroupNames field's value.
52588func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
52589	s.ParentGroupNames = v
52590	return s
52591}
52592
52593// SetThingGroupDescription sets the ThingGroupDescription field's value.
52594func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
52595	s.ThingGroupDescription = &v
52596	return s
52597}
52598
52599// SetThingGroupId sets the ThingGroupId field's value.
52600func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
52601	s.ThingGroupId = &v
52602	return s
52603}
52604
52605// SetThingGroupName sets the ThingGroupName field's value.
52606func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
52607	s.ThingGroupName = &v
52608	return s
52609}
52610
52611// Thing group indexing configuration.
52612type ThingGroupIndexingConfiguration struct {
52613	_ struct{} `type:"structure"`
52614
52615	// A list of thing group fields to index. This list cannot contain any managed
52616	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
52617	//
52618	// Contains custom field names and their data type.
52619	CustomFields []*Field `locationName:"customFields" type:"list"`
52620
52621	// Contains fields that are indexed and whose types are already known by the
52622	// Fleet Indexing service.
52623	ManagedFields []*Field `locationName:"managedFields" type:"list"`
52624
52625	// Thing group indexing mode.
52626	//
52627	// ThingGroupIndexingMode is a required field
52628	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
52629}
52630
52631// String returns the string representation
52632func (s ThingGroupIndexingConfiguration) String() string {
52633	return awsutil.Prettify(s)
52634}
52635
52636// GoString returns the string representation
52637func (s ThingGroupIndexingConfiguration) GoString() string {
52638	return s.String()
52639}
52640
52641// Validate inspects the fields of the type to determine if they are valid.
52642func (s *ThingGroupIndexingConfiguration) Validate() error {
52643	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
52644	if s.ThingGroupIndexingMode == nil {
52645		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
52646	}
52647
52648	if invalidParams.Len() > 0 {
52649		return invalidParams
52650	}
52651	return nil
52652}
52653
52654// SetCustomFields sets the CustomFields field's value.
52655func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
52656	s.CustomFields = v
52657	return s
52658}
52659
52660// SetManagedFields sets the ManagedFields field's value.
52661func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
52662	s.ManagedFields = v
52663	return s
52664}
52665
52666// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
52667func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
52668	s.ThingGroupIndexingMode = &v
52669	return s
52670}
52671
52672// Thing group metadata.
52673type ThingGroupMetadata struct {
52674	_ struct{} `type:"structure"`
52675
52676	// The UNIX timestamp of when the thing group was created.
52677	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
52678
52679	// The parent thing group name.
52680	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
52681
52682	// The root parent thing group.
52683	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
52684}
52685
52686// String returns the string representation
52687func (s ThingGroupMetadata) String() string {
52688	return awsutil.Prettify(s)
52689}
52690
52691// GoString returns the string representation
52692func (s ThingGroupMetadata) GoString() string {
52693	return s.String()
52694}
52695
52696// SetCreationDate sets the CreationDate field's value.
52697func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
52698	s.CreationDate = &v
52699	return s
52700}
52701
52702// SetParentGroupName sets the ParentGroupName field's value.
52703func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
52704	s.ParentGroupName = &v
52705	return s
52706}
52707
52708// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
52709func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
52710	s.RootToParentThingGroups = v
52711	return s
52712}
52713
52714// Thing group properties.
52715type ThingGroupProperties struct {
52716	_ struct{} `type:"structure"`
52717
52718	// The thing group attributes in JSON format.
52719	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
52720
52721	// The thing group description.
52722	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
52723}
52724
52725// String returns the string representation
52726func (s ThingGroupProperties) String() string {
52727	return awsutil.Prettify(s)
52728}
52729
52730// GoString returns the string representation
52731func (s ThingGroupProperties) GoString() string {
52732	return s.String()
52733}
52734
52735// SetAttributePayload sets the AttributePayload field's value.
52736func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
52737	s.AttributePayload = v
52738	return s
52739}
52740
52741// SetThingGroupDescription sets the ThingGroupDescription field's value.
52742func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
52743	s.ThingGroupDescription = &v
52744	return s
52745}
52746
52747// The thing indexing configuration. For more information, see Managing Thing
52748// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
52749type ThingIndexingConfiguration struct {
52750	_ struct{} `type:"structure"`
52751
52752	// Contains custom field names and their data type.
52753	CustomFields []*Field `locationName:"customFields" type:"list"`
52754
52755	// Contains fields that are indexed and whose types are already known by the
52756	// Fleet Indexing service.
52757	ManagedFields []*Field `locationName:"managedFields" type:"list"`
52758
52759	// Thing connectivity indexing mode. Valid values are:
52760	//
52761	//    * STATUS – Your thing index contains connectivity status. To enable
52762	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
52763	//
52764	//    * OFF - Thing connectivity status indexing is disabled.
52765	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
52766
52767	// Thing indexing mode. Valid values are:
52768	//
52769	//    * REGISTRY – Your thing index contains registry data only.
52770	//
52771	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
52772	//    data.
52773	//
52774	//    * OFF - Thing indexing is disabled.
52775	//
52776	// ThingIndexingMode is a required field
52777	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
52778}
52779
52780// String returns the string representation
52781func (s ThingIndexingConfiguration) String() string {
52782	return awsutil.Prettify(s)
52783}
52784
52785// GoString returns the string representation
52786func (s ThingIndexingConfiguration) GoString() string {
52787	return s.String()
52788}
52789
52790// Validate inspects the fields of the type to determine if they are valid.
52791func (s *ThingIndexingConfiguration) Validate() error {
52792	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
52793	if s.ThingIndexingMode == nil {
52794		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
52795	}
52796
52797	if invalidParams.Len() > 0 {
52798		return invalidParams
52799	}
52800	return nil
52801}
52802
52803// SetCustomFields sets the CustomFields field's value.
52804func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
52805	s.CustomFields = v
52806	return s
52807}
52808
52809// SetManagedFields sets the ManagedFields field's value.
52810func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
52811	s.ManagedFields = v
52812	return s
52813}
52814
52815// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
52816func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
52817	s.ThingConnectivityIndexingMode = &v
52818	return s
52819}
52820
52821// SetThingIndexingMode sets the ThingIndexingMode field's value.
52822func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
52823	s.ThingIndexingMode = &v
52824	return s
52825}
52826
52827// The definition of the thing type, including thing type name and description.
52828type ThingTypeDefinition struct {
52829	_ struct{} `type:"structure"`
52830
52831	// The thing type ARN.
52832	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
52833
52834	// The ThingTypeMetadata contains additional information about the thing type
52835	// including: creation date and time, a value indicating whether the thing type
52836	// is deprecated, and a date and time when it was deprecated.
52837	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
52838
52839	// The name of the thing type.
52840	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
52841
52842	// The ThingTypeProperties for the thing type.
52843	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
52844}
52845
52846// String returns the string representation
52847func (s ThingTypeDefinition) String() string {
52848	return awsutil.Prettify(s)
52849}
52850
52851// GoString returns the string representation
52852func (s ThingTypeDefinition) GoString() string {
52853	return s.String()
52854}
52855
52856// SetThingTypeArn sets the ThingTypeArn field's value.
52857func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
52858	s.ThingTypeArn = &v
52859	return s
52860}
52861
52862// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
52863func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
52864	s.ThingTypeMetadata = v
52865	return s
52866}
52867
52868// SetThingTypeName sets the ThingTypeName field's value.
52869func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
52870	s.ThingTypeName = &v
52871	return s
52872}
52873
52874// SetThingTypeProperties sets the ThingTypeProperties field's value.
52875func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
52876	s.ThingTypeProperties = v
52877	return s
52878}
52879
52880// The ThingTypeMetadata contains additional information about the thing type
52881// including: creation date and time, a value indicating whether the thing type
52882// is deprecated, and a date and time when time was deprecated.
52883type ThingTypeMetadata struct {
52884	_ struct{} `type:"structure"`
52885
52886	// The date and time when the thing type was created.
52887	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
52888
52889	// Whether the thing type is deprecated. If true, no new things could be associated
52890	// with this type.
52891	Deprecated *bool `locationName:"deprecated" type:"boolean"`
52892
52893	// The date and time when the thing type was deprecated.
52894	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
52895}
52896
52897// String returns the string representation
52898func (s ThingTypeMetadata) String() string {
52899	return awsutil.Prettify(s)
52900}
52901
52902// GoString returns the string representation
52903func (s ThingTypeMetadata) GoString() string {
52904	return s.String()
52905}
52906
52907// SetCreationDate sets the CreationDate field's value.
52908func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
52909	s.CreationDate = &v
52910	return s
52911}
52912
52913// SetDeprecated sets the Deprecated field's value.
52914func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
52915	s.Deprecated = &v
52916	return s
52917}
52918
52919// SetDeprecationDate sets the DeprecationDate field's value.
52920func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
52921	s.DeprecationDate = &v
52922	return s
52923}
52924
52925// The ThingTypeProperties contains information about the thing type including:
52926// a thing type description, and a list of searchable thing attribute names.
52927type ThingTypeProperties struct {
52928	_ struct{} `type:"structure"`
52929
52930	// A list of searchable thing attribute names.
52931	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
52932
52933	// The description of the thing type.
52934	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
52935}
52936
52937// String returns the string representation
52938func (s ThingTypeProperties) String() string {
52939	return awsutil.Prettify(s)
52940}
52941
52942// GoString returns the string representation
52943func (s ThingTypeProperties) GoString() string {
52944	return s.String()
52945}
52946
52947// SetSearchableAttributes sets the SearchableAttributes field's value.
52948func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
52949	s.SearchableAttributes = v
52950	return s
52951}
52952
52953// SetThingTypeDescription sets the ThingTypeDescription field's value.
52954func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
52955	s.ThingTypeDescription = &v
52956	return s
52957}
52958
52959// The rate exceeds the limit.
52960type ThrottlingException struct {
52961	_            struct{}                  `type:"structure"`
52962	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52963
52964	// The message for the exception.
52965	Message_ *string `locationName:"message" type:"string"`
52966}
52967
52968// String returns the string representation
52969func (s ThrottlingException) String() string {
52970	return awsutil.Prettify(s)
52971}
52972
52973// GoString returns the string representation
52974func (s ThrottlingException) GoString() string {
52975	return s.String()
52976}
52977
52978func newErrorThrottlingException(v protocol.ResponseMetadata) error {
52979	return &ThrottlingException{
52980		RespMetadata: v,
52981	}
52982}
52983
52984// Code returns the exception type name.
52985func (s *ThrottlingException) Code() string {
52986	return "ThrottlingException"
52987}
52988
52989// Message returns the exception's message.
52990func (s *ThrottlingException) Message() string {
52991	if s.Message_ != nil {
52992		return *s.Message_
52993	}
52994	return ""
52995}
52996
52997// OrigErr always returns nil, satisfies awserr.Error interface.
52998func (s *ThrottlingException) OrigErr() error {
52999	return nil
53000}
53001
53002func (s *ThrottlingException) Error() string {
53003	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53004}
53005
53006// Status code returns the HTTP status code for the request's response error.
53007func (s *ThrottlingException) StatusCode() int {
53008	return s.RespMetadata.StatusCode
53009}
53010
53011// RequestID returns the service's response RequestID for request.
53012func (s *ThrottlingException) RequestID() string {
53013	return s.RespMetadata.RequestID
53014}
53015
53016// Specifies the amount of time each device has to finish its execution of the
53017// job. A timer is started when the job execution status is set to IN_PROGRESS.
53018// If the job execution status is not set to another terminal state before the
53019// timer expires, it will be automatically set to TIMED_OUT.
53020type TimeoutConfig struct {
53021	_ struct{} `type:"structure"`
53022
53023	// Specifies the amount of time, in minutes, this device has to finish execution
53024	// of this job. The timeout interval can be anywhere between 1 minute and 7
53025	// days (1 to 10080 minutes). The in progress timer can't be updated and will
53026	// apply to all job executions for the job. Whenever a job execution remains
53027	// in the IN_PROGRESS status for longer than this interval, the job execution
53028	// will fail and switch to the terminal TIMED_OUT status.
53029	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
53030}
53031
53032// String returns the string representation
53033func (s TimeoutConfig) String() string {
53034	return awsutil.Prettify(s)
53035}
53036
53037// GoString returns the string representation
53038func (s TimeoutConfig) GoString() string {
53039	return s.String()
53040}
53041
53042// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
53043func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
53044	s.InProgressTimeoutInMinutes = &v
53045	return s
53046}
53047
53048// The Timestream rule action writes attributes (measures) from an MQTT message
53049// into an Amazon Timestream table. For more information, see the Timestream
53050// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
53051// topic rule action documentation.
53052type TimestreamAction struct {
53053	_ struct{} `type:"structure"`
53054
53055	// The name of an Amazon Timestream database.
53056	//
53057	// DatabaseName is a required field
53058	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
53059
53060	// Metadata attributes of the time series that are written in each measure record.
53061	//
53062	// Dimensions is a required field
53063	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
53064
53065	// The ARN of the role that grants permission to write to the Amazon Timestream
53066	// database table.
53067	//
53068	// RoleArn is a required field
53069	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
53070
53071	// The name of the database table into which to write the measure records.
53072	//
53073	// TableName is a required field
53074	TableName *string `locationName:"tableName" type:"string" required:"true"`
53075
53076	// Specifies an application-defined value to replace the default value assigned
53077	// to the Timestream record's timestamp in the time column.
53078	//
53079	// You can use this property to specify the value and the precision of the Timestream
53080	// record's timestamp. You can specify a value from the message payload or a
53081	// value computed by a substitution template.
53082	//
53083	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
53084	// at the time it processed the rule.
53085	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
53086}
53087
53088// String returns the string representation
53089func (s TimestreamAction) String() string {
53090	return awsutil.Prettify(s)
53091}
53092
53093// GoString returns the string representation
53094func (s TimestreamAction) GoString() string {
53095	return s.String()
53096}
53097
53098// Validate inspects the fields of the type to determine if they are valid.
53099func (s *TimestreamAction) Validate() error {
53100	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
53101	if s.DatabaseName == nil {
53102		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
53103	}
53104	if s.Dimensions == nil {
53105		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
53106	}
53107	if s.Dimensions != nil && len(s.Dimensions) < 1 {
53108		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
53109	}
53110	if s.RoleArn == nil {
53111		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
53112	}
53113	if s.TableName == nil {
53114		invalidParams.Add(request.NewErrParamRequired("TableName"))
53115	}
53116	if s.Dimensions != nil {
53117		for i, v := range s.Dimensions {
53118			if v == nil {
53119				continue
53120			}
53121			if err := v.Validate(); err != nil {
53122				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
53123			}
53124		}
53125	}
53126	if s.Timestamp != nil {
53127		if err := s.Timestamp.Validate(); err != nil {
53128			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
53129		}
53130	}
53131
53132	if invalidParams.Len() > 0 {
53133		return invalidParams
53134	}
53135	return nil
53136}
53137
53138// SetDatabaseName sets the DatabaseName field's value.
53139func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
53140	s.DatabaseName = &v
53141	return s
53142}
53143
53144// SetDimensions sets the Dimensions field's value.
53145func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
53146	s.Dimensions = v
53147	return s
53148}
53149
53150// SetRoleArn sets the RoleArn field's value.
53151func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
53152	s.RoleArn = &v
53153	return s
53154}
53155
53156// SetTableName sets the TableName field's value.
53157func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
53158	s.TableName = &v
53159	return s
53160}
53161
53162// SetTimestamp sets the Timestamp field's value.
53163func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
53164	s.Timestamp = v
53165	return s
53166}
53167
53168// Metadata attributes of the time series that are written in each measure record.
53169type TimestreamDimension struct {
53170	_ struct{} `type:"structure"`
53171
53172	// The metadata dimension name. This is the name of the column in the Amazon
53173	// Timestream database table record.
53174	//
53175	// Dimensions cannot be named: measure_name, measure_value, or time. These names
53176	// are reserved. Dimension names cannot start with ts_ or measure_value and
53177	// they cannot contain the colon (:) character.
53178	//
53179	// Name is a required field
53180	Name *string `locationName:"name" type:"string" required:"true"`
53181
53182	// The value to write in this column of the database record.
53183	//
53184	// Value is a required field
53185	Value *string `locationName:"value" type:"string" required:"true"`
53186}
53187
53188// String returns the string representation
53189func (s TimestreamDimension) String() string {
53190	return awsutil.Prettify(s)
53191}
53192
53193// GoString returns the string representation
53194func (s TimestreamDimension) GoString() string {
53195	return s.String()
53196}
53197
53198// Validate inspects the fields of the type to determine if they are valid.
53199func (s *TimestreamDimension) Validate() error {
53200	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
53201	if s.Name == nil {
53202		invalidParams.Add(request.NewErrParamRequired("Name"))
53203	}
53204	if s.Value == nil {
53205		invalidParams.Add(request.NewErrParamRequired("Value"))
53206	}
53207
53208	if invalidParams.Len() > 0 {
53209		return invalidParams
53210	}
53211	return nil
53212}
53213
53214// SetName sets the Name field's value.
53215func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
53216	s.Name = &v
53217	return s
53218}
53219
53220// SetValue sets the Value field's value.
53221func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
53222	s.Value = &v
53223	return s
53224}
53225
53226// Describes how to interpret an application-defined timestamp value from an
53227// MQTT message payload and the precision of that value.
53228type TimestreamTimestamp struct {
53229	_ struct{} `type:"structure"`
53230
53231	// The precision of the timestamp value that results from the expression described
53232	// in value.
53233	//
53234	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
53235	// is MILLISECONDS.
53236	//
53237	// Unit is a required field
53238	Unit *string `locationName:"unit" type:"string" required:"true"`
53239
53240	// An expression that returns a long epoch time value.
53241	//
53242	// Value is a required field
53243	Value *string `locationName:"value" type:"string" required:"true"`
53244}
53245
53246// String returns the string representation
53247func (s TimestreamTimestamp) String() string {
53248	return awsutil.Prettify(s)
53249}
53250
53251// GoString returns the string representation
53252func (s TimestreamTimestamp) GoString() string {
53253	return s.String()
53254}
53255
53256// Validate inspects the fields of the type to determine if they are valid.
53257func (s *TimestreamTimestamp) Validate() error {
53258	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
53259	if s.Unit == nil {
53260		invalidParams.Add(request.NewErrParamRequired("Unit"))
53261	}
53262	if s.Value == nil {
53263		invalidParams.Add(request.NewErrParamRequired("Value"))
53264	}
53265
53266	if invalidParams.Len() > 0 {
53267		return invalidParams
53268	}
53269	return nil
53270}
53271
53272// SetUnit sets the Unit field's value.
53273func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
53274	s.Unit = &v
53275	return s
53276}
53277
53278// SetValue sets the Value field's value.
53279func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
53280	s.Value = &v
53281	return s
53282}
53283
53284// Specifies the TLS context to use for the test authorizer request.
53285type TlsContext struct {
53286	_ struct{} `type:"structure"`
53287
53288	// The value of the serverName key in a TLS authorization request.
53289	ServerName *string `locationName:"serverName" min:"1" type:"string"`
53290}
53291
53292// String returns the string representation
53293func (s TlsContext) String() string {
53294	return awsutil.Prettify(s)
53295}
53296
53297// GoString returns the string representation
53298func (s TlsContext) GoString() string {
53299	return s.String()
53300}
53301
53302// Validate inspects the fields of the type to determine if they are valid.
53303func (s *TlsContext) Validate() error {
53304	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
53305	if s.ServerName != nil && len(*s.ServerName) < 1 {
53306		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
53307	}
53308
53309	if invalidParams.Len() > 0 {
53310		return invalidParams
53311	}
53312	return nil
53313}
53314
53315// SetServerName sets the ServerName field's value.
53316func (s *TlsContext) SetServerName(v string) *TlsContext {
53317	s.ServerName = &v
53318	return s
53319}
53320
53321// Describes a rule.
53322type TopicRule struct {
53323	_ struct{} `type:"structure"`
53324
53325	// The actions associated with the rule.
53326	Actions []*Action `locationName:"actions" type:"list"`
53327
53328	// The version of the SQL rules engine to use when evaluating the rule.
53329	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
53330
53331	// The date and time the rule was created.
53332	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
53333
53334	// The description of the rule.
53335	Description *string `locationName:"description" type:"string"`
53336
53337	// The action to perform when an error occurs.
53338	ErrorAction *Action `locationName:"errorAction" type:"structure"`
53339
53340	// Specifies whether the rule is disabled.
53341	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
53342
53343	// The name of the rule.
53344	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
53345
53346	// The SQL statement used to query the topic. When using a SQL query with multiple
53347	// lines, be sure to escape the newline characters.
53348	Sql *string `locationName:"sql" type:"string"`
53349}
53350
53351// String returns the string representation
53352func (s TopicRule) String() string {
53353	return awsutil.Prettify(s)
53354}
53355
53356// GoString returns the string representation
53357func (s TopicRule) GoString() string {
53358	return s.String()
53359}
53360
53361// SetActions sets the Actions field's value.
53362func (s *TopicRule) SetActions(v []*Action) *TopicRule {
53363	s.Actions = v
53364	return s
53365}
53366
53367// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
53368func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
53369	s.AwsIotSqlVersion = &v
53370	return s
53371}
53372
53373// SetCreatedAt sets the CreatedAt field's value.
53374func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
53375	s.CreatedAt = &v
53376	return s
53377}
53378
53379// SetDescription sets the Description field's value.
53380func (s *TopicRule) SetDescription(v string) *TopicRule {
53381	s.Description = &v
53382	return s
53383}
53384
53385// SetErrorAction sets the ErrorAction field's value.
53386func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
53387	s.ErrorAction = v
53388	return s
53389}
53390
53391// SetRuleDisabled sets the RuleDisabled field's value.
53392func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
53393	s.RuleDisabled = &v
53394	return s
53395}
53396
53397// SetRuleName sets the RuleName field's value.
53398func (s *TopicRule) SetRuleName(v string) *TopicRule {
53399	s.RuleName = &v
53400	return s
53401}
53402
53403// SetSql sets the Sql field's value.
53404func (s *TopicRule) SetSql(v string) *TopicRule {
53405	s.Sql = &v
53406	return s
53407}
53408
53409// A topic rule destination.
53410type TopicRuleDestination struct {
53411	_ struct{} `type:"structure"`
53412
53413	// The topic rule destination URL.
53414	Arn *string `locationName:"arn" type:"string"`
53415
53416	// The date and time when the topic rule destination was created.
53417	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
53418
53419	// Properties of the HTTP URL.
53420	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
53421
53422	// The date and time when the topic rule destination was last updated.
53423	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
53424
53425	// The status of the topic rule destination. Valid values are:
53426	//
53427	// IN_PROGRESS
53428	//
53429	// A topic rule destination was created but has not been confirmed. You can
53430	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
53431	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
53432	// to your confirmation endpoint.
53433	//
53434	// ENABLED
53435	//
53436	// Confirmation was completed, and traffic to this destination is allowed. You
53437	// can set status to DISABLED by calling UpdateTopicRuleDestination.
53438	//
53439	// DISABLED
53440	//
53441	// Confirmation was completed, and traffic to this destination is not allowed.
53442	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
53443	//
53444	// ERROR
53445	//
53446	// Confirmation could not be completed, for example if the confirmation timed
53447	// out. You can call GetTopicRuleDestination for details about the error. You
53448	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
53449	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
53450	// to your confirmation endpoint.
53451	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
53452
53453	// Additional details or reason why the topic rule destination is in the current
53454	// status.
53455	StatusReason *string `locationName:"statusReason" type:"string"`
53456
53457	// Properties of the virtual private cloud (VPC) connection.
53458	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
53459}
53460
53461// String returns the string representation
53462func (s TopicRuleDestination) String() string {
53463	return awsutil.Prettify(s)
53464}
53465
53466// GoString returns the string representation
53467func (s TopicRuleDestination) GoString() string {
53468	return s.String()
53469}
53470
53471// SetArn sets the Arn field's value.
53472func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
53473	s.Arn = &v
53474	return s
53475}
53476
53477// SetCreatedAt sets the CreatedAt field's value.
53478func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
53479	s.CreatedAt = &v
53480	return s
53481}
53482
53483// SetHttpUrlProperties sets the HttpUrlProperties field's value.
53484func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
53485	s.HttpUrlProperties = v
53486	return s
53487}
53488
53489// SetLastUpdatedAt sets the LastUpdatedAt field's value.
53490func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
53491	s.LastUpdatedAt = &v
53492	return s
53493}
53494
53495// SetStatus sets the Status field's value.
53496func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
53497	s.Status = &v
53498	return s
53499}
53500
53501// SetStatusReason sets the StatusReason field's value.
53502func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
53503	s.StatusReason = &v
53504	return s
53505}
53506
53507// SetVpcProperties sets the VpcProperties field's value.
53508func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
53509	s.VpcProperties = v
53510	return s
53511}
53512
53513// Configuration of the topic rule destination.
53514type TopicRuleDestinationConfiguration struct {
53515	_ struct{} `type:"structure"`
53516
53517	// Configuration of the HTTP URL.
53518	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
53519
53520	// Configuration of the virtual private cloud (VPC) connection.
53521	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
53522}
53523
53524// String returns the string representation
53525func (s TopicRuleDestinationConfiguration) String() string {
53526	return awsutil.Prettify(s)
53527}
53528
53529// GoString returns the string representation
53530func (s TopicRuleDestinationConfiguration) GoString() string {
53531	return s.String()
53532}
53533
53534// Validate inspects the fields of the type to determine if they are valid.
53535func (s *TopicRuleDestinationConfiguration) Validate() error {
53536	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
53537	if s.HttpUrlConfiguration != nil {
53538		if err := s.HttpUrlConfiguration.Validate(); err != nil {
53539			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
53540		}
53541	}
53542	if s.VpcConfiguration != nil {
53543		if err := s.VpcConfiguration.Validate(); err != nil {
53544			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
53545		}
53546	}
53547
53548	if invalidParams.Len() > 0 {
53549		return invalidParams
53550	}
53551	return nil
53552}
53553
53554// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
53555func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
53556	s.HttpUrlConfiguration = v
53557	return s
53558}
53559
53560// SetVpcConfiguration sets the VpcConfiguration field's value.
53561func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
53562	s.VpcConfiguration = v
53563	return s
53564}
53565
53566// Information about the topic rule destination.
53567type TopicRuleDestinationSummary struct {
53568	_ struct{} `type:"structure"`
53569
53570	// The topic rule destination ARN.
53571	Arn *string `locationName:"arn" type:"string"`
53572
53573	// The date and time when the topic rule destination was created.
53574	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
53575
53576	// Information about the HTTP URL.
53577	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
53578
53579	// The date and time when the topic rule destination was last updated.
53580	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
53581
53582	// The status of the topic rule destination. Valid values are:
53583	//
53584	// IN_PROGRESS
53585	//
53586	// A topic rule destination was created but has not been confirmed. You can
53587	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
53588	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
53589	// to your confirmation endpoint.
53590	//
53591	// ENABLED
53592	//
53593	// Confirmation was completed, and traffic to this destination is allowed. You
53594	// can set status to DISABLED by calling UpdateTopicRuleDestination.
53595	//
53596	// DISABLED
53597	//
53598	// Confirmation was completed, and traffic to this destination is not allowed.
53599	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
53600	//
53601	// ERROR
53602	//
53603	// Confirmation could not be completed, for example if the confirmation timed
53604	// out. You can call GetTopicRuleDestination for details about the error. You
53605	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
53606	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
53607	// to your confirmation endpoint.
53608	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
53609
53610	// The reason the topic rule destination is in the current status.
53611	StatusReason *string `locationName:"statusReason" type:"string"`
53612
53613	// Information about the virtual private cloud (VPC) connection.
53614	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
53615}
53616
53617// String returns the string representation
53618func (s TopicRuleDestinationSummary) String() string {
53619	return awsutil.Prettify(s)
53620}
53621
53622// GoString returns the string representation
53623func (s TopicRuleDestinationSummary) GoString() string {
53624	return s.String()
53625}
53626
53627// SetArn sets the Arn field's value.
53628func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
53629	s.Arn = &v
53630	return s
53631}
53632
53633// SetCreatedAt sets the CreatedAt field's value.
53634func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
53635	s.CreatedAt = &v
53636	return s
53637}
53638
53639// SetHttpUrlSummary sets the HttpUrlSummary field's value.
53640func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
53641	s.HttpUrlSummary = v
53642	return s
53643}
53644
53645// SetLastUpdatedAt sets the LastUpdatedAt field's value.
53646func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
53647	s.LastUpdatedAt = &v
53648	return s
53649}
53650
53651// SetStatus sets the Status field's value.
53652func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
53653	s.Status = &v
53654	return s
53655}
53656
53657// SetStatusReason sets the StatusReason field's value.
53658func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
53659	s.StatusReason = &v
53660	return s
53661}
53662
53663// SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
53664func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
53665	s.VpcDestinationSummary = v
53666	return s
53667}
53668
53669// Describes a rule.
53670type TopicRuleListItem struct {
53671	_ struct{} `type:"structure"`
53672
53673	// The date and time the rule was created.
53674	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
53675
53676	// The rule ARN.
53677	RuleArn *string `locationName:"ruleArn" type:"string"`
53678
53679	// Specifies whether the rule is disabled.
53680	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
53681
53682	// The name of the rule.
53683	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
53684
53685	// The pattern for the topic names that apply.
53686	TopicPattern *string `locationName:"topicPattern" type:"string"`
53687}
53688
53689// String returns the string representation
53690func (s TopicRuleListItem) String() string {
53691	return awsutil.Prettify(s)
53692}
53693
53694// GoString returns the string representation
53695func (s TopicRuleListItem) GoString() string {
53696	return s.String()
53697}
53698
53699// SetCreatedAt sets the CreatedAt field's value.
53700func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
53701	s.CreatedAt = &v
53702	return s
53703}
53704
53705// SetRuleArn sets the RuleArn field's value.
53706func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
53707	s.RuleArn = &v
53708	return s
53709}
53710
53711// SetRuleDisabled sets the RuleDisabled field's value.
53712func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
53713	s.RuleDisabled = &v
53714	return s
53715}
53716
53717// SetRuleName sets the RuleName field's value.
53718func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
53719	s.RuleName = &v
53720	return s
53721}
53722
53723// SetTopicPattern sets the TopicPattern field's value.
53724func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
53725	s.TopicPattern = &v
53726	return s
53727}
53728
53729// Describes a rule.
53730type TopicRulePayload struct {
53731	_ struct{} `type:"structure"`
53732
53733	// The actions associated with the rule.
53734	//
53735	// Actions is a required field
53736	Actions []*Action `locationName:"actions" type:"list" required:"true"`
53737
53738	// The version of the SQL rules engine to use when evaluating the rule.
53739	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
53740
53741	// The description of the rule.
53742	Description *string `locationName:"description" type:"string"`
53743
53744	// The action to take when an error occurs.
53745	ErrorAction *Action `locationName:"errorAction" type:"structure"`
53746
53747	// Specifies whether the rule is disabled.
53748	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
53749
53750	// The SQL statement used to query the topic. For more information, see AWS
53751	// IoT SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
53752	// in the AWS IoT Developer Guide.
53753	//
53754	// Sql is a required field
53755	Sql *string `locationName:"sql" type:"string" required:"true"`
53756}
53757
53758// String returns the string representation
53759func (s TopicRulePayload) String() string {
53760	return awsutil.Prettify(s)
53761}
53762
53763// GoString returns the string representation
53764func (s TopicRulePayload) GoString() string {
53765	return s.String()
53766}
53767
53768// Validate inspects the fields of the type to determine if they are valid.
53769func (s *TopicRulePayload) Validate() error {
53770	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
53771	if s.Actions == nil {
53772		invalidParams.Add(request.NewErrParamRequired("Actions"))
53773	}
53774	if s.Sql == nil {
53775		invalidParams.Add(request.NewErrParamRequired("Sql"))
53776	}
53777	if s.Actions != nil {
53778		for i, v := range s.Actions {
53779			if v == nil {
53780				continue
53781			}
53782			if err := v.Validate(); err != nil {
53783				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
53784			}
53785		}
53786	}
53787	if s.ErrorAction != nil {
53788		if err := s.ErrorAction.Validate(); err != nil {
53789			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
53790		}
53791	}
53792
53793	if invalidParams.Len() > 0 {
53794		return invalidParams
53795	}
53796	return nil
53797}
53798
53799// SetActions sets the Actions field's value.
53800func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
53801	s.Actions = v
53802	return s
53803}
53804
53805// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
53806func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
53807	s.AwsIotSqlVersion = &v
53808	return s
53809}
53810
53811// SetDescription sets the Description field's value.
53812func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
53813	s.Description = &v
53814	return s
53815}
53816
53817// SetErrorAction sets the ErrorAction field's value.
53818func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
53819	s.ErrorAction = v
53820	return s
53821}
53822
53823// SetRuleDisabled sets the RuleDisabled field's value.
53824func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
53825	s.RuleDisabled = &v
53826	return s
53827}
53828
53829// SetSql sets the Sql field's value.
53830func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
53831	s.Sql = &v
53832	return s
53833}
53834
53835// You can't revert the certificate transfer because the transfer is already
53836// complete.
53837type TransferAlreadyCompletedException struct {
53838	_            struct{}                  `type:"structure"`
53839	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53840
53841	// The message for the exception.
53842	Message_ *string `locationName:"message" type:"string"`
53843}
53844
53845// String returns the string representation
53846func (s TransferAlreadyCompletedException) String() string {
53847	return awsutil.Prettify(s)
53848}
53849
53850// GoString returns the string representation
53851func (s TransferAlreadyCompletedException) GoString() string {
53852	return s.String()
53853}
53854
53855func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
53856	return &TransferAlreadyCompletedException{
53857		RespMetadata: v,
53858	}
53859}
53860
53861// Code returns the exception type name.
53862func (s *TransferAlreadyCompletedException) Code() string {
53863	return "TransferAlreadyCompletedException"
53864}
53865
53866// Message returns the exception's message.
53867func (s *TransferAlreadyCompletedException) Message() string {
53868	if s.Message_ != nil {
53869		return *s.Message_
53870	}
53871	return ""
53872}
53873
53874// OrigErr always returns nil, satisfies awserr.Error interface.
53875func (s *TransferAlreadyCompletedException) OrigErr() error {
53876	return nil
53877}
53878
53879func (s *TransferAlreadyCompletedException) Error() string {
53880	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53881}
53882
53883// Status code returns the HTTP status code for the request's response error.
53884func (s *TransferAlreadyCompletedException) StatusCode() int {
53885	return s.RespMetadata.StatusCode
53886}
53887
53888// RequestID returns the service's response RequestID for request.
53889func (s *TransferAlreadyCompletedException) RequestID() string {
53890	return s.RespMetadata.RequestID
53891}
53892
53893// The input for the TransferCertificate operation.
53894type TransferCertificateInput struct {
53895	_ struct{} `type:"structure"`
53896
53897	// The ID of the certificate. (The last part of the certificate ARN contains
53898	// the certificate ID.)
53899	//
53900	// CertificateId is a required field
53901	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
53902
53903	// The AWS account.
53904	//
53905	// TargetAwsAccount is a required field
53906	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
53907
53908	// The transfer message.
53909	TransferMessage *string `locationName:"transferMessage" type:"string"`
53910}
53911
53912// String returns the string representation
53913func (s TransferCertificateInput) String() string {
53914	return awsutil.Prettify(s)
53915}
53916
53917// GoString returns the string representation
53918func (s TransferCertificateInput) GoString() string {
53919	return s.String()
53920}
53921
53922// Validate inspects the fields of the type to determine if they are valid.
53923func (s *TransferCertificateInput) Validate() error {
53924	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
53925	if s.CertificateId == nil {
53926		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
53927	}
53928	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
53929		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
53930	}
53931	if s.TargetAwsAccount == nil {
53932		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
53933	}
53934	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
53935		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
53936	}
53937
53938	if invalidParams.Len() > 0 {
53939		return invalidParams
53940	}
53941	return nil
53942}
53943
53944// SetCertificateId sets the CertificateId field's value.
53945func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
53946	s.CertificateId = &v
53947	return s
53948}
53949
53950// SetTargetAwsAccount sets the TargetAwsAccount field's value.
53951func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
53952	s.TargetAwsAccount = &v
53953	return s
53954}
53955
53956// SetTransferMessage sets the TransferMessage field's value.
53957func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
53958	s.TransferMessage = &v
53959	return s
53960}
53961
53962// The output from the TransferCertificate operation.
53963type TransferCertificateOutput struct {
53964	_ struct{} `type:"structure"`
53965
53966	// The ARN of the certificate.
53967	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
53968}
53969
53970// String returns the string representation
53971func (s TransferCertificateOutput) String() string {
53972	return awsutil.Prettify(s)
53973}
53974
53975// GoString returns the string representation
53976func (s TransferCertificateOutput) GoString() string {
53977	return s.String()
53978}
53979
53980// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
53981func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
53982	s.TransferredCertificateArn = &v
53983	return s
53984}
53985
53986// You can't transfer the certificate because authorization policies are still
53987// attached.
53988type TransferConflictException struct {
53989	_            struct{}                  `type:"structure"`
53990	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53991
53992	// The message for the exception.
53993	Message_ *string `locationName:"message" type:"string"`
53994}
53995
53996// String returns the string representation
53997func (s TransferConflictException) String() string {
53998	return awsutil.Prettify(s)
53999}
54000
54001// GoString returns the string representation
54002func (s TransferConflictException) GoString() string {
54003	return s.String()
54004}
54005
54006func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
54007	return &TransferConflictException{
54008		RespMetadata: v,
54009	}
54010}
54011
54012// Code returns the exception type name.
54013func (s *TransferConflictException) Code() string {
54014	return "TransferConflictException"
54015}
54016
54017// Message returns the exception's message.
54018func (s *TransferConflictException) Message() string {
54019	if s.Message_ != nil {
54020		return *s.Message_
54021	}
54022	return ""
54023}
54024
54025// OrigErr always returns nil, satisfies awserr.Error interface.
54026func (s *TransferConflictException) OrigErr() error {
54027	return nil
54028}
54029
54030func (s *TransferConflictException) Error() string {
54031	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54032}
54033
54034// Status code returns the HTTP status code for the request's response error.
54035func (s *TransferConflictException) StatusCode() int {
54036	return s.RespMetadata.StatusCode
54037}
54038
54039// RequestID returns the service's response RequestID for request.
54040func (s *TransferConflictException) RequestID() string {
54041	return s.RespMetadata.RequestID
54042}
54043
54044// Data used to transfer a certificate to an AWS account.
54045type TransferData struct {
54046	_ struct{} `type:"structure"`
54047
54048	// The date the transfer was accepted.
54049	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
54050
54051	// The date the transfer was rejected.
54052	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
54053
54054	// The reason why the transfer was rejected.
54055	RejectReason *string `locationName:"rejectReason" type:"string"`
54056
54057	// The date the transfer took place.
54058	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
54059
54060	// The transfer message.
54061	TransferMessage *string `locationName:"transferMessage" type:"string"`
54062}
54063
54064// String returns the string representation
54065func (s TransferData) String() string {
54066	return awsutil.Prettify(s)
54067}
54068
54069// GoString returns the string representation
54070func (s TransferData) GoString() string {
54071	return s.String()
54072}
54073
54074// SetAcceptDate sets the AcceptDate field's value.
54075func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
54076	s.AcceptDate = &v
54077	return s
54078}
54079
54080// SetRejectDate sets the RejectDate field's value.
54081func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
54082	s.RejectDate = &v
54083	return s
54084}
54085
54086// SetRejectReason sets the RejectReason field's value.
54087func (s *TransferData) SetRejectReason(v string) *TransferData {
54088	s.RejectReason = &v
54089	return s
54090}
54091
54092// SetTransferDate sets the TransferDate field's value.
54093func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
54094	s.TransferDate = &v
54095	return s
54096}
54097
54098// SetTransferMessage sets the TransferMessage field's value.
54099func (s *TransferData) SetTransferMessage(v string) *TransferData {
54100	s.TransferMessage = &v
54101	return s
54102}
54103
54104// You are not authorized to perform this operation.
54105type UnauthorizedException struct {
54106	_            struct{}                  `type:"structure"`
54107	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54108
54109	// The message for the exception.
54110	Message_ *string `locationName:"message" type:"string"`
54111}
54112
54113// String returns the string representation
54114func (s UnauthorizedException) String() string {
54115	return awsutil.Prettify(s)
54116}
54117
54118// GoString returns the string representation
54119func (s UnauthorizedException) GoString() string {
54120	return s.String()
54121}
54122
54123func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
54124	return &UnauthorizedException{
54125		RespMetadata: v,
54126	}
54127}
54128
54129// Code returns the exception type name.
54130func (s *UnauthorizedException) Code() string {
54131	return "UnauthorizedException"
54132}
54133
54134// Message returns the exception's message.
54135func (s *UnauthorizedException) Message() string {
54136	if s.Message_ != nil {
54137		return *s.Message_
54138	}
54139	return ""
54140}
54141
54142// OrigErr always returns nil, satisfies awserr.Error interface.
54143func (s *UnauthorizedException) OrigErr() error {
54144	return nil
54145}
54146
54147func (s *UnauthorizedException) Error() string {
54148	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54149}
54150
54151// Status code returns the HTTP status code for the request's response error.
54152func (s *UnauthorizedException) StatusCode() int {
54153	return s.RespMetadata.StatusCode
54154}
54155
54156// RequestID returns the service's response RequestID for request.
54157func (s *UnauthorizedException) RequestID() string {
54158	return s.RespMetadata.RequestID
54159}
54160
54161type UntagResourceInput struct {
54162	_ struct{} `type:"structure"`
54163
54164	// The ARN of the resource.
54165	//
54166	// ResourceArn is a required field
54167	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
54168
54169	// A list of the keys of the tags to be removed from the resource.
54170	//
54171	// TagKeys is a required field
54172	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
54173}
54174
54175// String returns the string representation
54176func (s UntagResourceInput) String() string {
54177	return awsutil.Prettify(s)
54178}
54179
54180// GoString returns the string representation
54181func (s UntagResourceInput) GoString() string {
54182	return s.String()
54183}
54184
54185// Validate inspects the fields of the type to determine if they are valid.
54186func (s *UntagResourceInput) Validate() error {
54187	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
54188	if s.ResourceArn == nil {
54189		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
54190	}
54191	if s.TagKeys == nil {
54192		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
54193	}
54194
54195	if invalidParams.Len() > 0 {
54196		return invalidParams
54197	}
54198	return nil
54199}
54200
54201// SetResourceArn sets the ResourceArn field's value.
54202func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
54203	s.ResourceArn = &v
54204	return s
54205}
54206
54207// SetTagKeys sets the TagKeys field's value.
54208func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
54209	s.TagKeys = v
54210	return s
54211}
54212
54213type UntagResourceOutput struct {
54214	_ struct{} `type:"structure"`
54215}
54216
54217// String returns the string representation
54218func (s UntagResourceOutput) String() string {
54219	return awsutil.Prettify(s)
54220}
54221
54222// GoString returns the string representation
54223func (s UntagResourceOutput) GoString() string {
54224	return s.String()
54225}
54226
54227type UpdateAccountAuditConfigurationInput struct {
54228	_ struct{} `type:"structure"`
54229
54230	// Specifies which audit checks are enabled and disabled for this account. Use
54231	// DescribeAccountAuditConfiguration to see the list of all checks, including
54232	// those that are currently enabled.
54233	//
54234	// Some data collection might start immediately when certain checks are enabled.
54235	// When a check is disabled, any data collected so far in relation to the check
54236	// is deleted.
54237	//
54238	// You cannot disable a check if it's used by any scheduled audit. You must
54239	// first delete the check from the scheduled audit or delete the scheduled audit
54240	// itself.
54241	//
54242	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
54243	// and must specify at least one enabled check.
54244	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
54245
54246	// Information about the targets to which audit notifications are sent.
54247	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
54248
54249	// The Amazon Resource Name (ARN) of the role that grants permission to AWS
54250	// IoT to access information about your devices, policies, certificates, and
54251	// other items as required when performing an audit.
54252	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
54253}
54254
54255// String returns the string representation
54256func (s UpdateAccountAuditConfigurationInput) String() string {
54257	return awsutil.Prettify(s)
54258}
54259
54260// GoString returns the string representation
54261func (s UpdateAccountAuditConfigurationInput) GoString() string {
54262	return s.String()
54263}
54264
54265// Validate inspects the fields of the type to determine if they are valid.
54266func (s *UpdateAccountAuditConfigurationInput) Validate() error {
54267	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
54268	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
54269		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
54270	}
54271	if s.AuditNotificationTargetConfigurations != nil {
54272		for i, v := range s.AuditNotificationTargetConfigurations {
54273			if v == nil {
54274				continue
54275			}
54276			if err := v.Validate(); err != nil {
54277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
54278			}
54279		}
54280	}
54281
54282	if invalidParams.Len() > 0 {
54283		return invalidParams
54284	}
54285	return nil
54286}
54287
54288// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
54289func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
54290	s.AuditCheckConfigurations = v
54291	return s
54292}
54293
54294// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
54295func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
54296	s.AuditNotificationTargetConfigurations = v
54297	return s
54298}
54299
54300// SetRoleArn sets the RoleArn field's value.
54301func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
54302	s.RoleArn = &v
54303	return s
54304}
54305
54306type UpdateAccountAuditConfigurationOutput struct {
54307	_ struct{} `type:"structure"`
54308}
54309
54310// String returns the string representation
54311func (s UpdateAccountAuditConfigurationOutput) String() string {
54312	return awsutil.Prettify(s)
54313}
54314
54315// GoString returns the string representation
54316func (s UpdateAccountAuditConfigurationOutput) GoString() string {
54317	return s.String()
54318}
54319
54320type UpdateAuditSuppressionInput struct {
54321	_ struct{} `type:"structure"`
54322
54323	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
54324	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
54325	// to select which checks are enabled.)
54326	//
54327	// CheckName is a required field
54328	CheckName *string `locationName:"checkName" type:"string" required:"true"`
54329
54330	// The description of the audit suppression.
54331	Description *string `locationName:"description" type:"string"`
54332
54333	// The expiration date (epoch timestamp in seconds) that you want the suppression
54334	// to adhere to.
54335	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
54336
54337	// Information that identifies the noncompliant resource.
54338	//
54339	// ResourceIdentifier is a required field
54340	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
54341
54342	// Indicates whether a suppression should exist indefinitely or not.
54343	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
54344}
54345
54346// String returns the string representation
54347func (s UpdateAuditSuppressionInput) String() string {
54348	return awsutil.Prettify(s)
54349}
54350
54351// GoString returns the string representation
54352func (s UpdateAuditSuppressionInput) GoString() string {
54353	return s.String()
54354}
54355
54356// Validate inspects the fields of the type to determine if they are valid.
54357func (s *UpdateAuditSuppressionInput) Validate() error {
54358	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
54359	if s.CheckName == nil {
54360		invalidParams.Add(request.NewErrParamRequired("CheckName"))
54361	}
54362	if s.ResourceIdentifier == nil {
54363		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
54364	}
54365	if s.ResourceIdentifier != nil {
54366		if err := s.ResourceIdentifier.Validate(); err != nil {
54367			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
54368		}
54369	}
54370
54371	if invalidParams.Len() > 0 {
54372		return invalidParams
54373	}
54374	return nil
54375}
54376
54377// SetCheckName sets the CheckName field's value.
54378func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
54379	s.CheckName = &v
54380	return s
54381}
54382
54383// SetDescription sets the Description field's value.
54384func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
54385	s.Description = &v
54386	return s
54387}
54388
54389// SetExpirationDate sets the ExpirationDate field's value.
54390func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
54391	s.ExpirationDate = &v
54392	return s
54393}
54394
54395// SetResourceIdentifier sets the ResourceIdentifier field's value.
54396func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
54397	s.ResourceIdentifier = v
54398	return s
54399}
54400
54401// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
54402func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
54403	s.SuppressIndefinitely = &v
54404	return s
54405}
54406
54407type UpdateAuditSuppressionOutput struct {
54408	_ struct{} `type:"structure"`
54409}
54410
54411// String returns the string representation
54412func (s UpdateAuditSuppressionOutput) String() string {
54413	return awsutil.Prettify(s)
54414}
54415
54416// GoString returns the string representation
54417func (s UpdateAuditSuppressionOutput) GoString() string {
54418	return s.String()
54419}
54420
54421type UpdateAuthorizerInput struct {
54422	_ struct{} `type:"structure"`
54423
54424	// The ARN of the authorizer's Lambda function.
54425	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
54426
54427	// The authorizer name.
54428	//
54429	// AuthorizerName is a required field
54430	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
54431
54432	// The status of the update authorizer request.
54433	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
54434
54435	// The key used to extract the token from the HTTP headers.
54436	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
54437
54438	// The public keys used to verify the token signature.
54439	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
54440}
54441
54442// String returns the string representation
54443func (s UpdateAuthorizerInput) String() string {
54444	return awsutil.Prettify(s)
54445}
54446
54447// GoString returns the string representation
54448func (s UpdateAuthorizerInput) GoString() string {
54449	return s.String()
54450}
54451
54452// Validate inspects the fields of the type to determine if they are valid.
54453func (s *UpdateAuthorizerInput) Validate() error {
54454	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
54455	if s.AuthorizerName == nil {
54456		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
54457	}
54458	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
54459		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
54460	}
54461	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
54462		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
54463	}
54464
54465	if invalidParams.Len() > 0 {
54466		return invalidParams
54467	}
54468	return nil
54469}
54470
54471// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
54472func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
54473	s.AuthorizerFunctionArn = &v
54474	return s
54475}
54476
54477// SetAuthorizerName sets the AuthorizerName field's value.
54478func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
54479	s.AuthorizerName = &v
54480	return s
54481}
54482
54483// SetStatus sets the Status field's value.
54484func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
54485	s.Status = &v
54486	return s
54487}
54488
54489// SetTokenKeyName sets the TokenKeyName field's value.
54490func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
54491	s.TokenKeyName = &v
54492	return s
54493}
54494
54495// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
54496func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
54497	s.TokenSigningPublicKeys = v
54498	return s
54499}
54500
54501type UpdateAuthorizerOutput struct {
54502	_ struct{} `type:"structure"`
54503
54504	// The authorizer ARN.
54505	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
54506
54507	// The authorizer name.
54508	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
54509}
54510
54511// String returns the string representation
54512func (s UpdateAuthorizerOutput) String() string {
54513	return awsutil.Prettify(s)
54514}
54515
54516// GoString returns the string representation
54517func (s UpdateAuthorizerOutput) GoString() string {
54518	return s.String()
54519}
54520
54521// SetAuthorizerArn sets the AuthorizerArn field's value.
54522func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
54523	s.AuthorizerArn = &v
54524	return s
54525}
54526
54527// SetAuthorizerName sets the AuthorizerName field's value.
54528func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
54529	s.AuthorizerName = &v
54530	return s
54531}
54532
54533type UpdateBillingGroupInput struct {
54534	_ struct{} `type:"structure"`
54535
54536	// The name of the billing group.
54537	//
54538	// BillingGroupName is a required field
54539	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
54540
54541	// The properties of the billing group.
54542	//
54543	// BillingGroupProperties is a required field
54544	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
54545
54546	// The expected version of the billing group. If the version of the billing
54547	// group does not match the expected version specified in the request, the UpdateBillingGroup
54548	// request is rejected with a VersionConflictException.
54549	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
54550}
54551
54552// String returns the string representation
54553func (s UpdateBillingGroupInput) String() string {
54554	return awsutil.Prettify(s)
54555}
54556
54557// GoString returns the string representation
54558func (s UpdateBillingGroupInput) GoString() string {
54559	return s.String()
54560}
54561
54562// Validate inspects the fields of the type to determine if they are valid.
54563func (s *UpdateBillingGroupInput) Validate() error {
54564	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
54565	if s.BillingGroupName == nil {
54566		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
54567	}
54568	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
54569		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
54570	}
54571	if s.BillingGroupProperties == nil {
54572		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
54573	}
54574
54575	if invalidParams.Len() > 0 {
54576		return invalidParams
54577	}
54578	return nil
54579}
54580
54581// SetBillingGroupName sets the BillingGroupName field's value.
54582func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
54583	s.BillingGroupName = &v
54584	return s
54585}
54586
54587// SetBillingGroupProperties sets the BillingGroupProperties field's value.
54588func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
54589	s.BillingGroupProperties = v
54590	return s
54591}
54592
54593// SetExpectedVersion sets the ExpectedVersion field's value.
54594func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
54595	s.ExpectedVersion = &v
54596	return s
54597}
54598
54599type UpdateBillingGroupOutput struct {
54600	_ struct{} `type:"structure"`
54601
54602	// The latest version of the billing group.
54603	Version *int64 `locationName:"version" type:"long"`
54604}
54605
54606// String returns the string representation
54607func (s UpdateBillingGroupOutput) String() string {
54608	return awsutil.Prettify(s)
54609}
54610
54611// GoString returns the string representation
54612func (s UpdateBillingGroupOutput) GoString() string {
54613	return s.String()
54614}
54615
54616// SetVersion sets the Version field's value.
54617func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
54618	s.Version = &v
54619	return s
54620}
54621
54622// The input to the UpdateCACertificate operation.
54623type UpdateCACertificateInput struct {
54624	_ struct{} `type:"structure"`
54625
54626	// The CA certificate identifier.
54627	//
54628	// CertificateId is a required field
54629	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
54630
54631	// The new value for the auto registration status. Valid values are: "ENABLE"
54632	// or "DISABLE".
54633	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
54634
54635	// The updated status of the CA certificate.
54636	//
54637	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
54638	// used.
54639	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
54640
54641	// Information about the registration configuration.
54642	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
54643
54644	// If true, removes auto registration.
54645	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
54646}
54647
54648// String returns the string representation
54649func (s UpdateCACertificateInput) String() string {
54650	return awsutil.Prettify(s)
54651}
54652
54653// GoString returns the string representation
54654func (s UpdateCACertificateInput) GoString() string {
54655	return s.String()
54656}
54657
54658// Validate inspects the fields of the type to determine if they are valid.
54659func (s *UpdateCACertificateInput) Validate() error {
54660	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
54661	if s.CertificateId == nil {
54662		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
54663	}
54664	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
54665		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
54666	}
54667	if s.RegistrationConfig != nil {
54668		if err := s.RegistrationConfig.Validate(); err != nil {
54669			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
54670		}
54671	}
54672
54673	if invalidParams.Len() > 0 {
54674		return invalidParams
54675	}
54676	return nil
54677}
54678
54679// SetCertificateId sets the CertificateId field's value.
54680func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
54681	s.CertificateId = &v
54682	return s
54683}
54684
54685// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
54686func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
54687	s.NewAutoRegistrationStatus = &v
54688	return s
54689}
54690
54691// SetNewStatus sets the NewStatus field's value.
54692func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
54693	s.NewStatus = &v
54694	return s
54695}
54696
54697// SetRegistrationConfig sets the RegistrationConfig field's value.
54698func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
54699	s.RegistrationConfig = v
54700	return s
54701}
54702
54703// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
54704func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
54705	s.RemoveAutoRegistration = &v
54706	return s
54707}
54708
54709type UpdateCACertificateOutput struct {
54710	_ struct{} `type:"structure"`
54711}
54712
54713// String returns the string representation
54714func (s UpdateCACertificateOutput) String() string {
54715	return awsutil.Prettify(s)
54716}
54717
54718// GoString returns the string representation
54719func (s UpdateCACertificateOutput) GoString() string {
54720	return s.String()
54721}
54722
54723// Parameters to define a mitigation action that changes the state of the CA
54724// certificate to inactive.
54725type UpdateCACertificateParams struct {
54726	_ struct{} `type:"structure"`
54727
54728	// The action that you want to apply to the CA certificate. The only supported
54729	// value is DEACTIVATE.
54730	//
54731	// Action is a required field
54732	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
54733}
54734
54735// String returns the string representation
54736func (s UpdateCACertificateParams) String() string {
54737	return awsutil.Prettify(s)
54738}
54739
54740// GoString returns the string representation
54741func (s UpdateCACertificateParams) GoString() string {
54742	return s.String()
54743}
54744
54745// Validate inspects the fields of the type to determine if they are valid.
54746func (s *UpdateCACertificateParams) Validate() error {
54747	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
54748	if s.Action == nil {
54749		invalidParams.Add(request.NewErrParamRequired("Action"))
54750	}
54751
54752	if invalidParams.Len() > 0 {
54753		return invalidParams
54754	}
54755	return nil
54756}
54757
54758// SetAction sets the Action field's value.
54759func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
54760	s.Action = &v
54761	return s
54762}
54763
54764// The input for the UpdateCertificate operation.
54765type UpdateCertificateInput struct {
54766	_ struct{} `type:"structure"`
54767
54768	// The ID of the certificate. (The last part of the certificate ARN contains
54769	// the certificate ID.)
54770	//
54771	// CertificateId is a required field
54772	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
54773
54774	// The new status.
54775	//
54776	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
54777	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
54778	// statuses used internally by AWS IoT. They are not intended for developer
54779	// use.
54780	//
54781	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
54782	// used.
54783	//
54784	// NewStatus is a required field
54785	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
54786}
54787
54788// String returns the string representation
54789func (s UpdateCertificateInput) String() string {
54790	return awsutil.Prettify(s)
54791}
54792
54793// GoString returns the string representation
54794func (s UpdateCertificateInput) GoString() string {
54795	return s.String()
54796}
54797
54798// Validate inspects the fields of the type to determine if they are valid.
54799func (s *UpdateCertificateInput) Validate() error {
54800	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
54801	if s.CertificateId == nil {
54802		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
54803	}
54804	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
54805		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
54806	}
54807	if s.NewStatus == nil {
54808		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
54809	}
54810
54811	if invalidParams.Len() > 0 {
54812		return invalidParams
54813	}
54814	return nil
54815}
54816
54817// SetCertificateId sets the CertificateId field's value.
54818func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
54819	s.CertificateId = &v
54820	return s
54821}
54822
54823// SetNewStatus sets the NewStatus field's value.
54824func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
54825	s.NewStatus = &v
54826	return s
54827}
54828
54829type UpdateCertificateOutput struct {
54830	_ struct{} `type:"structure"`
54831}
54832
54833// String returns the string representation
54834func (s UpdateCertificateOutput) String() string {
54835	return awsutil.Prettify(s)
54836}
54837
54838// GoString returns the string representation
54839func (s UpdateCertificateOutput) GoString() string {
54840	return s.String()
54841}
54842
54843type UpdateCustomMetricInput struct {
54844	_ struct{} `type:"structure"`
54845
54846	// Field represents a friendly name in the console for the custom metric, it
54847	// doesn't have to be unique. Don't use this name as the metric identifier in
54848	// the device metric report. Can be updated.
54849	//
54850	// DisplayName is a required field
54851	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
54852
54853	// The name of the custom metric. Cannot be updated.
54854	//
54855	// MetricName is a required field
54856	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
54857}
54858
54859// String returns the string representation
54860func (s UpdateCustomMetricInput) String() string {
54861	return awsutil.Prettify(s)
54862}
54863
54864// GoString returns the string representation
54865func (s UpdateCustomMetricInput) GoString() string {
54866	return s.String()
54867}
54868
54869// Validate inspects the fields of the type to determine if they are valid.
54870func (s *UpdateCustomMetricInput) Validate() error {
54871	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
54872	if s.DisplayName == nil {
54873		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
54874	}
54875	if s.MetricName == nil {
54876		invalidParams.Add(request.NewErrParamRequired("MetricName"))
54877	}
54878	if s.MetricName != nil && len(*s.MetricName) < 1 {
54879		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
54880	}
54881
54882	if invalidParams.Len() > 0 {
54883		return invalidParams
54884	}
54885	return nil
54886}
54887
54888// SetDisplayName sets the DisplayName field's value.
54889func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
54890	s.DisplayName = &v
54891	return s
54892}
54893
54894// SetMetricName sets the MetricName field's value.
54895func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
54896	s.MetricName = &v
54897	return s
54898}
54899
54900type UpdateCustomMetricOutput struct {
54901	_ struct{} `type:"structure"`
54902
54903	// The creation date of the custom metric in milliseconds since epoch.
54904	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
54905
54906	// A friendly name in the console for the custom metric
54907	DisplayName *string `locationName:"displayName" type:"string"`
54908
54909	// The time the custom metric was last modified in milliseconds since epoch.
54910	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
54911
54912	// The Amazon Resource Number (ARN) of the custom metric.
54913	MetricArn *string `locationName:"metricArn" type:"string"`
54914
54915	// The name of the custom metric.
54916	MetricName *string `locationName:"metricName" min:"1" type:"string"`
54917
54918	// The type of the custom metric. Types include string-list, ip-address-list,
54919	// number-list, and number.
54920	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
54921}
54922
54923// String returns the string representation
54924func (s UpdateCustomMetricOutput) String() string {
54925	return awsutil.Prettify(s)
54926}
54927
54928// GoString returns the string representation
54929func (s UpdateCustomMetricOutput) GoString() string {
54930	return s.String()
54931}
54932
54933// SetCreationDate sets the CreationDate field's value.
54934func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
54935	s.CreationDate = &v
54936	return s
54937}
54938
54939// SetDisplayName sets the DisplayName field's value.
54940func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
54941	s.DisplayName = &v
54942	return s
54943}
54944
54945// SetLastModifiedDate sets the LastModifiedDate field's value.
54946func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
54947	s.LastModifiedDate = &v
54948	return s
54949}
54950
54951// SetMetricArn sets the MetricArn field's value.
54952func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
54953	s.MetricArn = &v
54954	return s
54955}
54956
54957// SetMetricName sets the MetricName field's value.
54958func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
54959	s.MetricName = &v
54960	return s
54961}
54962
54963// SetMetricType sets the MetricType field's value.
54964func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
54965	s.MetricType = &v
54966	return s
54967}
54968
54969// Parameters to define a mitigation action that changes the state of the device
54970// certificate to inactive.
54971type UpdateDeviceCertificateParams struct {
54972	_ struct{} `type:"structure"`
54973
54974	// The action that you want to apply to the device certificate. The only supported
54975	// value is DEACTIVATE.
54976	//
54977	// Action is a required field
54978	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
54979}
54980
54981// String returns the string representation
54982func (s UpdateDeviceCertificateParams) String() string {
54983	return awsutil.Prettify(s)
54984}
54985
54986// GoString returns the string representation
54987func (s UpdateDeviceCertificateParams) GoString() string {
54988	return s.String()
54989}
54990
54991// Validate inspects the fields of the type to determine if they are valid.
54992func (s *UpdateDeviceCertificateParams) Validate() error {
54993	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
54994	if s.Action == nil {
54995		invalidParams.Add(request.NewErrParamRequired("Action"))
54996	}
54997
54998	if invalidParams.Len() > 0 {
54999		return invalidParams
55000	}
55001	return nil
55002}
55003
55004// SetAction sets the Action field's value.
55005func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
55006	s.Action = &v
55007	return s
55008}
55009
55010type UpdateDimensionInput struct {
55011	_ struct{} `type:"structure"`
55012
55013	// A unique identifier for the dimension. Choose something that describes the
55014	// type and value to make it easy to remember what it does.
55015	//
55016	// Name is a required field
55017	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
55018
55019	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
55020	// dimensions, this is a pattern used to match the MQTT topic (for example,
55021	// "admin/#").
55022	//
55023	// StringValues is a required field
55024	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
55025}
55026
55027// String returns the string representation
55028func (s UpdateDimensionInput) String() string {
55029	return awsutil.Prettify(s)
55030}
55031
55032// GoString returns the string representation
55033func (s UpdateDimensionInput) GoString() string {
55034	return s.String()
55035}
55036
55037// Validate inspects the fields of the type to determine if they are valid.
55038func (s *UpdateDimensionInput) Validate() error {
55039	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
55040	if s.Name == nil {
55041		invalidParams.Add(request.NewErrParamRequired("Name"))
55042	}
55043	if s.Name != nil && len(*s.Name) < 1 {
55044		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
55045	}
55046	if s.StringValues == nil {
55047		invalidParams.Add(request.NewErrParamRequired("StringValues"))
55048	}
55049	if s.StringValues != nil && len(s.StringValues) < 1 {
55050		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
55051	}
55052
55053	if invalidParams.Len() > 0 {
55054		return invalidParams
55055	}
55056	return nil
55057}
55058
55059// SetName sets the Name field's value.
55060func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
55061	s.Name = &v
55062	return s
55063}
55064
55065// SetStringValues sets the StringValues field's value.
55066func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
55067	s.StringValues = v
55068	return s
55069}
55070
55071type UpdateDimensionOutput struct {
55072	_ struct{} `type:"structure"`
55073
55074	// The Amazon Resource Name (ARN)of the created dimension.
55075	Arn *string `locationName:"arn" type:"string"`
55076
55077	// The date and time, in milliseconds since epoch, when the dimension was initially
55078	// created.
55079	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55080
55081	// The date and time, in milliseconds since epoch, when the dimension was most
55082	// recently updated.
55083	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
55084
55085	// A unique identifier for the dimension.
55086	Name *string `locationName:"name" min:"1" type:"string"`
55087
55088	// The value or list of values used to scope the dimension. For example, for
55089	// topic filters, this is the pattern used to match the MQTT topic name.
55090	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
55091
55092	// The type of the dimension.
55093	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
55094}
55095
55096// String returns the string representation
55097func (s UpdateDimensionOutput) String() string {
55098	return awsutil.Prettify(s)
55099}
55100
55101// GoString returns the string representation
55102func (s UpdateDimensionOutput) GoString() string {
55103	return s.String()
55104}
55105
55106// SetArn sets the Arn field's value.
55107func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
55108	s.Arn = &v
55109	return s
55110}
55111
55112// SetCreationDate sets the CreationDate field's value.
55113func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
55114	s.CreationDate = &v
55115	return s
55116}
55117
55118// SetLastModifiedDate sets the LastModifiedDate field's value.
55119func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
55120	s.LastModifiedDate = &v
55121	return s
55122}
55123
55124// SetName sets the Name field's value.
55125func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
55126	s.Name = &v
55127	return s
55128}
55129
55130// SetStringValues sets the StringValues field's value.
55131func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
55132	s.StringValues = v
55133	return s
55134}
55135
55136// SetType sets the Type field's value.
55137func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
55138	s.Type = &v
55139	return s
55140}
55141
55142type UpdateDomainConfigurationInput struct {
55143	_ struct{} `type:"structure"`
55144
55145	// An object that specifies the authorization service for a domain.
55146	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
55147
55148	// The name of the domain configuration to be updated.
55149	//
55150	// DomainConfigurationName is a required field
55151	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
55152
55153	// The status to which the domain configuration should be updated.
55154	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
55155
55156	// Removes the authorization configuration from a domain.
55157	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
55158}
55159
55160// String returns the string representation
55161func (s UpdateDomainConfigurationInput) String() string {
55162	return awsutil.Prettify(s)
55163}
55164
55165// GoString returns the string representation
55166func (s UpdateDomainConfigurationInput) GoString() string {
55167	return s.String()
55168}
55169
55170// Validate inspects the fields of the type to determine if they are valid.
55171func (s *UpdateDomainConfigurationInput) Validate() error {
55172	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
55173	if s.DomainConfigurationName == nil {
55174		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
55175	}
55176	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
55177		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
55178	}
55179	if s.AuthorizerConfig != nil {
55180		if err := s.AuthorizerConfig.Validate(); err != nil {
55181			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
55182		}
55183	}
55184
55185	if invalidParams.Len() > 0 {
55186		return invalidParams
55187	}
55188	return nil
55189}
55190
55191// SetAuthorizerConfig sets the AuthorizerConfig field's value.
55192func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
55193	s.AuthorizerConfig = v
55194	return s
55195}
55196
55197// SetDomainConfigurationName sets the DomainConfigurationName field's value.
55198func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
55199	s.DomainConfigurationName = &v
55200	return s
55201}
55202
55203// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
55204func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
55205	s.DomainConfigurationStatus = &v
55206	return s
55207}
55208
55209// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
55210func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
55211	s.RemoveAuthorizerConfig = &v
55212	return s
55213}
55214
55215type UpdateDomainConfigurationOutput struct {
55216	_ struct{} `type:"structure"`
55217
55218	// The ARN of the domain configuration that was updated.
55219	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
55220
55221	// The name of the domain configuration that was updated.
55222	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
55223}
55224
55225// String returns the string representation
55226func (s UpdateDomainConfigurationOutput) String() string {
55227	return awsutil.Prettify(s)
55228}
55229
55230// GoString returns the string representation
55231func (s UpdateDomainConfigurationOutput) GoString() string {
55232	return s.String()
55233}
55234
55235// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
55236func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
55237	s.DomainConfigurationArn = &v
55238	return s
55239}
55240
55241// SetDomainConfigurationName sets the DomainConfigurationName field's value.
55242func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
55243	s.DomainConfigurationName = &v
55244	return s
55245}
55246
55247type UpdateDynamicThingGroupInput struct {
55248	_ struct{} `type:"structure"`
55249
55250	// The expected version of the dynamic thing group to update.
55251	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
55252
55253	// The dynamic thing group index to update.
55254	//
55255	// Currently one index is supported: 'AWS_Things'.
55256	IndexName *string `locationName:"indexName" min:"1" type:"string"`
55257
55258	// The dynamic thing group search query string to update.
55259	QueryString *string `locationName:"queryString" min:"1" type:"string"`
55260
55261	// The dynamic thing group query version to update.
55262	//
55263	// Currently one query version is supported: "2017-09-30". If not specified,
55264	// the query version defaults to this value.
55265	QueryVersion *string `locationName:"queryVersion" type:"string"`
55266
55267	// The name of the dynamic thing group to update.
55268	//
55269	// ThingGroupName is a required field
55270	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
55271
55272	// The dynamic thing group properties to update.
55273	//
55274	// ThingGroupProperties is a required field
55275	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
55276}
55277
55278// String returns the string representation
55279func (s UpdateDynamicThingGroupInput) String() string {
55280	return awsutil.Prettify(s)
55281}
55282
55283// GoString returns the string representation
55284func (s UpdateDynamicThingGroupInput) GoString() string {
55285	return s.String()
55286}
55287
55288// Validate inspects the fields of the type to determine if they are valid.
55289func (s *UpdateDynamicThingGroupInput) Validate() error {
55290	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
55291	if s.IndexName != nil && len(*s.IndexName) < 1 {
55292		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
55293	}
55294	if s.QueryString != nil && len(*s.QueryString) < 1 {
55295		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
55296	}
55297	if s.ThingGroupName == nil {
55298		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
55299	}
55300	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
55301		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
55302	}
55303	if s.ThingGroupProperties == nil {
55304		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
55305	}
55306
55307	if invalidParams.Len() > 0 {
55308		return invalidParams
55309	}
55310	return nil
55311}
55312
55313// SetExpectedVersion sets the ExpectedVersion field's value.
55314func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
55315	s.ExpectedVersion = &v
55316	return s
55317}
55318
55319// SetIndexName sets the IndexName field's value.
55320func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
55321	s.IndexName = &v
55322	return s
55323}
55324
55325// SetQueryString sets the QueryString field's value.
55326func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
55327	s.QueryString = &v
55328	return s
55329}
55330
55331// SetQueryVersion sets the QueryVersion field's value.
55332func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
55333	s.QueryVersion = &v
55334	return s
55335}
55336
55337// SetThingGroupName sets the ThingGroupName field's value.
55338func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
55339	s.ThingGroupName = &v
55340	return s
55341}
55342
55343// SetThingGroupProperties sets the ThingGroupProperties field's value.
55344func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
55345	s.ThingGroupProperties = v
55346	return s
55347}
55348
55349type UpdateDynamicThingGroupOutput struct {
55350	_ struct{} `type:"structure"`
55351
55352	// The dynamic thing group version.
55353	Version *int64 `locationName:"version" type:"long"`
55354}
55355
55356// String returns the string representation
55357func (s UpdateDynamicThingGroupOutput) String() string {
55358	return awsutil.Prettify(s)
55359}
55360
55361// GoString returns the string representation
55362func (s UpdateDynamicThingGroupOutput) GoString() string {
55363	return s.String()
55364}
55365
55366// SetVersion sets the Version field's value.
55367func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
55368	s.Version = &v
55369	return s
55370}
55371
55372type UpdateEventConfigurationsInput struct {
55373	_ struct{} `type:"structure"`
55374
55375	// The new event configuration values.
55376	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
55377}
55378
55379// String returns the string representation
55380func (s UpdateEventConfigurationsInput) String() string {
55381	return awsutil.Prettify(s)
55382}
55383
55384// GoString returns the string representation
55385func (s UpdateEventConfigurationsInput) GoString() string {
55386	return s.String()
55387}
55388
55389// SetEventConfigurations sets the EventConfigurations field's value.
55390func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
55391	s.EventConfigurations = v
55392	return s
55393}
55394
55395type UpdateEventConfigurationsOutput struct {
55396	_ struct{} `type:"structure"`
55397}
55398
55399// String returns the string representation
55400func (s UpdateEventConfigurationsOutput) String() string {
55401	return awsutil.Prettify(s)
55402}
55403
55404// GoString returns the string representation
55405func (s UpdateEventConfigurationsOutput) GoString() string {
55406	return s.String()
55407}
55408
55409type UpdateIndexingConfigurationInput struct {
55410	_ struct{} `type:"structure"`
55411
55412	// Thing group indexing configuration.
55413	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
55414
55415	// Thing indexing configuration.
55416	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
55417}
55418
55419// String returns the string representation
55420func (s UpdateIndexingConfigurationInput) String() string {
55421	return awsutil.Prettify(s)
55422}
55423
55424// GoString returns the string representation
55425func (s UpdateIndexingConfigurationInput) GoString() string {
55426	return s.String()
55427}
55428
55429// Validate inspects the fields of the type to determine if they are valid.
55430func (s *UpdateIndexingConfigurationInput) Validate() error {
55431	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
55432	if s.ThingGroupIndexingConfiguration != nil {
55433		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
55434			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
55435		}
55436	}
55437	if s.ThingIndexingConfiguration != nil {
55438		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
55439			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
55440		}
55441	}
55442
55443	if invalidParams.Len() > 0 {
55444		return invalidParams
55445	}
55446	return nil
55447}
55448
55449// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
55450func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
55451	s.ThingGroupIndexingConfiguration = v
55452	return s
55453}
55454
55455// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
55456func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
55457	s.ThingIndexingConfiguration = v
55458	return s
55459}
55460
55461type UpdateIndexingConfigurationOutput struct {
55462	_ struct{} `type:"structure"`
55463}
55464
55465// String returns the string representation
55466func (s UpdateIndexingConfigurationOutput) String() string {
55467	return awsutil.Prettify(s)
55468}
55469
55470// GoString returns the string representation
55471func (s UpdateIndexingConfigurationOutput) GoString() string {
55472	return s.String()
55473}
55474
55475type UpdateJobInput struct {
55476	_ struct{} `type:"structure"`
55477
55478	// Allows you to create criteria to abort a job.
55479	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
55480
55481	// A short text description of the job.
55482	Description *string `locationName:"description" type:"string"`
55483
55484	// Allows you to create a staged rollout of the job.
55485	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
55486
55487	// The ID of the job to be updated.
55488	//
55489	// JobId is a required field
55490	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
55491
55492	// The namespace used to indicate that a job is a customer-managed job.
55493	//
55494	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
55495	// to MQTT topics that contain the value in the following format.
55496	//
55497	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
55498	//
55499	// The namespaceId feature is in public preview.
55500	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
55501
55502	// Configuration information for pre-signed S3 URLs.
55503	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
55504
55505	// Specifies the amount of time each device has to finish its execution of the
55506	// job. The timer is started when the job execution status is set to IN_PROGRESS.
55507	// If the job execution status is not set to another terminal state before the
55508	// time expires, it will be automatically set to TIMED_OUT.
55509	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
55510}
55511
55512// String returns the string representation
55513func (s UpdateJobInput) String() string {
55514	return awsutil.Prettify(s)
55515}
55516
55517// GoString returns the string representation
55518func (s UpdateJobInput) GoString() string {
55519	return s.String()
55520}
55521
55522// Validate inspects the fields of the type to determine if they are valid.
55523func (s *UpdateJobInput) Validate() error {
55524	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
55525	if s.JobId == nil {
55526		invalidParams.Add(request.NewErrParamRequired("JobId"))
55527	}
55528	if s.JobId != nil && len(*s.JobId) < 1 {
55529		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
55530	}
55531	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
55532		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
55533	}
55534	if s.AbortConfig != nil {
55535		if err := s.AbortConfig.Validate(); err != nil {
55536			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
55537		}
55538	}
55539	if s.JobExecutionsRolloutConfig != nil {
55540		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
55541			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
55542		}
55543	}
55544	if s.PresignedUrlConfig != nil {
55545		if err := s.PresignedUrlConfig.Validate(); err != nil {
55546			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
55547		}
55548	}
55549
55550	if invalidParams.Len() > 0 {
55551		return invalidParams
55552	}
55553	return nil
55554}
55555
55556// SetAbortConfig sets the AbortConfig field's value.
55557func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
55558	s.AbortConfig = v
55559	return s
55560}
55561
55562// SetDescription sets the Description field's value.
55563func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
55564	s.Description = &v
55565	return s
55566}
55567
55568// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
55569func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
55570	s.JobExecutionsRolloutConfig = v
55571	return s
55572}
55573
55574// SetJobId sets the JobId field's value.
55575func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
55576	s.JobId = &v
55577	return s
55578}
55579
55580// SetNamespaceId sets the NamespaceId field's value.
55581func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
55582	s.NamespaceId = &v
55583	return s
55584}
55585
55586// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
55587func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
55588	s.PresignedUrlConfig = v
55589	return s
55590}
55591
55592// SetTimeoutConfig sets the TimeoutConfig field's value.
55593func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
55594	s.TimeoutConfig = v
55595	return s
55596}
55597
55598type UpdateJobOutput struct {
55599	_ struct{} `type:"structure"`
55600}
55601
55602// String returns the string representation
55603func (s UpdateJobOutput) String() string {
55604	return awsutil.Prettify(s)
55605}
55606
55607// GoString returns the string representation
55608func (s UpdateJobOutput) GoString() string {
55609	return s.String()
55610}
55611
55612type UpdateMitigationActionInput struct {
55613	_ struct{} `type:"structure"`
55614
55615	// The friendly name for the mitigation action. You cannot change the name by
55616	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
55617	// action with the new name.
55618	//
55619	// ActionName is a required field
55620	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
55621
55622	// Defines the type of action and the parameters for that action.
55623	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
55624
55625	// The ARN of the IAM role that is used to apply the mitigation action.
55626	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
55627}
55628
55629// String returns the string representation
55630func (s UpdateMitigationActionInput) String() string {
55631	return awsutil.Prettify(s)
55632}
55633
55634// GoString returns the string representation
55635func (s UpdateMitigationActionInput) GoString() string {
55636	return s.String()
55637}
55638
55639// Validate inspects the fields of the type to determine if they are valid.
55640func (s *UpdateMitigationActionInput) Validate() error {
55641	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
55642	if s.ActionName == nil {
55643		invalidParams.Add(request.NewErrParamRequired("ActionName"))
55644	}
55645	if s.ActionName != nil && len(*s.ActionName) < 1 {
55646		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
55647	}
55648	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
55649		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
55650	}
55651	if s.ActionParams != nil {
55652		if err := s.ActionParams.Validate(); err != nil {
55653			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
55654		}
55655	}
55656
55657	if invalidParams.Len() > 0 {
55658		return invalidParams
55659	}
55660	return nil
55661}
55662
55663// SetActionName sets the ActionName field's value.
55664func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
55665	s.ActionName = &v
55666	return s
55667}
55668
55669// SetActionParams sets the ActionParams field's value.
55670func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
55671	s.ActionParams = v
55672	return s
55673}
55674
55675// SetRoleArn sets the RoleArn field's value.
55676func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
55677	s.RoleArn = &v
55678	return s
55679}
55680
55681type UpdateMitigationActionOutput struct {
55682	_ struct{} `type:"structure"`
55683
55684	// The ARN for the new mitigation action.
55685	ActionArn *string `locationName:"actionArn" type:"string"`
55686
55687	// A unique identifier for the mitigation action.
55688	ActionId *string `locationName:"actionId" type:"string"`
55689}
55690
55691// String returns the string representation
55692func (s UpdateMitigationActionOutput) String() string {
55693	return awsutil.Prettify(s)
55694}
55695
55696// GoString returns the string representation
55697func (s UpdateMitigationActionOutput) GoString() string {
55698	return s.String()
55699}
55700
55701// SetActionArn sets the ActionArn field's value.
55702func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
55703	s.ActionArn = &v
55704	return s
55705}
55706
55707// SetActionId sets the ActionId field's value.
55708func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
55709	s.ActionId = &v
55710	return s
55711}
55712
55713type UpdateProvisioningTemplateInput struct {
55714	_ struct{} `type:"structure"`
55715
55716	// The ID of the default provisioning template version.
55717	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
55718
55719	// The description of the fleet provisioning template.
55720	Description *string `locationName:"description" type:"string"`
55721
55722	// True to enable the fleet provisioning template, otherwise false.
55723	Enabled *bool `locationName:"enabled" type:"boolean"`
55724
55725	// Updates the pre-provisioning hook template.
55726	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
55727
55728	// The ARN of the role associated with the provisioning template. This IoT role
55729	// grants permission to provision a device.
55730	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
55731
55732	// Removes pre-provisioning hook template.
55733	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
55734
55735	// The name of the fleet provisioning template.
55736	//
55737	// TemplateName is a required field
55738	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
55739}
55740
55741// String returns the string representation
55742func (s UpdateProvisioningTemplateInput) String() string {
55743	return awsutil.Prettify(s)
55744}
55745
55746// GoString returns the string representation
55747func (s UpdateProvisioningTemplateInput) GoString() string {
55748	return s.String()
55749}
55750
55751// Validate inspects the fields of the type to determine if they are valid.
55752func (s *UpdateProvisioningTemplateInput) Validate() error {
55753	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
55754	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
55755		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
55756	}
55757	if s.TemplateName == nil {
55758		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
55759	}
55760	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
55761		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
55762	}
55763	if s.PreProvisioningHook != nil {
55764		if err := s.PreProvisioningHook.Validate(); err != nil {
55765			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
55766		}
55767	}
55768
55769	if invalidParams.Len() > 0 {
55770		return invalidParams
55771	}
55772	return nil
55773}
55774
55775// SetDefaultVersionId sets the DefaultVersionId field's value.
55776func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
55777	s.DefaultVersionId = &v
55778	return s
55779}
55780
55781// SetDescription sets the Description field's value.
55782func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
55783	s.Description = &v
55784	return s
55785}
55786
55787// SetEnabled sets the Enabled field's value.
55788func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
55789	s.Enabled = &v
55790	return s
55791}
55792
55793// SetPreProvisioningHook sets the PreProvisioningHook field's value.
55794func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
55795	s.PreProvisioningHook = v
55796	return s
55797}
55798
55799// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
55800func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
55801	s.ProvisioningRoleArn = &v
55802	return s
55803}
55804
55805// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
55806func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
55807	s.RemovePreProvisioningHook = &v
55808	return s
55809}
55810
55811// SetTemplateName sets the TemplateName field's value.
55812func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
55813	s.TemplateName = &v
55814	return s
55815}
55816
55817type UpdateProvisioningTemplateOutput struct {
55818	_ struct{} `type:"structure"`
55819}
55820
55821// String returns the string representation
55822func (s UpdateProvisioningTemplateOutput) String() string {
55823	return awsutil.Prettify(s)
55824}
55825
55826// GoString returns the string representation
55827func (s UpdateProvisioningTemplateOutput) GoString() string {
55828	return s.String()
55829}
55830
55831type UpdateRoleAliasInput struct {
55832	_ struct{} `type:"structure"`
55833
55834	// The number of seconds the credential will be valid.
55835	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
55836
55837	// The role alias to update.
55838	//
55839	// RoleAlias is a required field
55840	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
55841
55842	// The role ARN.
55843	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
55844}
55845
55846// String returns the string representation
55847func (s UpdateRoleAliasInput) String() string {
55848	return awsutil.Prettify(s)
55849}
55850
55851// GoString returns the string representation
55852func (s UpdateRoleAliasInput) GoString() string {
55853	return s.String()
55854}
55855
55856// Validate inspects the fields of the type to determine if they are valid.
55857func (s *UpdateRoleAliasInput) Validate() error {
55858	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
55859	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
55860		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
55861	}
55862	if s.RoleAlias == nil {
55863		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
55864	}
55865	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
55866		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
55867	}
55868	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
55869		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
55870	}
55871
55872	if invalidParams.Len() > 0 {
55873		return invalidParams
55874	}
55875	return nil
55876}
55877
55878// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
55879func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
55880	s.CredentialDurationSeconds = &v
55881	return s
55882}
55883
55884// SetRoleAlias sets the RoleAlias field's value.
55885func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
55886	s.RoleAlias = &v
55887	return s
55888}
55889
55890// SetRoleArn sets the RoleArn field's value.
55891func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
55892	s.RoleArn = &v
55893	return s
55894}
55895
55896type UpdateRoleAliasOutput struct {
55897	_ struct{} `type:"structure"`
55898
55899	// The role alias.
55900	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
55901
55902	// The role alias ARN.
55903	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
55904}
55905
55906// String returns the string representation
55907func (s UpdateRoleAliasOutput) String() string {
55908	return awsutil.Prettify(s)
55909}
55910
55911// GoString returns the string representation
55912func (s UpdateRoleAliasOutput) GoString() string {
55913	return s.String()
55914}
55915
55916// SetRoleAlias sets the RoleAlias field's value.
55917func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
55918	s.RoleAlias = &v
55919	return s
55920}
55921
55922// SetRoleAliasArn sets the RoleAliasArn field's value.
55923func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
55924	s.RoleAliasArn = &v
55925	return s
55926}
55927
55928type UpdateScheduledAuditInput struct {
55929	_ struct{} `type:"structure"`
55930
55931	// The day of the month on which the scheduled audit takes place. This can be
55932	// 1 through 31 or LAST. This field is required if the frequency parameter is
55933	// set to MONTHLY. If days 29-31 are specified, and the month does not have
55934	// that many days, the audit takes place on the "LAST" day of the month.
55935	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
55936
55937	// The day of the week on which the scheduled audit takes place. This can be
55938	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
55939	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
55940	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
55941
55942	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
55943	// or MONTHLY. The start time of each audit is determined by the system.
55944	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
55945
55946	// The name of the scheduled audit. (Max. 128 chars)
55947	//
55948	// ScheduledAuditName is a required field
55949	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
55950
55951	// Which checks are performed during the scheduled audit. Checks must be enabled
55952	// for your account. (Use DescribeAccountAuditConfiguration to see the list
55953	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
55954	// to select which checks are enabled.)
55955	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
55956}
55957
55958// String returns the string representation
55959func (s UpdateScheduledAuditInput) String() string {
55960	return awsutil.Prettify(s)
55961}
55962
55963// GoString returns the string representation
55964func (s UpdateScheduledAuditInput) GoString() string {
55965	return s.String()
55966}
55967
55968// Validate inspects the fields of the type to determine if they are valid.
55969func (s *UpdateScheduledAuditInput) Validate() error {
55970	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
55971	if s.ScheduledAuditName == nil {
55972		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
55973	}
55974	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
55975		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
55976	}
55977
55978	if invalidParams.Len() > 0 {
55979		return invalidParams
55980	}
55981	return nil
55982}
55983
55984// SetDayOfMonth sets the DayOfMonth field's value.
55985func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
55986	s.DayOfMonth = &v
55987	return s
55988}
55989
55990// SetDayOfWeek sets the DayOfWeek field's value.
55991func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
55992	s.DayOfWeek = &v
55993	return s
55994}
55995
55996// SetFrequency sets the Frequency field's value.
55997func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
55998	s.Frequency = &v
55999	return s
56000}
56001
56002// SetScheduledAuditName sets the ScheduledAuditName field's value.
56003func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
56004	s.ScheduledAuditName = &v
56005	return s
56006}
56007
56008// SetTargetCheckNames sets the TargetCheckNames field's value.
56009func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
56010	s.TargetCheckNames = v
56011	return s
56012}
56013
56014type UpdateScheduledAuditOutput struct {
56015	_ struct{} `type:"structure"`
56016
56017	// The ARN of the scheduled audit.
56018	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
56019}
56020
56021// String returns the string representation
56022func (s UpdateScheduledAuditOutput) String() string {
56023	return awsutil.Prettify(s)
56024}
56025
56026// GoString returns the string representation
56027func (s UpdateScheduledAuditOutput) GoString() string {
56028	return s.String()
56029}
56030
56031// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
56032func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
56033	s.ScheduledAuditArn = &v
56034	return s
56035}
56036
56037type UpdateSecurityProfileInput struct {
56038	_ struct{} `type:"structure"`
56039
56040	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
56041	//
56042	// A list of metrics whose data is retained (stored). By default, data is retained
56043	// for any metric used in the profile's behaviors, but it is also retained for
56044	// any metric specified here. Can be used with custom metrics; cannot be used
56045	// with dimensions.
56046	//
56047	// Deprecated: Use additionalMetricsToRetainV2.
56048	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
56049
56050	// A list of metrics whose data is retained (stored). By default, data is retained
56051	// for any metric used in the profile's behaviors, but it is also retained for
56052	// any metric specified here. Can be used with custom metrics; cannot be used
56053	// with dimensions.
56054	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
56055
56056	// Where the alerts are sent. (Alerts are always sent to the console.)
56057	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
56058
56059	// Specifies the behaviors that, when violated by a device (thing), cause an
56060	// alert.
56061	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
56062
56063	// If true, delete all additionalMetricsToRetain defined for this security profile.
56064	// If any additionalMetricsToRetain are defined in the current invocation, an
56065	// exception occurs.
56066	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
56067
56068	// If true, delete all alertTargets defined for this security profile. If any
56069	// alertTargets are defined in the current invocation, an exception occurs.
56070	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
56071
56072	// If true, delete all behaviors defined for this security profile. If any behaviors
56073	// are defined in the current invocation, an exception occurs.
56074	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
56075
56076	// The expected version of the security profile. A new version is generated
56077	// whenever the security profile is updated. If you specify a value that is
56078	// different from the actual version, a VersionConflictException is thrown.
56079	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
56080
56081	// A description of the security profile.
56082	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
56083
56084	// The name of the security profile you want to update.
56085	//
56086	// SecurityProfileName is a required field
56087	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
56088}
56089
56090// String returns the string representation
56091func (s UpdateSecurityProfileInput) String() string {
56092	return awsutil.Prettify(s)
56093}
56094
56095// GoString returns the string representation
56096func (s UpdateSecurityProfileInput) GoString() string {
56097	return s.String()
56098}
56099
56100// Validate inspects the fields of the type to determine if they are valid.
56101func (s *UpdateSecurityProfileInput) Validate() error {
56102	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
56103	if s.SecurityProfileName == nil {
56104		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
56105	}
56106	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
56107		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
56108	}
56109	if s.AdditionalMetricsToRetainV2 != nil {
56110		for i, v := range s.AdditionalMetricsToRetainV2 {
56111			if v == nil {
56112				continue
56113			}
56114			if err := v.Validate(); err != nil {
56115				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
56116			}
56117		}
56118	}
56119	if s.AlertTargets != nil {
56120		for i, v := range s.AlertTargets {
56121			if v == nil {
56122				continue
56123			}
56124			if err := v.Validate(); err != nil {
56125				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
56126			}
56127		}
56128	}
56129	if s.Behaviors != nil {
56130		for i, v := range s.Behaviors {
56131			if v == nil {
56132				continue
56133			}
56134			if err := v.Validate(); err != nil {
56135				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
56136			}
56137		}
56138	}
56139
56140	if invalidParams.Len() > 0 {
56141		return invalidParams
56142	}
56143	return nil
56144}
56145
56146// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
56147func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
56148	s.AdditionalMetricsToRetain = v
56149	return s
56150}
56151
56152// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
56153func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
56154	s.AdditionalMetricsToRetainV2 = v
56155	return s
56156}
56157
56158// SetAlertTargets sets the AlertTargets field's value.
56159func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
56160	s.AlertTargets = v
56161	return s
56162}
56163
56164// SetBehaviors sets the Behaviors field's value.
56165func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
56166	s.Behaviors = v
56167	return s
56168}
56169
56170// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
56171func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
56172	s.DeleteAdditionalMetricsToRetain = &v
56173	return s
56174}
56175
56176// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
56177func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
56178	s.DeleteAlertTargets = &v
56179	return s
56180}
56181
56182// SetDeleteBehaviors sets the DeleteBehaviors field's value.
56183func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
56184	s.DeleteBehaviors = &v
56185	return s
56186}
56187
56188// SetExpectedVersion sets the ExpectedVersion field's value.
56189func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
56190	s.ExpectedVersion = &v
56191	return s
56192}
56193
56194// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
56195func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
56196	s.SecurityProfileDescription = &v
56197	return s
56198}
56199
56200// SetSecurityProfileName sets the SecurityProfileName field's value.
56201func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
56202	s.SecurityProfileName = &v
56203	return s
56204}
56205
56206type UpdateSecurityProfileOutput struct {
56207	_ struct{} `type:"structure"`
56208
56209	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
56210	//
56211	// A list of metrics whose data is retained (stored). By default, data is retained
56212	// for any metric used in the security profile's behaviors, but it is also retained
56213	// for any metric specified here.
56214	//
56215	// Deprecated: Use additionalMetricsToRetainV2.
56216	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
56217
56218	// A list of metrics whose data is retained (stored). By default, data is retained
56219	// for any metric used in the profile's behaviors, but it is also retained for
56220	// any metric specified here. Can be used with custom metrics; cannot be used
56221	// with dimensions.
56222	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
56223
56224	// Where the alerts are sent. (Alerts are always sent to the console.)
56225	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
56226
56227	// Specifies the behaviors that, when violated by a device (thing), cause an
56228	// alert.
56229	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
56230
56231	// The time the security profile was created.
56232	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
56233
56234	// The time the security profile was last modified.
56235	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
56236
56237	// The ARN of the security profile that was updated.
56238	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
56239
56240	// The description of the security profile.
56241	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
56242
56243	// The name of the security profile that was updated.
56244	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
56245
56246	// The updated version of the security profile.
56247	Version *int64 `locationName:"version" type:"long"`
56248}
56249
56250// String returns the string representation
56251func (s UpdateSecurityProfileOutput) String() string {
56252	return awsutil.Prettify(s)
56253}
56254
56255// GoString returns the string representation
56256func (s UpdateSecurityProfileOutput) GoString() string {
56257	return s.String()
56258}
56259
56260// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
56261func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
56262	s.AdditionalMetricsToRetain = v
56263	return s
56264}
56265
56266// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
56267func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
56268	s.AdditionalMetricsToRetainV2 = v
56269	return s
56270}
56271
56272// SetAlertTargets sets the AlertTargets field's value.
56273func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
56274	s.AlertTargets = v
56275	return s
56276}
56277
56278// SetBehaviors sets the Behaviors field's value.
56279func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
56280	s.Behaviors = v
56281	return s
56282}
56283
56284// SetCreationDate sets the CreationDate field's value.
56285func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
56286	s.CreationDate = &v
56287	return s
56288}
56289
56290// SetLastModifiedDate sets the LastModifiedDate field's value.
56291func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
56292	s.LastModifiedDate = &v
56293	return s
56294}
56295
56296// SetSecurityProfileArn sets the SecurityProfileArn field's value.
56297func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
56298	s.SecurityProfileArn = &v
56299	return s
56300}
56301
56302// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
56303func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
56304	s.SecurityProfileDescription = &v
56305	return s
56306}
56307
56308// SetSecurityProfileName sets the SecurityProfileName field's value.
56309func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
56310	s.SecurityProfileName = &v
56311	return s
56312}
56313
56314// SetVersion sets the Version field's value.
56315func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
56316	s.Version = &v
56317	return s
56318}
56319
56320type UpdateStreamInput struct {
56321	_ struct{} `type:"structure"`
56322
56323	// The description of the stream.
56324	Description *string `locationName:"description" type:"string"`
56325
56326	// The files associated with the stream.
56327	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
56328
56329	// An IAM role that allows the IoT service principal assumes to access your
56330	// S3 files.
56331	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56332
56333	// The stream ID.
56334	//
56335	// StreamId is a required field
56336	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
56337}
56338
56339// String returns the string representation
56340func (s UpdateStreamInput) String() string {
56341	return awsutil.Prettify(s)
56342}
56343
56344// GoString returns the string representation
56345func (s UpdateStreamInput) GoString() string {
56346	return s.String()
56347}
56348
56349// Validate inspects the fields of the type to determine if they are valid.
56350func (s *UpdateStreamInput) Validate() error {
56351	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
56352	if s.Files != nil && len(s.Files) < 1 {
56353		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
56354	}
56355	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56356		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56357	}
56358	if s.StreamId == nil {
56359		invalidParams.Add(request.NewErrParamRequired("StreamId"))
56360	}
56361	if s.StreamId != nil && len(*s.StreamId) < 1 {
56362		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
56363	}
56364	if s.Files != nil {
56365		for i, v := range s.Files {
56366			if v == nil {
56367				continue
56368			}
56369			if err := v.Validate(); err != nil {
56370				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
56371			}
56372		}
56373	}
56374
56375	if invalidParams.Len() > 0 {
56376		return invalidParams
56377	}
56378	return nil
56379}
56380
56381// SetDescription sets the Description field's value.
56382func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
56383	s.Description = &v
56384	return s
56385}
56386
56387// SetFiles sets the Files field's value.
56388func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
56389	s.Files = v
56390	return s
56391}
56392
56393// SetRoleArn sets the RoleArn field's value.
56394func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
56395	s.RoleArn = &v
56396	return s
56397}
56398
56399// SetStreamId sets the StreamId field's value.
56400func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
56401	s.StreamId = &v
56402	return s
56403}
56404
56405type UpdateStreamOutput struct {
56406	_ struct{} `type:"structure"`
56407
56408	// A description of the stream.
56409	Description *string `locationName:"description" type:"string"`
56410
56411	// The stream ARN.
56412	StreamArn *string `locationName:"streamArn" type:"string"`
56413
56414	// The stream ID.
56415	StreamId *string `locationName:"streamId" min:"1" type:"string"`
56416
56417	// The stream version.
56418	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
56419}
56420
56421// String returns the string representation
56422func (s UpdateStreamOutput) String() string {
56423	return awsutil.Prettify(s)
56424}
56425
56426// GoString returns the string representation
56427func (s UpdateStreamOutput) GoString() string {
56428	return s.String()
56429}
56430
56431// SetDescription sets the Description field's value.
56432func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
56433	s.Description = &v
56434	return s
56435}
56436
56437// SetStreamArn sets the StreamArn field's value.
56438func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
56439	s.StreamArn = &v
56440	return s
56441}
56442
56443// SetStreamId sets the StreamId field's value.
56444func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
56445	s.StreamId = &v
56446	return s
56447}
56448
56449// SetStreamVersion sets the StreamVersion field's value.
56450func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
56451	s.StreamVersion = &v
56452	return s
56453}
56454
56455type UpdateThingGroupInput struct {
56456	_ struct{} `type:"structure"`
56457
56458	// The expected version of the thing group. If this does not match the version
56459	// of the thing group being updated, the update will fail.
56460	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
56461
56462	// The thing group to update.
56463	//
56464	// ThingGroupName is a required field
56465	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
56466
56467	// The thing group properties.
56468	//
56469	// ThingGroupProperties is a required field
56470	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
56471}
56472
56473// String returns the string representation
56474func (s UpdateThingGroupInput) String() string {
56475	return awsutil.Prettify(s)
56476}
56477
56478// GoString returns the string representation
56479func (s UpdateThingGroupInput) GoString() string {
56480	return s.String()
56481}
56482
56483// Validate inspects the fields of the type to determine if they are valid.
56484func (s *UpdateThingGroupInput) Validate() error {
56485	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
56486	if s.ThingGroupName == nil {
56487		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
56488	}
56489	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
56490		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
56491	}
56492	if s.ThingGroupProperties == nil {
56493		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
56494	}
56495
56496	if invalidParams.Len() > 0 {
56497		return invalidParams
56498	}
56499	return nil
56500}
56501
56502// SetExpectedVersion sets the ExpectedVersion field's value.
56503func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
56504	s.ExpectedVersion = &v
56505	return s
56506}
56507
56508// SetThingGroupName sets the ThingGroupName field's value.
56509func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
56510	s.ThingGroupName = &v
56511	return s
56512}
56513
56514// SetThingGroupProperties sets the ThingGroupProperties field's value.
56515func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
56516	s.ThingGroupProperties = v
56517	return s
56518}
56519
56520type UpdateThingGroupOutput struct {
56521	_ struct{} `type:"structure"`
56522
56523	// The version of the updated thing group.
56524	Version *int64 `locationName:"version" type:"long"`
56525}
56526
56527// String returns the string representation
56528func (s UpdateThingGroupOutput) String() string {
56529	return awsutil.Prettify(s)
56530}
56531
56532// GoString returns the string representation
56533func (s UpdateThingGroupOutput) GoString() string {
56534	return s.String()
56535}
56536
56537// SetVersion sets the Version field's value.
56538func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
56539	s.Version = &v
56540	return s
56541}
56542
56543type UpdateThingGroupsForThingInput struct {
56544	_ struct{} `type:"structure"`
56545
56546	// Override dynamic thing groups with static thing groups when 10-group limit
56547	// is reached. If a thing belongs to 10 thing groups, and one or more of those
56548	// groups are dynamic thing groups, adding a thing to a static group removes
56549	// the thing from the last dynamic group.
56550	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
56551
56552	// The groups to which the thing will be added.
56553	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
56554
56555	// The groups from which the thing will be removed.
56556	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
56557
56558	// The thing whose group memberships will be updated.
56559	ThingName *string `locationName:"thingName" min:"1" type:"string"`
56560}
56561
56562// String returns the string representation
56563func (s UpdateThingGroupsForThingInput) String() string {
56564	return awsutil.Prettify(s)
56565}
56566
56567// GoString returns the string representation
56568func (s UpdateThingGroupsForThingInput) GoString() string {
56569	return s.String()
56570}
56571
56572// Validate inspects the fields of the type to determine if they are valid.
56573func (s *UpdateThingGroupsForThingInput) Validate() error {
56574	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
56575	if s.ThingName != nil && len(*s.ThingName) < 1 {
56576		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
56577	}
56578
56579	if invalidParams.Len() > 0 {
56580		return invalidParams
56581	}
56582	return nil
56583}
56584
56585// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
56586func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
56587	s.OverrideDynamicGroups = &v
56588	return s
56589}
56590
56591// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
56592func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
56593	s.ThingGroupsToAdd = v
56594	return s
56595}
56596
56597// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
56598func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
56599	s.ThingGroupsToRemove = v
56600	return s
56601}
56602
56603// SetThingName sets the ThingName field's value.
56604func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
56605	s.ThingName = &v
56606	return s
56607}
56608
56609type UpdateThingGroupsForThingOutput struct {
56610	_ struct{} `type:"structure"`
56611}
56612
56613// String returns the string representation
56614func (s UpdateThingGroupsForThingOutput) String() string {
56615	return awsutil.Prettify(s)
56616}
56617
56618// GoString returns the string representation
56619func (s UpdateThingGroupsForThingOutput) GoString() string {
56620	return s.String()
56621}
56622
56623// The input for the UpdateThing operation.
56624type UpdateThingInput struct {
56625	_ struct{} `type:"structure"`
56626
56627	// A list of thing attributes, a JSON string containing name-value pairs. For
56628	// example:
56629	//
56630	// {\"attributes\":{\"name1\":\"value2\"}}
56631	//
56632	// This data is used to add new attributes or update existing attributes.
56633	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
56634
56635	// The expected version of the thing record in the registry. If the version
56636	// of the record in the registry does not match the expected version specified
56637	// in the request, the UpdateThing request is rejected with a VersionConflictException.
56638	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
56639
56640	// Remove a thing type association. If true, the association is removed.
56641	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
56642
56643	// The name of the thing to update.
56644	//
56645	// You can't change a thing's name. To change a thing's name, you must create
56646	// a new thing, give it the new name, and then delete the old thing.
56647	//
56648	// ThingName is a required field
56649	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
56650
56651	// The name of the thing type.
56652	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
56653}
56654
56655// String returns the string representation
56656func (s UpdateThingInput) String() string {
56657	return awsutil.Prettify(s)
56658}
56659
56660// GoString returns the string representation
56661func (s UpdateThingInput) GoString() string {
56662	return s.String()
56663}
56664
56665// Validate inspects the fields of the type to determine if they are valid.
56666func (s *UpdateThingInput) Validate() error {
56667	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
56668	if s.ThingName == nil {
56669		invalidParams.Add(request.NewErrParamRequired("ThingName"))
56670	}
56671	if s.ThingName != nil && len(*s.ThingName) < 1 {
56672		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
56673	}
56674	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
56675		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
56676	}
56677
56678	if invalidParams.Len() > 0 {
56679		return invalidParams
56680	}
56681	return nil
56682}
56683
56684// SetAttributePayload sets the AttributePayload field's value.
56685func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
56686	s.AttributePayload = v
56687	return s
56688}
56689
56690// SetExpectedVersion sets the ExpectedVersion field's value.
56691func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
56692	s.ExpectedVersion = &v
56693	return s
56694}
56695
56696// SetRemoveThingType sets the RemoveThingType field's value.
56697func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
56698	s.RemoveThingType = &v
56699	return s
56700}
56701
56702// SetThingName sets the ThingName field's value.
56703func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
56704	s.ThingName = &v
56705	return s
56706}
56707
56708// SetThingTypeName sets the ThingTypeName field's value.
56709func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
56710	s.ThingTypeName = &v
56711	return s
56712}
56713
56714// The output from the UpdateThing operation.
56715type UpdateThingOutput struct {
56716	_ struct{} `type:"structure"`
56717}
56718
56719// String returns the string representation
56720func (s UpdateThingOutput) String() string {
56721	return awsutil.Prettify(s)
56722}
56723
56724// GoString returns the string representation
56725func (s UpdateThingOutput) GoString() string {
56726	return s.String()
56727}
56728
56729type UpdateTopicRuleDestinationInput struct {
56730	_ struct{} `type:"structure"`
56731
56732	// The ARN of the topic rule destination.
56733	//
56734	// Arn is a required field
56735	Arn *string `locationName:"arn" type:"string" required:"true"`
56736
56737	// The status of the topic rule destination. Valid values are:
56738	//
56739	// IN_PROGRESS
56740	//
56741	// A topic rule destination was created but has not been confirmed. You can
56742	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56743	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56744	// to your confirmation endpoint.
56745	//
56746	// ENABLED
56747	//
56748	// Confirmation was completed, and traffic to this destination is allowed. You
56749	// can set status to DISABLED by calling UpdateTopicRuleDestination.
56750	//
56751	// DISABLED
56752	//
56753	// Confirmation was completed, and traffic to this destination is not allowed.
56754	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
56755	//
56756	// ERROR
56757	//
56758	// Confirmation could not be completed, for example if the confirmation timed
56759	// out. You can call GetTopicRuleDestination for details about the error. You
56760	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56761	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56762	// to your confirmation endpoint.
56763	//
56764	// Status is a required field
56765	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
56766}
56767
56768// String returns the string representation
56769func (s UpdateTopicRuleDestinationInput) String() string {
56770	return awsutil.Prettify(s)
56771}
56772
56773// GoString returns the string representation
56774func (s UpdateTopicRuleDestinationInput) GoString() string {
56775	return s.String()
56776}
56777
56778// Validate inspects the fields of the type to determine if they are valid.
56779func (s *UpdateTopicRuleDestinationInput) Validate() error {
56780	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
56781	if s.Arn == nil {
56782		invalidParams.Add(request.NewErrParamRequired("Arn"))
56783	}
56784	if s.Status == nil {
56785		invalidParams.Add(request.NewErrParamRequired("Status"))
56786	}
56787
56788	if invalidParams.Len() > 0 {
56789		return invalidParams
56790	}
56791	return nil
56792}
56793
56794// SetArn sets the Arn field's value.
56795func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
56796	s.Arn = &v
56797	return s
56798}
56799
56800// SetStatus sets the Status field's value.
56801func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
56802	s.Status = &v
56803	return s
56804}
56805
56806type UpdateTopicRuleDestinationOutput struct {
56807	_ struct{} `type:"structure"`
56808}
56809
56810// String returns the string representation
56811func (s UpdateTopicRuleDestinationOutput) String() string {
56812	return awsutil.Prettify(s)
56813}
56814
56815// GoString returns the string representation
56816func (s UpdateTopicRuleDestinationOutput) GoString() string {
56817	return s.String()
56818}
56819
56820type ValidateSecurityProfileBehaviorsInput struct {
56821	_ struct{} `type:"structure"`
56822
56823	// Specifies the behaviors that, when violated by a device (thing), cause an
56824	// alert.
56825	//
56826	// Behaviors is a required field
56827	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
56828}
56829
56830// String returns the string representation
56831func (s ValidateSecurityProfileBehaviorsInput) String() string {
56832	return awsutil.Prettify(s)
56833}
56834
56835// GoString returns the string representation
56836func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
56837	return s.String()
56838}
56839
56840// Validate inspects the fields of the type to determine if they are valid.
56841func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
56842	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
56843	if s.Behaviors == nil {
56844		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
56845	}
56846	if s.Behaviors != nil {
56847		for i, v := range s.Behaviors {
56848			if v == nil {
56849				continue
56850			}
56851			if err := v.Validate(); err != nil {
56852				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
56853			}
56854		}
56855	}
56856
56857	if invalidParams.Len() > 0 {
56858		return invalidParams
56859	}
56860	return nil
56861}
56862
56863// SetBehaviors sets the Behaviors field's value.
56864func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
56865	s.Behaviors = v
56866	return s
56867}
56868
56869type ValidateSecurityProfileBehaviorsOutput struct {
56870	_ struct{} `type:"structure"`
56871
56872	// True if the behaviors were valid.
56873	Valid *bool `locationName:"valid" type:"boolean"`
56874
56875	// The list of any errors found in the behaviors.
56876	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
56877}
56878
56879// String returns the string representation
56880func (s ValidateSecurityProfileBehaviorsOutput) String() string {
56881	return awsutil.Prettify(s)
56882}
56883
56884// GoString returns the string representation
56885func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
56886	return s.String()
56887}
56888
56889// SetValid sets the Valid field's value.
56890func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
56891	s.Valid = &v
56892	return s
56893}
56894
56895// SetValidationErrors sets the ValidationErrors field's value.
56896func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
56897	s.ValidationErrors = v
56898	return s
56899}
56900
56901// Information about an error found in a behavior specification.
56902type ValidationError struct {
56903	_ struct{} `type:"structure"`
56904
56905	// The description of an error found in the behaviors.
56906	ErrorMessage *string `locationName:"errorMessage" type:"string"`
56907}
56908
56909// String returns the string representation
56910func (s ValidationError) String() string {
56911	return awsutil.Prettify(s)
56912}
56913
56914// GoString returns the string representation
56915func (s ValidationError) GoString() string {
56916	return s.String()
56917}
56918
56919// SetErrorMessage sets the ErrorMessage field's value.
56920func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
56921	s.ErrorMessage = &v
56922	return s
56923}
56924
56925// An exception thrown when the version of an entity specified with the expectedVersion
56926// parameter does not match the latest version in the system.
56927type VersionConflictException struct {
56928	_            struct{}                  `type:"structure"`
56929	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
56930
56931	// The message for the exception.
56932	Message_ *string `locationName:"message" type:"string"`
56933}
56934
56935// String returns the string representation
56936func (s VersionConflictException) String() string {
56937	return awsutil.Prettify(s)
56938}
56939
56940// GoString returns the string representation
56941func (s VersionConflictException) GoString() string {
56942	return s.String()
56943}
56944
56945func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
56946	return &VersionConflictException{
56947		RespMetadata: v,
56948	}
56949}
56950
56951// Code returns the exception type name.
56952func (s *VersionConflictException) Code() string {
56953	return "VersionConflictException"
56954}
56955
56956// Message returns the exception's message.
56957func (s *VersionConflictException) Message() string {
56958	if s.Message_ != nil {
56959		return *s.Message_
56960	}
56961	return ""
56962}
56963
56964// OrigErr always returns nil, satisfies awserr.Error interface.
56965func (s *VersionConflictException) OrigErr() error {
56966	return nil
56967}
56968
56969func (s *VersionConflictException) Error() string {
56970	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
56971}
56972
56973// Status code returns the HTTP status code for the request's response error.
56974func (s *VersionConflictException) StatusCode() int {
56975	return s.RespMetadata.StatusCode
56976}
56977
56978// RequestID returns the service's response RequestID for request.
56979func (s *VersionConflictException) RequestID() string {
56980	return s.RespMetadata.RequestID
56981}
56982
56983// The number of policy versions exceeds the limit.
56984type VersionsLimitExceededException struct {
56985	_            struct{}                  `type:"structure"`
56986	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
56987
56988	// The message for the exception.
56989	Message_ *string `locationName:"message" type:"string"`
56990}
56991
56992// String returns the string representation
56993func (s VersionsLimitExceededException) String() string {
56994	return awsutil.Prettify(s)
56995}
56996
56997// GoString returns the string representation
56998func (s VersionsLimitExceededException) GoString() string {
56999	return s.String()
57000}
57001
57002func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
57003	return &VersionsLimitExceededException{
57004		RespMetadata: v,
57005	}
57006}
57007
57008// Code returns the exception type name.
57009func (s *VersionsLimitExceededException) Code() string {
57010	return "VersionsLimitExceededException"
57011}
57012
57013// Message returns the exception's message.
57014func (s *VersionsLimitExceededException) Message() string {
57015	if s.Message_ != nil {
57016		return *s.Message_
57017	}
57018	return ""
57019}
57020
57021// OrigErr always returns nil, satisfies awserr.Error interface.
57022func (s *VersionsLimitExceededException) OrigErr() error {
57023	return nil
57024}
57025
57026func (s *VersionsLimitExceededException) Error() string {
57027	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57028}
57029
57030// Status code returns the HTTP status code for the request's response error.
57031func (s *VersionsLimitExceededException) StatusCode() int {
57032	return s.RespMetadata.StatusCode
57033}
57034
57035// RequestID returns the service's response RequestID for request.
57036func (s *VersionsLimitExceededException) RequestID() string {
57037	return s.RespMetadata.RequestID
57038}
57039
57040// Information about a Device Defender security profile behavior violation.
57041type ViolationEvent struct {
57042	_ struct{} `type:"structure"`
57043
57044	// The behavior that was violated.
57045	Behavior *Behavior `locationName:"behavior" type:"structure"`
57046
57047	// The value of the metric (the measurement).
57048	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
57049
57050	// The name of the security profile whose behavior was violated.
57051	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
57052
57053	// The name of the thing responsible for the violation event.
57054	ThingName *string `locationName:"thingName" min:"1" type:"string"`
57055
57056	// The details of a violation event.
57057	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
57058
57059	// The time the violation event occurred.
57060	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
57061
57062	// The type of violation event.
57063	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
57064
57065	// The ID of the violation event.
57066	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
57067}
57068
57069// String returns the string representation
57070func (s ViolationEvent) String() string {
57071	return awsutil.Prettify(s)
57072}
57073
57074// GoString returns the string representation
57075func (s ViolationEvent) GoString() string {
57076	return s.String()
57077}
57078
57079// SetBehavior sets the Behavior field's value.
57080func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
57081	s.Behavior = v
57082	return s
57083}
57084
57085// SetMetricValue sets the MetricValue field's value.
57086func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
57087	s.MetricValue = v
57088	return s
57089}
57090
57091// SetSecurityProfileName sets the SecurityProfileName field's value.
57092func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
57093	s.SecurityProfileName = &v
57094	return s
57095}
57096
57097// SetThingName sets the ThingName field's value.
57098func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
57099	s.ThingName = &v
57100	return s
57101}
57102
57103// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
57104func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
57105	s.ViolationEventAdditionalInfo = v
57106	return s
57107}
57108
57109// SetViolationEventTime sets the ViolationEventTime field's value.
57110func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
57111	s.ViolationEventTime = &v
57112	return s
57113}
57114
57115// SetViolationEventType sets the ViolationEventType field's value.
57116func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
57117	s.ViolationEventType = &v
57118	return s
57119}
57120
57121// SetViolationId sets the ViolationId field's value.
57122func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
57123	s.ViolationId = &v
57124	return s
57125}
57126
57127// The details of a violation event.
57128type ViolationEventAdditionalInfo struct {
57129	_ struct{} `type:"structure"`
57130
57131	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
57132	// High.
57133	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
57134}
57135
57136// String returns the string representation
57137func (s ViolationEventAdditionalInfo) String() string {
57138	return awsutil.Prettify(s)
57139}
57140
57141// GoString returns the string representation
57142func (s ViolationEventAdditionalInfo) GoString() string {
57143	return s.String()
57144}
57145
57146// SetConfidenceLevel sets the ConfidenceLevel field's value.
57147func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
57148	s.ConfidenceLevel = &v
57149	return s
57150}
57151
57152// Specifies the time period of which violation events occurred between.
57153type ViolationEventOccurrenceRange struct {
57154	_ struct{} `type:"structure"`
57155
57156	// The end date and time of a time period in which violation events occurred.
57157	//
57158	// EndTime is a required field
57159	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
57160
57161	// The start date and time of a time period in which violation events occurred.
57162	//
57163	// StartTime is a required field
57164	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
57165}
57166
57167// String returns the string representation
57168func (s ViolationEventOccurrenceRange) String() string {
57169	return awsutil.Prettify(s)
57170}
57171
57172// GoString returns the string representation
57173func (s ViolationEventOccurrenceRange) GoString() string {
57174	return s.String()
57175}
57176
57177// Validate inspects the fields of the type to determine if they are valid.
57178func (s *ViolationEventOccurrenceRange) Validate() error {
57179	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
57180	if s.EndTime == nil {
57181		invalidParams.Add(request.NewErrParamRequired("EndTime"))
57182	}
57183	if s.StartTime == nil {
57184		invalidParams.Add(request.NewErrParamRequired("StartTime"))
57185	}
57186
57187	if invalidParams.Len() > 0 {
57188		return invalidParams
57189	}
57190	return nil
57191}
57192
57193// SetEndTime sets the EndTime field's value.
57194func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
57195	s.EndTime = &v
57196	return s
57197}
57198
57199// SetStartTime sets the StartTime field's value.
57200func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
57201	s.StartTime = &v
57202	return s
57203}
57204
57205// The configuration information for a virtual private cloud (VPC) destination.
57206type VpcDestinationConfiguration struct {
57207	_ struct{} `type:"structure"`
57208
57209	// The ARN of a role that has permission to create and attach to elastic network
57210	// interfaces (ENIs).
57211	//
57212	// RoleArn is a required field
57213	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
57214
57215	// The security groups of the VPC destination.
57216	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
57217
57218	// The subnet IDs of the VPC destination.
57219	//
57220	// SubnetIds is a required field
57221	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
57222
57223	// The ID of the VPC.
57224	//
57225	// VpcId is a required field
57226	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
57227}
57228
57229// String returns the string representation
57230func (s VpcDestinationConfiguration) String() string {
57231	return awsutil.Prettify(s)
57232}
57233
57234// GoString returns the string representation
57235func (s VpcDestinationConfiguration) GoString() string {
57236	return s.String()
57237}
57238
57239// Validate inspects the fields of the type to determine if they are valid.
57240func (s *VpcDestinationConfiguration) Validate() error {
57241	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
57242	if s.RoleArn == nil {
57243		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
57244	}
57245	if s.SubnetIds == nil {
57246		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
57247	}
57248	if s.VpcId == nil {
57249		invalidParams.Add(request.NewErrParamRequired("VpcId"))
57250	}
57251
57252	if invalidParams.Len() > 0 {
57253		return invalidParams
57254	}
57255	return nil
57256}
57257
57258// SetRoleArn sets the RoleArn field's value.
57259func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
57260	s.RoleArn = &v
57261	return s
57262}
57263
57264// SetSecurityGroups sets the SecurityGroups field's value.
57265func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
57266	s.SecurityGroups = v
57267	return s
57268}
57269
57270// SetSubnetIds sets the SubnetIds field's value.
57271func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
57272	s.SubnetIds = v
57273	return s
57274}
57275
57276// SetVpcId sets the VpcId field's value.
57277func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
57278	s.VpcId = &v
57279	return s
57280}
57281
57282// The properties of a virtual private cloud (VPC) destination.
57283type VpcDestinationProperties struct {
57284	_ struct{} `type:"structure"`
57285
57286	// The ARN of a role that has permission to create and attach to elastic network
57287	// interfaces (ENIs).
57288	RoleArn *string `locationName:"roleArn" type:"string"`
57289
57290	// The security groups of the VPC destination.
57291	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
57292
57293	// The subnet IDs of the VPC destination.
57294	SubnetIds []*string `locationName:"subnetIds" type:"list"`
57295
57296	// The ID of the VPC.
57297	VpcId *string `locationName:"vpcId" type:"string"`
57298}
57299
57300// String returns the string representation
57301func (s VpcDestinationProperties) String() string {
57302	return awsutil.Prettify(s)
57303}
57304
57305// GoString returns the string representation
57306func (s VpcDestinationProperties) GoString() string {
57307	return s.String()
57308}
57309
57310// SetRoleArn sets the RoleArn field's value.
57311func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
57312	s.RoleArn = &v
57313	return s
57314}
57315
57316// SetSecurityGroups sets the SecurityGroups field's value.
57317func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
57318	s.SecurityGroups = v
57319	return s
57320}
57321
57322// SetSubnetIds sets the SubnetIds field's value.
57323func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
57324	s.SubnetIds = v
57325	return s
57326}
57327
57328// SetVpcId sets the VpcId field's value.
57329func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
57330	s.VpcId = &v
57331	return s
57332}
57333
57334// The summary of a virtual private cloud (VPC) destination.
57335type VpcDestinationSummary struct {
57336	_ struct{} `type:"structure"`
57337
57338	// The ARN of a role that has permission to create and attach to elastic network
57339	// interfaces (ENIs).
57340	RoleArn *string `locationName:"roleArn" type:"string"`
57341
57342	// The security groups of the VPC destination.
57343	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
57344
57345	// The subnet IDs of the VPC destination.
57346	SubnetIds []*string `locationName:"subnetIds" type:"list"`
57347
57348	// The ID of the VPC.
57349	VpcId *string `locationName:"vpcId" type:"string"`
57350}
57351
57352// String returns the string representation
57353func (s VpcDestinationSummary) String() string {
57354	return awsutil.Prettify(s)
57355}
57356
57357// GoString returns the string representation
57358func (s VpcDestinationSummary) GoString() string {
57359	return s.String()
57360}
57361
57362// SetRoleArn sets the RoleArn field's value.
57363func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
57364	s.RoleArn = &v
57365	return s
57366}
57367
57368// SetSecurityGroups sets the SecurityGroups field's value.
57369func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
57370	s.SecurityGroups = v
57371	return s
57372}
57373
57374// SetSubnetIds sets the SubnetIds field's value.
57375func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
57376	s.SubnetIds = v
57377	return s
57378}
57379
57380// SetVpcId sets the VpcId field's value.
57381func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
57382	s.VpcId = &v
57383	return s
57384}
57385
57386const (
57387	// AbortActionCancel is a AbortAction enum value
57388	AbortActionCancel = "CANCEL"
57389)
57390
57391// AbortAction_Values returns all elements of the AbortAction enum
57392func AbortAction_Values() []string {
57393	return []string{
57394		AbortActionCancel,
57395	}
57396}
57397
57398const (
57399	// ActionTypePublish is a ActionType enum value
57400	ActionTypePublish = "PUBLISH"
57401
57402	// ActionTypeSubscribe is a ActionType enum value
57403	ActionTypeSubscribe = "SUBSCRIBE"
57404
57405	// ActionTypeReceive is a ActionType enum value
57406	ActionTypeReceive = "RECEIVE"
57407
57408	// ActionTypeConnect is a ActionType enum value
57409	ActionTypeConnect = "CONNECT"
57410)
57411
57412// ActionType_Values returns all elements of the ActionType enum
57413func ActionType_Values() []string {
57414	return []string{
57415		ActionTypePublish,
57416		ActionTypeSubscribe,
57417		ActionTypeReceive,
57418		ActionTypeConnect,
57419	}
57420}
57421
57422// The type of alert target: one of "SNS".
57423const (
57424	// AlertTargetTypeSns is a AlertTargetType enum value
57425	AlertTargetTypeSns = "SNS"
57426)
57427
57428// AlertTargetType_Values returns all elements of the AlertTargetType enum
57429func AlertTargetType_Values() []string {
57430	return []string{
57431		AlertTargetTypeSns,
57432	}
57433}
57434
57435const (
57436	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
57437	AuditCheckRunStatusInProgress = "IN_PROGRESS"
57438
57439	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
57440	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
57441
57442	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
57443	AuditCheckRunStatusCanceled = "CANCELED"
57444
57445	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
57446	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
57447
57448	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
57449	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
57450
57451	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
57452	AuditCheckRunStatusFailed = "FAILED"
57453)
57454
57455// AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
57456func AuditCheckRunStatus_Values() []string {
57457	return []string{
57458		AuditCheckRunStatusInProgress,
57459		AuditCheckRunStatusWaitingForDataCollection,
57460		AuditCheckRunStatusCanceled,
57461		AuditCheckRunStatusCompletedCompliant,
57462		AuditCheckRunStatusCompletedNonCompliant,
57463		AuditCheckRunStatusFailed,
57464	}
57465}
57466
57467const (
57468	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
57469	AuditFindingSeverityCritical = "CRITICAL"
57470
57471	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
57472	AuditFindingSeverityHigh = "HIGH"
57473
57474	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
57475	AuditFindingSeverityMedium = "MEDIUM"
57476
57477	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
57478	AuditFindingSeverityLow = "LOW"
57479)
57480
57481// AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
57482func AuditFindingSeverity_Values() []string {
57483	return []string{
57484		AuditFindingSeverityCritical,
57485		AuditFindingSeverityHigh,
57486		AuditFindingSeverityMedium,
57487		AuditFindingSeverityLow,
57488	}
57489}
57490
57491const (
57492	// AuditFrequencyDaily is a AuditFrequency enum value
57493	AuditFrequencyDaily = "DAILY"
57494
57495	// AuditFrequencyWeekly is a AuditFrequency enum value
57496	AuditFrequencyWeekly = "WEEKLY"
57497
57498	// AuditFrequencyBiweekly is a AuditFrequency enum value
57499	AuditFrequencyBiweekly = "BIWEEKLY"
57500
57501	// AuditFrequencyMonthly is a AuditFrequency enum value
57502	AuditFrequencyMonthly = "MONTHLY"
57503)
57504
57505// AuditFrequency_Values returns all elements of the AuditFrequency enum
57506func AuditFrequency_Values() []string {
57507	return []string{
57508		AuditFrequencyDaily,
57509		AuditFrequencyWeekly,
57510		AuditFrequencyBiweekly,
57511		AuditFrequencyMonthly,
57512	}
57513}
57514
57515const (
57516	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
57517	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
57518
57519	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
57520	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
57521
57522	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
57523	AuditMitigationActionsExecutionStatusFailed = "FAILED"
57524
57525	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
57526	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
57527
57528	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
57529	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
57530
57531	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
57532	AuditMitigationActionsExecutionStatusPending = "PENDING"
57533)
57534
57535// AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
57536func AuditMitigationActionsExecutionStatus_Values() []string {
57537	return []string{
57538		AuditMitigationActionsExecutionStatusInProgress,
57539		AuditMitigationActionsExecutionStatusCompleted,
57540		AuditMitigationActionsExecutionStatusFailed,
57541		AuditMitigationActionsExecutionStatusCanceled,
57542		AuditMitigationActionsExecutionStatusSkipped,
57543		AuditMitigationActionsExecutionStatusPending,
57544	}
57545}
57546
57547const (
57548	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
57549	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
57550
57551	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
57552	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
57553
57554	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
57555	AuditMitigationActionsTaskStatusFailed = "FAILED"
57556
57557	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
57558	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
57559)
57560
57561// AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
57562func AuditMitigationActionsTaskStatus_Values() []string {
57563	return []string{
57564		AuditMitigationActionsTaskStatusInProgress,
57565		AuditMitigationActionsTaskStatusCompleted,
57566		AuditMitigationActionsTaskStatusFailed,
57567		AuditMitigationActionsTaskStatusCanceled,
57568	}
57569}
57570
57571const (
57572	// AuditNotificationTypeSns is a AuditNotificationType enum value
57573	AuditNotificationTypeSns = "SNS"
57574)
57575
57576// AuditNotificationType_Values returns all elements of the AuditNotificationType enum
57577func AuditNotificationType_Values() []string {
57578	return []string{
57579		AuditNotificationTypeSns,
57580	}
57581}
57582
57583const (
57584	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
57585	AuditTaskStatusInProgress = "IN_PROGRESS"
57586
57587	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
57588	AuditTaskStatusCompleted = "COMPLETED"
57589
57590	// AuditTaskStatusFailed is a AuditTaskStatus enum value
57591	AuditTaskStatusFailed = "FAILED"
57592
57593	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
57594	AuditTaskStatusCanceled = "CANCELED"
57595)
57596
57597// AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
57598func AuditTaskStatus_Values() []string {
57599	return []string{
57600		AuditTaskStatusInProgress,
57601		AuditTaskStatusCompleted,
57602		AuditTaskStatusFailed,
57603		AuditTaskStatusCanceled,
57604	}
57605}
57606
57607const (
57608	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
57609	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
57610
57611	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
57612	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
57613)
57614
57615// AuditTaskType_Values returns all elements of the AuditTaskType enum
57616func AuditTaskType_Values() []string {
57617	return []string{
57618		AuditTaskTypeOnDemandAuditTask,
57619		AuditTaskTypeScheduledAuditTask,
57620	}
57621}
57622
57623const (
57624	// AuthDecisionAllowed is a AuthDecision enum value
57625	AuthDecisionAllowed = "ALLOWED"
57626
57627	// AuthDecisionExplicitDeny is a AuthDecision enum value
57628	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
57629
57630	// AuthDecisionImplicitDeny is a AuthDecision enum value
57631	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
57632)
57633
57634// AuthDecision_Values returns all elements of the AuthDecision enum
57635func AuthDecision_Values() []string {
57636	return []string{
57637		AuthDecisionAllowed,
57638		AuthDecisionExplicitDeny,
57639		AuthDecisionImplicitDeny,
57640	}
57641}
57642
57643const (
57644	// AuthorizerStatusActive is a AuthorizerStatus enum value
57645	AuthorizerStatusActive = "ACTIVE"
57646
57647	// AuthorizerStatusInactive is a AuthorizerStatus enum value
57648	AuthorizerStatusInactive = "INACTIVE"
57649)
57650
57651// AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
57652func AuthorizerStatus_Values() []string {
57653	return []string{
57654		AuthorizerStatusActive,
57655		AuthorizerStatusInactive,
57656	}
57657}
57658
57659const (
57660	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
57661	AutoRegistrationStatusEnable = "ENABLE"
57662
57663	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
57664	AutoRegistrationStatusDisable = "DISABLE"
57665)
57666
57667// AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
57668func AutoRegistrationStatus_Values() []string {
57669	return []string{
57670		AutoRegistrationStatusEnable,
57671		AutoRegistrationStatusDisable,
57672	}
57673}
57674
57675const (
57676	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
57677	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
57678)
57679
57680// AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
57681func AwsJobAbortCriteriaAbortAction_Values() []string {
57682	return []string{
57683		AwsJobAbortCriteriaAbortActionCancel,
57684	}
57685}
57686
57687const (
57688	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
57689	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
57690
57691	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
57692	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
57693
57694	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
57695	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
57696
57697	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
57698	AwsJobAbortCriteriaFailureTypeAll = "ALL"
57699)
57700
57701// AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
57702func AwsJobAbortCriteriaFailureType_Values() []string {
57703	return []string{
57704		AwsJobAbortCriteriaFailureTypeFailed,
57705		AwsJobAbortCriteriaFailureTypeRejected,
57706		AwsJobAbortCriteriaFailureTypeTimedOut,
57707		AwsJobAbortCriteriaFailureTypeAll,
57708	}
57709}
57710
57711const (
57712	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
57713	BehaviorCriteriaTypeStatic = "STATIC"
57714
57715	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
57716	BehaviorCriteriaTypeStatistical = "STATISTICAL"
57717
57718	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
57719	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
57720)
57721
57722// BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
57723func BehaviorCriteriaType_Values() []string {
57724	return []string{
57725		BehaviorCriteriaTypeStatic,
57726		BehaviorCriteriaTypeStatistical,
57727		BehaviorCriteriaTypeMachineLearning,
57728	}
57729}
57730
57731const (
57732	// CACertificateStatusActive is a CACertificateStatus enum value
57733	CACertificateStatusActive = "ACTIVE"
57734
57735	// CACertificateStatusInactive is a CACertificateStatus enum value
57736	CACertificateStatusInactive = "INACTIVE"
57737)
57738
57739// CACertificateStatus_Values returns all elements of the CACertificateStatus enum
57740func CACertificateStatus_Values() []string {
57741	return []string{
57742		CACertificateStatusActive,
57743		CACertificateStatusInactive,
57744	}
57745}
57746
57747const (
57748	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
57749	CACertificateUpdateActionDeactivate = "DEACTIVATE"
57750)
57751
57752// CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
57753func CACertificateUpdateAction_Values() []string {
57754	return []string{
57755		CACertificateUpdateActionDeactivate,
57756	}
57757}
57758
57759const (
57760	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
57761	CannedAccessControlListPrivate = "private"
57762
57763	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
57764	CannedAccessControlListPublicRead = "public-read"
57765
57766	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
57767	CannedAccessControlListPublicReadWrite = "public-read-write"
57768
57769	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
57770	CannedAccessControlListAwsExecRead = "aws-exec-read"
57771
57772	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
57773	CannedAccessControlListAuthenticatedRead = "authenticated-read"
57774
57775	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
57776	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
57777
57778	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
57779	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
57780
57781	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
57782	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
57783)
57784
57785// CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
57786func CannedAccessControlList_Values() []string {
57787	return []string{
57788		CannedAccessControlListPrivate,
57789		CannedAccessControlListPublicRead,
57790		CannedAccessControlListPublicReadWrite,
57791		CannedAccessControlListAwsExecRead,
57792		CannedAccessControlListAuthenticatedRead,
57793		CannedAccessControlListBucketOwnerRead,
57794		CannedAccessControlListBucketOwnerFullControl,
57795		CannedAccessControlListLogDeliveryWrite,
57796	}
57797}
57798
57799const (
57800	// CertificateModeDefault is a CertificateMode enum value
57801	CertificateModeDefault = "DEFAULT"
57802
57803	// CertificateModeSniOnly is a CertificateMode enum value
57804	CertificateModeSniOnly = "SNI_ONLY"
57805)
57806
57807// CertificateMode_Values returns all elements of the CertificateMode enum
57808func CertificateMode_Values() []string {
57809	return []string{
57810		CertificateModeDefault,
57811		CertificateModeSniOnly,
57812	}
57813}
57814
57815const (
57816	// CertificateStatusActive is a CertificateStatus enum value
57817	CertificateStatusActive = "ACTIVE"
57818
57819	// CertificateStatusInactive is a CertificateStatus enum value
57820	CertificateStatusInactive = "INACTIVE"
57821
57822	// CertificateStatusRevoked is a CertificateStatus enum value
57823	CertificateStatusRevoked = "REVOKED"
57824
57825	// CertificateStatusPendingTransfer is a CertificateStatus enum value
57826	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
57827
57828	// CertificateStatusRegisterInactive is a CertificateStatus enum value
57829	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
57830
57831	// CertificateStatusPendingActivation is a CertificateStatus enum value
57832	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
57833)
57834
57835// CertificateStatus_Values returns all elements of the CertificateStatus enum
57836func CertificateStatus_Values() []string {
57837	return []string{
57838		CertificateStatusActive,
57839		CertificateStatusInactive,
57840		CertificateStatusRevoked,
57841		CertificateStatusPendingTransfer,
57842		CertificateStatusRegisterInactive,
57843		CertificateStatusPendingActivation,
57844	}
57845}
57846
57847const (
57848	// ComparisonOperatorLessThan is a ComparisonOperator enum value
57849	ComparisonOperatorLessThan = "less-than"
57850
57851	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
57852	ComparisonOperatorLessThanEquals = "less-than-equals"
57853
57854	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
57855	ComparisonOperatorGreaterThan = "greater-than"
57856
57857	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
57858	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
57859
57860	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
57861	ComparisonOperatorInCidrSet = "in-cidr-set"
57862
57863	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
57864	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
57865
57866	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
57867	ComparisonOperatorInPortSet = "in-port-set"
57868
57869	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
57870	ComparisonOperatorNotInPortSet = "not-in-port-set"
57871
57872	// ComparisonOperatorInSet is a ComparisonOperator enum value
57873	ComparisonOperatorInSet = "in-set"
57874
57875	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
57876	ComparisonOperatorNotInSet = "not-in-set"
57877)
57878
57879// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
57880func ComparisonOperator_Values() []string {
57881	return []string{
57882		ComparisonOperatorLessThan,
57883		ComparisonOperatorLessThanEquals,
57884		ComparisonOperatorGreaterThan,
57885		ComparisonOperatorGreaterThanEquals,
57886		ComparisonOperatorInCidrSet,
57887		ComparisonOperatorNotInCidrSet,
57888		ComparisonOperatorInPortSet,
57889		ComparisonOperatorNotInPortSet,
57890		ComparisonOperatorInSet,
57891		ComparisonOperatorNotInSet,
57892	}
57893}
57894
57895const (
57896	// ConfidenceLevelLow is a ConfidenceLevel enum value
57897	ConfidenceLevelLow = "LOW"
57898
57899	// ConfidenceLevelMedium is a ConfidenceLevel enum value
57900	ConfidenceLevelMedium = "MEDIUM"
57901
57902	// ConfidenceLevelHigh is a ConfidenceLevel enum value
57903	ConfidenceLevelHigh = "HIGH"
57904)
57905
57906// ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
57907func ConfidenceLevel_Values() []string {
57908	return []string{
57909		ConfidenceLevelLow,
57910		ConfidenceLevelMedium,
57911		ConfidenceLevelHigh,
57912	}
57913}
57914
57915const (
57916	// CustomMetricTypeStringList is a CustomMetricType enum value
57917	CustomMetricTypeStringList = "string-list"
57918
57919	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
57920	CustomMetricTypeIpAddressList = "ip-address-list"
57921
57922	// CustomMetricTypeNumberList is a CustomMetricType enum value
57923	CustomMetricTypeNumberList = "number-list"
57924
57925	// CustomMetricTypeNumber is a CustomMetricType enum value
57926	CustomMetricTypeNumber = "number"
57927)
57928
57929// CustomMetricType_Values returns all elements of the CustomMetricType enum
57930func CustomMetricType_Values() []string {
57931	return []string{
57932		CustomMetricTypeStringList,
57933		CustomMetricTypeIpAddressList,
57934		CustomMetricTypeNumberList,
57935		CustomMetricTypeNumber,
57936	}
57937}
57938
57939const (
57940	// DayOfWeekSun is a DayOfWeek enum value
57941	DayOfWeekSun = "SUN"
57942
57943	// DayOfWeekMon is a DayOfWeek enum value
57944	DayOfWeekMon = "MON"
57945
57946	// DayOfWeekTue is a DayOfWeek enum value
57947	DayOfWeekTue = "TUE"
57948
57949	// DayOfWeekWed is a DayOfWeek enum value
57950	DayOfWeekWed = "WED"
57951
57952	// DayOfWeekThu is a DayOfWeek enum value
57953	DayOfWeekThu = "THU"
57954
57955	// DayOfWeekFri is a DayOfWeek enum value
57956	DayOfWeekFri = "FRI"
57957
57958	// DayOfWeekSat is a DayOfWeek enum value
57959	DayOfWeekSat = "SAT"
57960)
57961
57962// DayOfWeek_Values returns all elements of the DayOfWeek enum
57963func DayOfWeek_Values() []string {
57964	return []string{
57965		DayOfWeekSun,
57966		DayOfWeekMon,
57967		DayOfWeekTue,
57968		DayOfWeekWed,
57969		DayOfWeekThu,
57970		DayOfWeekFri,
57971		DayOfWeekSat,
57972	}
57973}
57974
57975const (
57976	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
57977	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
57978
57979	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
57980	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
57981
57982	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
57983	DetectMitigationActionExecutionStatusFailed = "FAILED"
57984
57985	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
57986	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
57987)
57988
57989// DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
57990func DetectMitigationActionExecutionStatus_Values() []string {
57991	return []string{
57992		DetectMitigationActionExecutionStatusInProgress,
57993		DetectMitigationActionExecutionStatusSuccessful,
57994		DetectMitigationActionExecutionStatusFailed,
57995		DetectMitigationActionExecutionStatusSkipped,
57996	}
57997}
57998
57999const (
58000	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
58001	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
58002
58003	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
58004	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
58005
58006	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
58007	DetectMitigationActionsTaskStatusFailed = "FAILED"
58008
58009	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
58010	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
58011)
58012
58013// DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
58014func DetectMitigationActionsTaskStatus_Values() []string {
58015	return []string{
58016		DetectMitigationActionsTaskStatusInProgress,
58017		DetectMitigationActionsTaskStatusSuccessful,
58018		DetectMitigationActionsTaskStatusFailed,
58019		DetectMitigationActionsTaskStatusCanceled,
58020	}
58021}
58022
58023const (
58024	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
58025	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
58026)
58027
58028// DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
58029func DeviceCertificateUpdateAction_Values() []string {
58030	return []string{
58031		DeviceCertificateUpdateActionDeactivate,
58032	}
58033}
58034
58035const (
58036	// DimensionTypeTopicFilter is a DimensionType enum value
58037	DimensionTypeTopicFilter = "TOPIC_FILTER"
58038)
58039
58040// DimensionType_Values returns all elements of the DimensionType enum
58041func DimensionType_Values() []string {
58042	return []string{
58043		DimensionTypeTopicFilter,
58044	}
58045}
58046
58047const (
58048	// DimensionValueOperatorIn is a DimensionValueOperator enum value
58049	DimensionValueOperatorIn = "IN"
58050
58051	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
58052	DimensionValueOperatorNotIn = "NOT_IN"
58053)
58054
58055// DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
58056func DimensionValueOperator_Values() []string {
58057	return []string{
58058		DimensionValueOperatorIn,
58059		DimensionValueOperatorNotIn,
58060	}
58061}
58062
58063const (
58064	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
58065	DomainConfigurationStatusEnabled = "ENABLED"
58066
58067	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
58068	DomainConfigurationStatusDisabled = "DISABLED"
58069)
58070
58071// DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
58072func DomainConfigurationStatus_Values() []string {
58073	return []string{
58074		DomainConfigurationStatusEnabled,
58075		DomainConfigurationStatusDisabled,
58076	}
58077}
58078
58079const (
58080	// DomainTypeEndpoint is a DomainType enum value
58081	DomainTypeEndpoint = "ENDPOINT"
58082
58083	// DomainTypeAwsManaged is a DomainType enum value
58084	DomainTypeAwsManaged = "AWS_MANAGED"
58085
58086	// DomainTypeCustomerManaged is a DomainType enum value
58087	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
58088)
58089
58090// DomainType_Values returns all elements of the DomainType enum
58091func DomainType_Values() []string {
58092	return []string{
58093		DomainTypeEndpoint,
58094		DomainTypeAwsManaged,
58095		DomainTypeCustomerManaged,
58096	}
58097}
58098
58099const (
58100	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
58101	DynamicGroupStatusActive = "ACTIVE"
58102
58103	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
58104	DynamicGroupStatusBuilding = "BUILDING"
58105
58106	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
58107	DynamicGroupStatusRebuilding = "REBUILDING"
58108)
58109
58110// DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
58111func DynamicGroupStatus_Values() []string {
58112	return []string{
58113		DynamicGroupStatusActive,
58114		DynamicGroupStatusBuilding,
58115		DynamicGroupStatusRebuilding,
58116	}
58117}
58118
58119const (
58120	// DynamoKeyTypeString is a DynamoKeyType enum value
58121	DynamoKeyTypeString = "STRING"
58122
58123	// DynamoKeyTypeNumber is a DynamoKeyType enum value
58124	DynamoKeyTypeNumber = "NUMBER"
58125)
58126
58127// DynamoKeyType_Values returns all elements of the DynamoKeyType enum
58128func DynamoKeyType_Values() []string {
58129	return []string{
58130		DynamoKeyTypeString,
58131		DynamoKeyTypeNumber,
58132	}
58133}
58134
58135const (
58136	// EventTypeThing is a EventType enum value
58137	EventTypeThing = "THING"
58138
58139	// EventTypeThingGroup is a EventType enum value
58140	EventTypeThingGroup = "THING_GROUP"
58141
58142	// EventTypeThingType is a EventType enum value
58143	EventTypeThingType = "THING_TYPE"
58144
58145	// EventTypeThingGroupMembership is a EventType enum value
58146	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
58147
58148	// EventTypeThingGroupHierarchy is a EventType enum value
58149	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
58150
58151	// EventTypeThingTypeAssociation is a EventType enum value
58152	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
58153
58154	// EventTypeJob is a EventType enum value
58155	EventTypeJob = "JOB"
58156
58157	// EventTypeJobExecution is a EventType enum value
58158	EventTypeJobExecution = "JOB_EXECUTION"
58159
58160	// EventTypePolicy is a EventType enum value
58161	EventTypePolicy = "POLICY"
58162
58163	// EventTypeCertificate is a EventType enum value
58164	EventTypeCertificate = "CERTIFICATE"
58165
58166	// EventTypeCaCertificate is a EventType enum value
58167	EventTypeCaCertificate = "CA_CERTIFICATE"
58168)
58169
58170// EventType_Values returns all elements of the EventType enum
58171func EventType_Values() []string {
58172	return []string{
58173		EventTypeThing,
58174		EventTypeThingGroup,
58175		EventTypeThingType,
58176		EventTypeThingGroupMembership,
58177		EventTypeThingGroupHierarchy,
58178		EventTypeThingTypeAssociation,
58179		EventTypeJob,
58180		EventTypeJobExecution,
58181		EventTypePolicy,
58182		EventTypeCertificate,
58183		EventTypeCaCertificate,
58184	}
58185}
58186
58187const (
58188	// FieldTypeNumber is a FieldType enum value
58189	FieldTypeNumber = "Number"
58190
58191	// FieldTypeString is a FieldType enum value
58192	FieldTypeString = "String"
58193
58194	// FieldTypeBoolean is a FieldType enum value
58195	FieldTypeBoolean = "Boolean"
58196)
58197
58198// FieldType_Values returns all elements of the FieldType enum
58199func FieldType_Values() []string {
58200	return []string{
58201		FieldTypeNumber,
58202		FieldTypeString,
58203		FieldTypeBoolean,
58204	}
58205}
58206
58207const (
58208	// IndexStatusActive is a IndexStatus enum value
58209	IndexStatusActive = "ACTIVE"
58210
58211	// IndexStatusBuilding is a IndexStatus enum value
58212	IndexStatusBuilding = "BUILDING"
58213
58214	// IndexStatusRebuilding is a IndexStatus enum value
58215	IndexStatusRebuilding = "REBUILDING"
58216)
58217
58218// IndexStatus_Values returns all elements of the IndexStatus enum
58219func IndexStatus_Values() []string {
58220	return []string{
58221		IndexStatusActive,
58222		IndexStatusBuilding,
58223		IndexStatusRebuilding,
58224	}
58225}
58226
58227const (
58228	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
58229	JobExecutionFailureTypeFailed = "FAILED"
58230
58231	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
58232	JobExecutionFailureTypeRejected = "REJECTED"
58233
58234	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
58235	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
58236
58237	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
58238	JobExecutionFailureTypeAll = "ALL"
58239)
58240
58241// JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
58242func JobExecutionFailureType_Values() []string {
58243	return []string{
58244		JobExecutionFailureTypeFailed,
58245		JobExecutionFailureTypeRejected,
58246		JobExecutionFailureTypeTimedOut,
58247		JobExecutionFailureTypeAll,
58248	}
58249}
58250
58251const (
58252	// JobExecutionStatusQueued is a JobExecutionStatus enum value
58253	JobExecutionStatusQueued = "QUEUED"
58254
58255	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
58256	JobExecutionStatusInProgress = "IN_PROGRESS"
58257
58258	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
58259	JobExecutionStatusSucceeded = "SUCCEEDED"
58260
58261	// JobExecutionStatusFailed is a JobExecutionStatus enum value
58262	JobExecutionStatusFailed = "FAILED"
58263
58264	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
58265	JobExecutionStatusTimedOut = "TIMED_OUT"
58266
58267	// JobExecutionStatusRejected is a JobExecutionStatus enum value
58268	JobExecutionStatusRejected = "REJECTED"
58269
58270	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
58271	JobExecutionStatusRemoved = "REMOVED"
58272
58273	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
58274	JobExecutionStatusCanceled = "CANCELED"
58275)
58276
58277// JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
58278func JobExecutionStatus_Values() []string {
58279	return []string{
58280		JobExecutionStatusQueued,
58281		JobExecutionStatusInProgress,
58282		JobExecutionStatusSucceeded,
58283		JobExecutionStatusFailed,
58284		JobExecutionStatusTimedOut,
58285		JobExecutionStatusRejected,
58286		JobExecutionStatusRemoved,
58287		JobExecutionStatusCanceled,
58288	}
58289}
58290
58291const (
58292	// JobStatusInProgress is a JobStatus enum value
58293	JobStatusInProgress = "IN_PROGRESS"
58294
58295	// JobStatusCanceled is a JobStatus enum value
58296	JobStatusCanceled = "CANCELED"
58297
58298	// JobStatusCompleted is a JobStatus enum value
58299	JobStatusCompleted = "COMPLETED"
58300
58301	// JobStatusDeletionInProgress is a JobStatus enum value
58302	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
58303)
58304
58305// JobStatus_Values returns all elements of the JobStatus enum
58306func JobStatus_Values() []string {
58307	return []string{
58308		JobStatusInProgress,
58309		JobStatusCanceled,
58310		JobStatusCompleted,
58311		JobStatusDeletionInProgress,
58312	}
58313}
58314
58315const (
58316	// LogLevelDebug is a LogLevel enum value
58317	LogLevelDebug = "DEBUG"
58318
58319	// LogLevelInfo is a LogLevel enum value
58320	LogLevelInfo = "INFO"
58321
58322	// LogLevelError is a LogLevel enum value
58323	LogLevelError = "ERROR"
58324
58325	// LogLevelWarn is a LogLevel enum value
58326	LogLevelWarn = "WARN"
58327
58328	// LogLevelDisabled is a LogLevel enum value
58329	LogLevelDisabled = "DISABLED"
58330)
58331
58332// LogLevel_Values returns all elements of the LogLevel enum
58333func LogLevel_Values() []string {
58334	return []string{
58335		LogLevelDebug,
58336		LogLevelInfo,
58337		LogLevelError,
58338		LogLevelWarn,
58339		LogLevelDisabled,
58340	}
58341}
58342
58343const (
58344	// LogTargetTypeDefault is a LogTargetType enum value
58345	LogTargetTypeDefault = "DEFAULT"
58346
58347	// LogTargetTypeThingGroup is a LogTargetType enum value
58348	LogTargetTypeThingGroup = "THING_GROUP"
58349)
58350
58351// LogTargetType_Values returns all elements of the LogTargetType enum
58352func LogTargetType_Values() []string {
58353	return []string{
58354		LogTargetTypeDefault,
58355		LogTargetTypeThingGroup,
58356	}
58357}
58358
58359const (
58360	// MessageFormatRaw is a MessageFormat enum value
58361	MessageFormatRaw = "RAW"
58362
58363	// MessageFormatJson is a MessageFormat enum value
58364	MessageFormatJson = "JSON"
58365)
58366
58367// MessageFormat_Values returns all elements of the MessageFormat enum
58368func MessageFormat_Values() []string {
58369	return []string{
58370		MessageFormatRaw,
58371		MessageFormatJson,
58372	}
58373}
58374
58375const (
58376	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
58377	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
58378
58379	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
58380	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
58381
58382	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
58383	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
58384
58385	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
58386	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
58387
58388	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
58389	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
58390
58391	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
58392	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
58393)
58394
58395// MitigationActionType_Values returns all elements of the MitigationActionType enum
58396func MitigationActionType_Values() []string {
58397	return []string{
58398		MitigationActionTypeUpdateDeviceCertificate,
58399		MitigationActionTypeUpdateCaCertificate,
58400		MitigationActionTypeAddThingsToThingGroup,
58401		MitigationActionTypeReplaceDefaultPolicyVersion,
58402		MitigationActionTypeEnableIotLogging,
58403		MitigationActionTypePublishFindingToSns,
58404	}
58405}
58406
58407const (
58408	// ModelStatusPendingBuild is a ModelStatus enum value
58409	ModelStatusPendingBuild = "PENDING_BUILD"
58410
58411	// ModelStatusActive is a ModelStatus enum value
58412	ModelStatusActive = "ACTIVE"
58413
58414	// ModelStatusExpired is a ModelStatus enum value
58415	ModelStatusExpired = "EXPIRED"
58416)
58417
58418// ModelStatus_Values returns all elements of the ModelStatus enum
58419func ModelStatus_Values() []string {
58420	return []string{
58421		ModelStatusPendingBuild,
58422		ModelStatusActive,
58423		ModelStatusExpired,
58424	}
58425}
58426
58427const (
58428	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
58429	OTAUpdateStatusCreatePending = "CREATE_PENDING"
58430
58431	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
58432	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
58433
58434	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
58435	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
58436
58437	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
58438	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
58439)
58440
58441// OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
58442func OTAUpdateStatus_Values() []string {
58443	return []string{
58444		OTAUpdateStatusCreatePending,
58445		OTAUpdateStatusCreateInProgress,
58446		OTAUpdateStatusCreateComplete,
58447		OTAUpdateStatusCreateFailed,
58448	}
58449}
58450
58451const (
58452	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
58453	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
58454)
58455
58456// PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
58457func PolicyTemplateName_Values() []string {
58458	return []string{
58459		PolicyTemplateNameBlankPolicy,
58460	}
58461}
58462
58463const (
58464	// ProtocolMqtt is a Protocol enum value
58465	ProtocolMqtt = "MQTT"
58466
58467	// ProtocolHttp is a Protocol enum value
58468	ProtocolHttp = "HTTP"
58469)
58470
58471// Protocol_Values returns all elements of the Protocol enum
58472func Protocol_Values() []string {
58473	return []string{
58474		ProtocolMqtt,
58475		ProtocolHttp,
58476	}
58477}
58478
58479const (
58480	// ReportTypeErrors is a ReportType enum value
58481	ReportTypeErrors = "ERRORS"
58482
58483	// ReportTypeResults is a ReportType enum value
58484	ReportTypeResults = "RESULTS"
58485)
58486
58487// ReportType_Values returns all elements of the ReportType enum
58488func ReportType_Values() []string {
58489	return []string{
58490		ReportTypeErrors,
58491		ReportTypeResults,
58492	}
58493}
58494
58495const (
58496	// ResourceTypeDeviceCertificate is a ResourceType enum value
58497	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
58498
58499	// ResourceTypeCaCertificate is a ResourceType enum value
58500	ResourceTypeCaCertificate = "CA_CERTIFICATE"
58501
58502	// ResourceTypeIotPolicy is a ResourceType enum value
58503	ResourceTypeIotPolicy = "IOT_POLICY"
58504
58505	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
58506	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
58507
58508	// ResourceTypeClientId is a ResourceType enum value
58509	ResourceTypeClientId = "CLIENT_ID"
58510
58511	// ResourceTypeAccountSettings is a ResourceType enum value
58512	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
58513
58514	// ResourceTypeRoleAlias is a ResourceType enum value
58515	ResourceTypeRoleAlias = "ROLE_ALIAS"
58516
58517	// ResourceTypeIamRole is a ResourceType enum value
58518	ResourceTypeIamRole = "IAM_ROLE"
58519)
58520
58521// ResourceType_Values returns all elements of the ResourceType enum
58522func ResourceType_Values() []string {
58523	return []string{
58524		ResourceTypeDeviceCertificate,
58525		ResourceTypeCaCertificate,
58526		ResourceTypeIotPolicy,
58527		ResourceTypeCognitoIdentityPool,
58528		ResourceTypeClientId,
58529		ResourceTypeAccountSettings,
58530		ResourceTypeRoleAlias,
58531		ResourceTypeIamRole,
58532	}
58533}
58534
58535const (
58536	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
58537	ServerCertificateStatusInvalid = "INVALID"
58538
58539	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
58540	ServerCertificateStatusValid = "VALID"
58541)
58542
58543// ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
58544func ServerCertificateStatus_Values() []string {
58545	return []string{
58546		ServerCertificateStatusInvalid,
58547		ServerCertificateStatusValid,
58548	}
58549}
58550
58551const (
58552	// ServiceTypeData is a ServiceType enum value
58553	ServiceTypeData = "DATA"
58554
58555	// ServiceTypeCredentialProvider is a ServiceType enum value
58556	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
58557
58558	// ServiceTypeJobs is a ServiceType enum value
58559	ServiceTypeJobs = "JOBS"
58560)
58561
58562// ServiceType_Values returns all elements of the ServiceType enum
58563func ServiceType_Values() []string {
58564	return []string{
58565		ServiceTypeData,
58566		ServiceTypeCredentialProvider,
58567		ServiceTypeJobs,
58568	}
58569}
58570
58571const (
58572	// StatusInProgress is a Status enum value
58573	StatusInProgress = "InProgress"
58574
58575	// StatusCompleted is a Status enum value
58576	StatusCompleted = "Completed"
58577
58578	// StatusFailed is a Status enum value
58579	StatusFailed = "Failed"
58580
58581	// StatusCancelled is a Status enum value
58582	StatusCancelled = "Cancelled"
58583
58584	// StatusCancelling is a Status enum value
58585	StatusCancelling = "Cancelling"
58586)
58587
58588// Status_Values returns all elements of the Status enum
58589func Status_Values() []string {
58590	return []string{
58591		StatusInProgress,
58592		StatusCompleted,
58593		StatusFailed,
58594		StatusCancelled,
58595		StatusCancelling,
58596	}
58597}
58598
58599const (
58600	// TargetSelectionContinuous is a TargetSelection enum value
58601	TargetSelectionContinuous = "CONTINUOUS"
58602
58603	// TargetSelectionSnapshot is a TargetSelection enum value
58604	TargetSelectionSnapshot = "SNAPSHOT"
58605)
58606
58607// TargetSelection_Values returns all elements of the TargetSelection enum
58608func TargetSelection_Values() []string {
58609	return []string{
58610		TargetSelectionContinuous,
58611		TargetSelectionSnapshot,
58612	}
58613}
58614
58615const (
58616	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
58617	ThingConnectivityIndexingModeOff = "OFF"
58618
58619	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
58620	ThingConnectivityIndexingModeStatus = "STATUS"
58621)
58622
58623// ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
58624func ThingConnectivityIndexingMode_Values() []string {
58625	return []string{
58626		ThingConnectivityIndexingModeOff,
58627		ThingConnectivityIndexingModeStatus,
58628	}
58629}
58630
58631const (
58632	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
58633	ThingGroupIndexingModeOff = "OFF"
58634
58635	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
58636	ThingGroupIndexingModeOn = "ON"
58637)
58638
58639// ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
58640func ThingGroupIndexingMode_Values() []string {
58641	return []string{
58642		ThingGroupIndexingModeOff,
58643		ThingGroupIndexingModeOn,
58644	}
58645}
58646
58647const (
58648	// ThingIndexingModeOff is a ThingIndexingMode enum value
58649	ThingIndexingModeOff = "OFF"
58650
58651	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
58652	ThingIndexingModeRegistry = "REGISTRY"
58653
58654	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
58655	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
58656)
58657
58658// ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
58659func ThingIndexingMode_Values() []string {
58660	return []string{
58661		ThingIndexingModeOff,
58662		ThingIndexingModeRegistry,
58663		ThingIndexingModeRegistryAndShadow,
58664	}
58665}
58666
58667const (
58668	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
58669	TopicRuleDestinationStatusEnabled = "ENABLED"
58670
58671	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
58672	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
58673
58674	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
58675	TopicRuleDestinationStatusDisabled = "DISABLED"
58676
58677	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
58678	TopicRuleDestinationStatusError = "ERROR"
58679
58680	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
58681	TopicRuleDestinationStatusDeleting = "DELETING"
58682)
58683
58684// TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
58685func TopicRuleDestinationStatus_Values() []string {
58686	return []string{
58687		TopicRuleDestinationStatusEnabled,
58688		TopicRuleDestinationStatusInProgress,
58689		TopicRuleDestinationStatusDisabled,
58690		TopicRuleDestinationStatusError,
58691		TopicRuleDestinationStatusDeleting,
58692	}
58693}
58694
58695const (
58696	// ViolationEventTypeInAlarm is a ViolationEventType enum value
58697	ViolationEventTypeInAlarm = "in-alarm"
58698
58699	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
58700	ViolationEventTypeAlarmCleared = "alarm-cleared"
58701
58702	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
58703	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
58704)
58705
58706// ViolationEventType_Values returns all elements of the ViolationEventType enum
58707func ViolationEventType_Values() []string {
58708	return []string{
58709		ViolationEventTypeInAlarm,
58710		ViolationEventTypeAlarmCleared,
58711		ViolationEventTypeAlarmInvalidated,
58712	}
58713}
58714